| 查看: 1035 | 回复: 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 ] |
» 猜你喜欢
某211大学教师把个人教师官方主页改成:我跑了我跑了我跑了!官宣跑路!
已经有6人回复
博士申请
已经有4人回复
西安交大新媒学院副院长用撤稿论文结题
已经有7人回复
论文撤稿了
已经有9人回复
青B发送上会通知了吗
已经有10人回复
化学专业申博
已经有5人回复
招收2026级博士生
已经有5人回复
宿州学院学报
已经有3人回复
4,4二甲基联苯干啥用,有懂得吗
已经有3人回复
医学类期刊求推荐
已经有6人回复
» 抢金币啦!回帖就可以得到:
江西理工大学2026年博士研究生招生报名公告(第二批次),可以联系马胜灿老师
+2/930
【帮转急招】深大计算机/电子信息博士 王牌专业,大牛团队!
+5/765
中科院深圳先进技术研究院集成电路先进封装博士后招聘
+1/278
山东征女友,坐标济南
+1/184
薄膜断层光谱仪,看透薄膜内部!🔍
+1/88
兰州新区化工产业招商引资
+1/79
真诚寻找另一半 觉得合适可以相互了解
+1/69
安徽大学俞洋洋课题组招收化学方向博士生1人
+1/28
山东大学量子成像团队招收2026年秋季入学博士生
+2/24
招聘青年教师(有编制)——南京邮电大学柔性电子全国重点实验室徐申课题组
+1/23
盤後看下來,資金沒退,也算是吃上了。
+1/10
上海交通大学研究生招生咨询会,来了!
+1/10
电子科技大学材料学院SFT创新中心招收准备考硕和读博的科研助理 理工医交叉方向
+1/10
杭州师范大学博士后招聘
+1/6
山东大学量子成像团队招收2026年秋季入学博士生
+2/6
张兆威教授课题组长期招聘科研助理
+1/5
中科院博士后/特别研究助理招聘(光学工程、仪器科学、机械、电子、控制)
+1/5
重庆新桥医院临床研究助理招聘
+1/4
郑州大学2026年材料科学与工程学术博士有名额,这几天报名!有意向联系!
+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,
回复此楼