24小时热门版块排行榜    

查看: 1147  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 基金啊基金 +3 longfie172 2026-08-20 3/150 2026-08-21 00:04 by wuchongjun
[基金申请] 科研孤儿太难了 +14 我4大白菜 2026-08-20 15/750 2026-08-20 22:33 by 袁向阳007
[基金申请] 让我中一个面上吧! +8 大萍1987 2026-08-20 10/500 2026-08-20 21:48 by 大萍1987
[基金申请] 言之凿凿,明天官网会通知放榜? +15 医学老男孩 2026-08-20 17/850 2026-08-20 20:35 by CaoLG
[基金申请] 时间戳又变了 +12 wuchongjun 2026-08-20 17/850 2026-08-20 20:05 by spzhao
[基金申请] 时间戳变了,能看出什么问题? +18 基诺咪客 2026-08-17 23/1150 2026-08-20 17:19 by Godzela
[基金申请] 只有每年这种时候来逛逛小木虫 +21 yaoyewhu2008 2026-08-20 22/1100 2026-08-20 17:03 by yaoyewhu2008
[基金申请] 放榜前的不淡定 40+3 snowwithsea 2026-08-19 12/600 2026-08-20 15:56 by lfy8008
[基金申请] filecode,4个jtjc了 +11 ziyangfang 2026-08-19 13/650 2026-08-19 21:28 by aasahr
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[基金申请] 今天放榜没戏了吧 +4 yuleib84 2026-08-19 5/250 2026-08-19 19:52 by hhs666
[基金申请] filecode=后面第一个是大写字母 +10 wangze12014 2026-08-14 12/600 2026-08-19 16:56 by 苦难博士
[基金申请] 2027广东省杰青 +4 奶牛小黑 2026-08-15 10/500 2026-08-19 11:02 by wanfengnew
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +6 Tide man 2026-08-14 7/350 2026-08-19 09:56 by ZJTJZ
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
信息提示
请填处理意见