| 查看: 1146 | 回复: 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 ] |
» 猜你喜欢
科研孤儿太难了
已经有15人回复
让我中一个面上吧!
已经有10人回复
言之凿凿,明天官网会通知放榜?
已经有17人回复
时间戳又变了
已经有17人回复
今天系统多次维护,明天很可能放榜!
已经有11人回复
时间戳变了,能看出什么问题?
已经有23人回复
只有每年这种时候来逛逛小木虫
已经有22人回复
放榜前的不淡定
已经有12人回复
重要消息,中午系统在维护
已经有12人回复
今天基金会出结果吗?20260819
已经有15人回复
» 抢金币啦!回帖就可以得到:
散金祈福
+5/4365
告别流水线爽文!108万字完结仙侠《女娲石之灵石奇缘(仙界篇)》值得细品
+1/4054
散金祈福
+3/870
华西生物制药研究院招聘科研助理
+2/418
散金求好运
+1/200
Polymers 期刊特刊 组稿
+1/85
哈尔滨工业大学(校本部)电子与信息工程学院2027级博士招生
+1/68
面上基金祈福
+1/50
武汉,诚征男友,不异地,年龄大了
+1/36
坐标北京诚征男友
+1/17
祈祷老公中国基
+1/13
pcold 原核表达载体
+1/12
2027环境工程博士申请
+1/9
中国科学院生态环境研究中心环境工程相关方向招收保送硕士和联合培养博士和硕士研究生
+1/4
2026年财务管理、经济与信息技术国际会议 (FMEIT 2026)
+1/4
北京理工大学-集成电路与电子学院杰青团队-招博士后
+1/3
骨组织空间组学样本前处理关键要点:脱钙工艺对空间多组学数据质量的影响
+1/2
北理工集成电路杰青团队 | 诚招科助理
+1/2
北理工集成电路杰青团队 | 诚招科助理
+1/2
【产品测评分享】体外转录产量不理想、dsRNA 副产物高?T7 RNA 聚合酶实测体验
+1/1
4楼2010-11-26 08:34:13
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









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