24小时热门版块排行榜    

查看: 992  |  回复: 3

liangbao

金虫 (小有名气)


[交流] 【求助】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 ]
回复此楼

» 猜你喜欢

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liangbao(金币+2):谢谢参与
liangbao(金币+10): 2010-11-25 20:38:17
每次循环把t,y的值覆盖掉了。
循环里把y赋给一个矩阵的一行即可。
2楼2010-11-25 20:01:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liangbao

金虫 (小有名气)


引用回帖:
Originally posted by xiegangmai at 2010-11-25 20:01:10:
每次循环把t,y的值覆盖掉了。
循环里把y赋给一个矩阵的一行即可。

恩,谢谢
我这样改,运行通过了
您看看,没有什么对不?
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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liangbao(金币+2):谢谢参与
没'tumor'函数,不好判断运行结果正确不正确。
4楼2010-11-26 08:34:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 liangbao 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0703化学调剂 290分有科研经历,论文在投 +3 腻腻gk 2026-03-14 3/150 2026-03-15 17:28 by 小物理化学
[考研] 材料专硕326求调剂 +4 墨煜姒莘 2026-03-15 4/200 2026-03-15 11:02 by dyw
[考研] 297一志愿上交085600求调剂 +5 指尖八千里 2026-03-14 5/250 2026-03-14 17:26 by a不易
[考研] 一志愿哈工大材料324分求调剂 +5 闫旭东 2026-03-14 5/250 2026-03-14 14:53 by 木瓜膏
[考研] 297求调剂 +4 学海漂泊 2026-03-13 4/200 2026-03-14 11:51 by 热情沙漠
[考研] 学硕285求调剂 +13 Wisjxn 2026-03-12 46/2300 2026-03-14 10:33 by JourneyLucky
[考研] 085600材料与化工 326 求调剂 +5 热爱生活ing 2026-03-09 5/250 2026-03-14 02:39 by JourneyLucky
[考研] 308求调剂 +4 是Lupa啊 2026-03-09 4/200 2026-03-14 02:06 by tranquil_ya
[考研] 求调剂! +4 朔朔话 2026-03-09 4/200 2026-03-14 01:38 by JourneyLucky
[考研] 328,0703考生求调剂,一志愿为东北师范大学 +4 观素律 2026-03-09 5/250 2026-03-14 01:24 by JourneyLucky
[考研] 一志愿郑大070303,338分,求调剂 +4 dadawaf 2026-03-10 5/250 2026-03-14 01:20 by lsw010101
[考研] 环境调剂 +6 晓看天暮看云 2026-03-09 6/300 2026-03-14 01:16 by JourneyLucky
[考研] 312求调剂 +6 陌宸希 2026-03-10 6/300 2026-03-14 00:40 by JourneyLucky
[考研] 材料专硕288分求调剂 一志愿211 +4 在家想你 2026-03-11 4/200 2026-03-13 22:49 by JourneyLucky
[考研] 274求调剂 +3 S.H1 2026-03-12 3/150 2026-03-13 15:15 by JourneyLucky
[考研] 求调剂 +3 程雨杭 2026-03-12 3/150 2026-03-13 15:06 by JourneyLucky
[考研] 308求调剂 +3 是Lupa啊 2026-03-12 3/150 2026-03-13 14:30 by 求调剂zz
[考研] 289求调剂 +3 李政莹 2026-03-12 3/150 2026-03-13 11:02 by 求调剂zz
[考研] 一志愿华中师范071000,325求调剂 +5 RuitingC 2026-03-12 5/250 2026-03-13 10:43 by hyswxzs
[考研] 0703化学调剂 +3 三dd. 2026-03-10 3/150 2026-03-10 15:45 by peike
信息提示
请填处理意见