| 查看: 971 | 回复: 3 | |||
[交流]
【求助】ode45数值求解常微分方程总是错,找不出原因
|
|
程序如下:S1=0.4; S2=0.8; y=zeros(42,3); y(1,1)=6e10; y(2,1)=4e10; y(3,1)=0; for i=0:5; for j=1:7 if(j==6)|(j==7) [t,y]=ode45('tumor',[i*7+j i*7+j+1],[y(i*7+j,1) y(i*7+j,2) y(i*7+j,3)]); else a=y(i*7+j,1); y(i*7+j,1)=S1*a; b=y(i*7+j,2); y(i*7+j,2)=S2*b; y(i*7+j,3)=(1-S1)*a+(1-S2)*b; [t,y]=ode45('tumor',[i*7+j i*7+j+1],[y(i*7+j,1) y(i*7+j,2) y(i*7+j,3)]); end end end plot(t,y(1, ,'*',t,y(2, ,'.',t,y(3, ,'+');错误为:Index exceeds matrix dimensions. Error in ==> number1 at 12 [t,y]=ode45('tumor',[i*7+j i*7+j+1],[y(i*7+j,1) y(i*7+j,2) y(i*7+j,3)]); 我估计是向量传递出错了 发现ode45返回的是t和y(:,1) y(:,2) y(:,3)的列向量, 如果想得到向量的最后一个值应该怎么办? [ Last edited by liangbao on 2010-11-25 at 09:51 ] |
» 猜你喜欢
交叉科学部支持青年基金,对三无青椒是个机会吗?
已经有3人回复
国家级人才课题组招收2026年入学博士
已经有5人回复
Fe3O4@SiO2合成
已经有6人回复
青年基金C终止
已经有4人回复
青椒八年已不青,大家都被折磨成啥样了?
已经有7人回复
为什么nbs上溴 没有产物点出现呢
已经有10人回复
救命帖
已经有11人回复
招博士
已经有5人回复
26申博求博导推荐-遥感图像处理方向
已经有4人回复
限项规定
已经有7人回复
» 抢金币啦!回帖就可以得到:
限广州,征女友
+2/104
南京林业大学特聘教授招聘博后和博士研究生
+1/75
【2026/2027 哈工大计算机类博士/硕士招生】
+1/75
大连理工大学智能系统实验室优秀硕博研究生招生
+1/72
北京理工大学 珠海校区全职院士招数名博士生--申请考核制-半导体、光学、微电子
+2/66
自驾淄博回四川遂宁过年,寻找小伙伴一起
+1/61
华南理工大学(985、广州) 氢能源技术课题组诚招博士后(不限专业)
+1/49
南开大学物理学院张书辉副教授招收凝聚态物理理论方向博士生、硕士生
+1/30
2026湖南科技大学化学化工学院招新能源电池方向博士生
+1/28
中山大学农业与生物技术学院周潇峰课题组诚聘微生物/植物病理学方向科研助理
+1/28
2026年天津大学杰青团队招收化学合成、计算机和器件的方面博士
+1/26
武汉大学博士生/直博生招聘(微纳光驱动与片上光子学)
+5/25
【陕西师范大学】催化化学课题组2026年招收博士后/讲师/副高
+1/9
华南理工大学宋波教授招收2026年博士生(二氧化碳转化方向优先)
+1/4
澳科大诚招2026年秋季生物材料全奖博士研究生(今日16:30线上宣讲会)
+1/4
中山大学柔性电子学院黄维院士团队诚招柔性可穿戴电子方向博士生(2026年9月入学)
+1/3
标准求助 SN/T 5263-2020悬赏10个金币
+1/2
【博士后/科研助理招聘-北京理工大学-集成电路与电子学院-国家杰青团队】
+1/2
浙江大学 “分子智造”课题组 诚聘 博士后及科研助理
+1/1
中国科学技术大学 招特任副研究员 有机-钙钛矿方向
+1/1
2楼2010-11-25 20:01:10
|
恩,谢谢 我这样改,运行通过了 您看看,没有什么对不? S1=0.4; S2=0.8; y=zeros(100,42); y(1,1)=6e10; y(1,2)=4e10; y(1,3)=0; for i=0:5; for j=1:7 if(j==6)|(j==7) tspan=i*7+j:0.05:i*7+j+1; [t,p]=ode45('tumor',tspan,[y(i*7+j,1) y(i*7+j,2) y(i*7+j,3)]); else y(i*7+j,1)=S1*y(i*7+j,1); y(i*7+j,2)=S2*y(i*7+j,2); y(i*7+j,3)=((1-S1)/S1)*y(i*7+j,1)+((1-S2)/S2)*y(i*7+j,2); tspan=i*7+j:0.05:i*7+j+1; [t,p]=ode45('tumor',tspan,[y(i*7+j,1) y(i*7+j,2) y(i*7+j,3)]); end plot(t,p(:,1),'*',t,p(:,2),'.',t,p(:,3)); hold on; y(i*7+j+1,1)=p(21,1); y(i*7+j+1,2)=p(21,2); y(i*7+j+1,3)=p(21,3); end end |
3楼2010-11-25 20:38:04
4楼2010-11-26 08:34:13













,'*',t,y(2,
回复此楼