24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 984  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 化学357分,考研调剂 +11 .Starry. 2026-04-04 12/600 2026-04-06 06:28 by houyaoxu
[考研] 332求调剂 +16 小小孟... 2026-04-05 17/850 2026-04-06 00:52 by fmesaito
[考研] 327求调剂 +4 拾光任染 2026-04-05 4/200 2026-04-05 20:16 by 南航~万老师
[考研] 调剂 +5 好好读书。 2026-04-01 5/250 2026-04-05 17:54 by liucky
[考研] 328分调剂 +6 门men 2026-04-04 6/300 2026-04-05 13:40 by imissbao
[考研] 材料求调剂 +10 呢呢妮妮 2026-04-01 10/500 2026-04-04 23:12 by 无际的草原
[考研] 283分求调剂 +7 小聂爱学习 2026-04-03 7/350 2026-04-04 21:51 by hemengdong
[考研] 278求调剂 +3 依旧! 2026-04-02 4/200 2026-04-04 20:27 by 蓝云思雨
[考研] 302求调剂一志愿华中师范大学 +8 小江小江江江 2026-04-02 8/400 2026-04-04 19:50 by 蓝云思雨
[考研] 求调剂,一志愿北京中医药大学 +3 小小达不溜 2026-04-02 3/150 2026-04-03 22:55 by 冲矢昴星团
[考研] 294求调剂 +6 Grey_Ey 2026-04-03 6/300 2026-04-03 20:46 by 欣喜777
[考研] 考研调剂 +8 不爱喝饮料 2026-04-03 8/400 2026-04-03 16:40 by Mistake-J
[考研] 英一数一408,总分284,二战真诚求调剂 +13 12.27 2026-03-30 15/750 2026-04-03 14:41 by 氮气气气
[考研] 一志愿华东理工大学,080500学硕,317分,求调剂 +13 s1145 2026-03-31 15/750 2026-04-03 11:44 by msi123
[考研] 一志愿华南师范大学-22408计算机-292分-求华南师范大学调剂 +4 爱读书的小鳄鱼 2026-04-02 4/200 2026-04-02 18:35 by 求调剂zz
[考博] 材料工程专业硕士申博 +3 麟正宇 2026-03-30 3/150 2026-04-02 15:04 by greychen00
[考研] 土木304求调剂 +6 兔突突突, 2026-03-31 7/350 2026-04-02 09:06 by coolminer
[考研] 一志愿西交大080500材料学硕349 +6 jqx1258 2026-03-31 7/350 2026-03-31 21:08 by yuq
[考研] 复试调剂 +7 双马尾痞老板2 2026-03-31 7/350 2026-03-31 19:49 by Dyhoer
[考研] 340求调剂 +4 希望如此i 2026-03-31 4/200 2026-03-31 16:40 by 690616278
信息提示
请填处理意见