| 查看: 1105 | 回复: 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 ] |
» 猜你喜欢
生命口会评
已经有5人回复
关于如何从代码看上不上会
已经有22人回复
大龄残疾硕士的一点执念
已经有25人回复
今年E04面上
已经有22人回复
chemdraw
已经有6人回复
祈祷青基必中
已经有10人回复
b口会评
已经有6人回复
信息学部会评时间
已经有3人回复
在职考研
已经有7人回复
MSER送审了还被拒稿
已经有5人回复
» 抢金币啦!回帖就可以得到:
27年入学博士招生(图像智能处理相关)
+1/177
香港理工大学 - 管理/交通/优化/运筹/工业工程/物流方向 - 博士生PhD招聘
+3/71
Monash University, 低碳冶金建模方向博士生招生(3-6名),位置开放至2028年12月31号 [
+1/32
海南大学化学院,招聘2026科研助理,博士,博士后
+1/32
厦门大学张桥保教授团队招收2027年硕士/博士研究生以及博士后(材料、化学方向)
+1/31
美国圣路易斯大学招聘生物信息学博士后
+1/29
北京理工大学长三角研究院(嘉兴)先进材料与智能装备团队 招聘
+1/29
中国科学院赣江创新研究院李庭刚研究员团队招收与江西理工大学联合培养博士生
+1/29
南科大医学院神经胶质细胞课题组招收2027年入学博士生和博士后
+1/13
2026 全免 APC!0 元发表,Scopus 收录,Biofunctional Materials(BM)投稿正当时!
+1/8
2氯5甲基吡啶和2氯6三氯甲基吡啶大生产工艺需求
+1/6
香港科技大学(广州)收水文学方向科研助理/全奖博士
+1/6
清华大学深圳国际研究生院宋桥课题组招收2027年博士研究生
+1/6
吉布斯自用能变、平衡常数、活度/分压计算
+1/3
浙江大学-化工学院刘平伟课题组-二维材料/功能聚合物开发-博后招聘
+1/3
圣路易斯华盛顿大学管建均教授课题组招聘博士后(2名)
+1/3
武汉理工大学刘鹏飞院士团队招聘科研助理
+1/2
圣路易斯华盛顿大学管建均教授课题组招聘博士后(2名)
+1/1
清华大学韩军功教授课题组博士后招聘启事
+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,
回复此楼