| 查看: 1074 | 回复: 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 ] |
» 猜你喜欢
一篇论文同时出现在两个期刊,一模一样,这算不算学术不端,请各位老师斧正。
已经有12人回复
希望面上有个好结果
已经有7人回复
有谁可曾问过你过的还好吗?
已经有15人回复
E0414, 我的本子有没有希望?
已经有5人回复
今年也是没消息就是没中么
已经有16人回复
三区计算机方向期刊推荐
已经有5人回复
sci论文二审求助
已经有5人回复
函评
已经有7人回复
以CTAB等为模板水热合成的产物,如何除去模板?
已经有6人回复
买卖文章的刷屏了!
已经有3人回复
» 抢金币啦!回帖就可以得到:
温州医科大学李校堃院士团队宋林涛/黄志锋课题组诚聘博士后
+1/97
香港科技大学蒋仪课题组诚招博士及博士后
+1/79
青年拔尖人才还有指标 25w*8年
+1/79
山东省自然科学基金
+1/60
欢迎报考2027年浙大宁理化学工程(085602)专业研究生,一志愿高录取稳上岸!
+1/35
博士毕业之后申请发明专利
+1/31
湖南师范大学(211)—招收2026年入学的“申请-考核”制博士(有微纳光学经验者优先)
+1/28
坐标广州,征女友
+2/24
密苏里大学生物材料合成生物学博士后招聘
+1/19
四川大学周加境课题组招聘博士后/博士/研究助理(生物质与藻类资源利用/自组装材料)
+1/17
密苏里大学生物材料合成生物学博士后招聘
+1/15
上海大学微电子学院杨军教授团队招聘带编专任教师
+1/11
化学识别核酸的综述投稿
+1/6
中科院深圳先进院成会明院士/郭鑫团队招聘钠离子电池方向博士后
+1/5
中科院福建物质结构研究所招聘生物医学背景正/副研究员(有编制),博士后
+1/4
上海大学微电子学院杨军教授团队招聘带编专任教师
+1/3
吉林大学物理学院王广通副教授招收博士研究生
+1/2
2026年黄河科技学院纳米功能材料研究所招聘
+1/2
招聘科研助理或有意27年读博的同学
+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,
回复此楼