| 查看: 1004 | 回复: 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 ] |
» 猜你喜欢
313求调剂
已经有4人回复
材料调剂
已经有13人回复
材料专硕283求调剂
已经有13人回复
295求调剂
已经有7人回复
266分,一志愿电气工程,本科材料,求材料专业调剂
已经有7人回复
307分材料专业求调剂
已经有5人回复
一志愿北交大材料工程总分358求调剂
已经有5人回复
求调剂
已经有4人回复
材料与化工371求调剂
已经有11人回复
材料求调剂
已经有4人回复
» 抢金币啦!回帖就可以得到:
河北大学分析化学招收多名调剂考生
+5/689
哈尔滨工程大学(青岛)动力工程及工程热物理专业招聘博士1名
+1/486
一志愿前4位代码0703均可报名-河北大学分析化学专业招收调剂考生
+2/116
广东工业大学-木质纤维素高值化利用团队招博士研究生
+1/84
广东五邑大学夏旺课题组硕士调剂公告
+1/41
大连工业大学 高分子材料 接收考研调剂
+1/38
欧盟ELI项目太赫兹小组招收太赫兹光学博士
+1/19
【上海调剂】985联合培养!别错过能送你去丹麦/交大/同济/中科院的神仙导师!
+1/13
北华大学林产化学加工工程学硕和材料与化工专硕调剂招生
+1/12
南京,真诚征女友
+1/11
河南理工大学化学化工学院招生材料、化工等相关专业调剂研究生
+1/10
就业好-广东唯一石化院校——资源与环境专硕招生
+1/8
南开大学环境学院 环境微生物方向 2026年博士招生(已招满)
+1/8
重庆工商大学 教育部研究中心招收化工/环境/材料/石油/机械方向2026年调剂研究生
+1/7
福建师范大学环境微生物技术课题组接受2026级硕士调剂。计划招收2-3名。
+1/7
哈尔滨工业大学航天学院复合材料与结构研究所招硕士生
+1/6
河北大学招收生物与医药专业调剂考生
+1/6
北京服装学院 材料设计与工程学院 纺织化学与染整工程接收硕士研究生调剂2026
+1/5
0831生医工调剂本9一志愿北航生医工,338分求调剂
+1/4
江西农业大学动科院“昆虫-共生菌协同进化”方向招收调剂研究生
+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,
回复此楼