24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 983  |  回复: 3

monitor2885

至尊木虫 (职业作家)


[交流] 【求助】ode45方程中的参数

function testfunction
global u1 u2
u1=[1;2;3;4;5];
u2=[6;7;8;9;10];
for i=1:5
[t,y]=ode45(@fun,[0 20],[1 2]);
z1(i)=y(:,1);
z2(i)=y(:,2);
end

function dy=fun(t,y)
global u1 u2
dy=zeros(2,1);
dy(1)=u1(i)*y(2);
dy(2)=u2(i)*(1-y(1)^2)*y(2)-y(1);


u1和u2是微分方程的参数,是5*1的数组。我要利用ode45函数运行5次,即for=1:5,第一次运行,参数u1和u2分别是1和6,即u1(1)和u2(1);第二次运行,参数u1和u2分别是2和7,即u1(2)和u2(2)……以此类推。每次运行的结果y1和y2都储存到z1和z2里面。请问,上面的程序需要哪些改动?谢谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
monitor2885(金币+5): 运行对了,怎么把每次运行的结果y1和y2都储存到z1和z2里面? 2011-02-08 03:32:41
引用回帖:
Originally posted by monitor2885 at 2011-02-07 15:00:54:
function testfunction
global u1 u2
u1=[1;2;3;4;5];
u2=[6;7;8;9;10];
for i=1:5
[t,y]=ode45(@fun,[0 20],[1 2]);
z1(i)=y(:,1);
z2(i)=y(:,2);
end

function dy=fun(t,y)
global u1 u2
dy=zeros ...

用参数来实现吧。
CODE:
function testfunction

u1 = [ 1; 2; 3; 4; 5 ];
u2 = [ 6; 7; 8; 9; 10 ];
for i = 1 : 5
    [ t, y ] = ode45(@( t, y )fun( t, y, u1( i ), u2( i ) ), [ 0 20 ], [ 1 2 ] );
%     z1( i ) = y( :, 1 );
%     z2( i ) = y( :, 2 );
    plot( t, y );
    hold on
end

function dy = fun( t, y, u1, u2 )

dy = zeros( 2, 1 );
dy( 1 ) = u1 * y( 2 );
dy( 2 ) = u2 * ( 1 - y( 1 ) ^ 2 ) * y( 2 ) - y( 1 );

2楼2011-02-07 18:39:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

monitor2885

至尊木虫 (职业作家)


引用回帖:
Originally posted by xiegangmai at 2011-02-07 18:39:46:


用参数来实现吧。

[code]
function testfunction

u1 = [ 1; 2; 3; 4; 5 ];
u2 = [ 6; 7; 8; 9; 10 ];
for i = 1 : 5
    [ t, y ] = ode45(@( t, y )fun( t, y, u1( i ), u2( i ) ), [ 0 20 ], [ 1 ...

运行对了,怎么把每次运行的结果y1和y2都储存到z1和z2里面?
3楼2011-02-09 02:38:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
monitor2885(金币+5): cell是个做什么的函数呢 2011-02-10 02:30:53
引用回帖:
Originally posted by monitor2885 at 2011-02-09 02:38:00:

运行对了,怎么把每次运行的结果y1和y2都储存到z1和z2里面?

因为每次计算出的结果中数组维度大小不一样,可以用cell或struct实现。
例如用cell数据:
CODE:
function testfunction

u1 = [ 1; 2; 3; 4; 5 ];
u2 = [ 6; 7; 8; 9; 10 ];
z1 = cell( 5, 1 );
z2 = cell( 5, 1 );
for i = 1 : 5
    [ t, y ] = ode45(@( t, y )fun( t, y, u1( i ), u2( i ) ), [ 0 20 ], [ 1 2 ] );
    z1{ i, 1 } = y( :, 1 );
    z2{ i, 1 } = y( :, 2 );
    plot( t, y );
    hold on
end

function dy = fun( t, y, u1, u2 )

dy = zeros( 2, 1 );
dy( 1 ) = u1 * y( 2 );
dy( 2 ) = u2 * ( 1 - y( 1 ) ^ 2 ) * y( 2 ) - y( 1 );

4楼2011-02-09 09:21:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 monitor2885 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085602调剂 初试总分335 +9 19123253302 2026-04-05 9/450 2026-04-06 06:14 by houyaoxu
[考研] 301求调剂 +3 细胞相关蛋白 2026-04-03 3/150 2026-04-05 21:07 by 学员8dgXkO
[考研] 315求调剂 +5 &123456789 2026-04-05 5/250 2026-04-05 19:55 by nepu_uu
[考研] 求调剂 一志愿西南交通大学085701环境工程 282分 +7 多多爱吃汉堡 2026-04-04 7/350 2026-04-05 19:47 by 福农资环_环境基
[考研] 277求调剂 +5 考研调剂lxh 2026-04-05 5/250 2026-04-05 19:03 by chy09050039
[考研] 282求调剂 +3 aaa车辆 2026-04-01 3/150 2026-04-05 17:03 by yulian1987
[考研] 313求调剂 +5 海日海日 2026-04-04 5/250 2026-04-05 15:52 by jndximd
[考研] 一志愿电子科技大学085600材料与化工 329分求调剂 +10 Naiko 2026-04-04 10/500 2026-04-05 09:40 by sam3303
[考研] 材料调剂 +15 一样YWY 2026-04-01 15/750 2026-04-04 22:23 by hemengdong
[考研] 322求调剂 +6 FZAC123 2026-04-03 6/300 2026-04-03 22:23 by 科研小专家
[考研] 311求调剂一志愿合肥工业大学 +15 秋二十二 2026-03-30 15/750 2026-04-03 10:19 by linyelide
[考研] 学硕化学工程与技术,一志愿中国海洋大学320+求调剂 +8 披星河 2026-04-02 8/400 2026-04-02 14:12 by oooqiao
[考研] 311求调剂 +14 蓝月亮亮 2026-03-30 14/700 2026-04-02 12:18 by 1753564080
[考研] 一志愿北京科技,085601总分305求调剂 +9 半生瓜! 2026-04-01 11/550 2026-04-02 08:28 by Wang200018
[考研] 285求调剂 +11 AZMK 2026-04-01 11/550 2026-04-01 22:40 by peike
[考研] 0703一志愿南师大334求调剂 +4 seven7yu 2026-03-30 4/200 2026-04-01 16:10 by oooqiao
[考研] 求调剂 +4 DADA怪 2026-03-31 4/200 2026-04-01 14:30 by ZXlzxl0425
[考研] 生物考研337分求调剂 +4 cgxin 2026-03-30 6/300 2026-03-31 14:18 by 记事本2026
[考研] 一志愿食品科学与工程083200求调剂 +4 XQTJZ 2026-03-30 4/200 2026-03-31 04:10 by fmesaito
[考研] 本科211总分289,08工学真心求调剂 +3 utopiaE 2026-03-30 3/150 2026-03-30 23:42 by ms629
信息提示
请填处理意见