24小时热门版块排行榜    

查看: 1152  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 4/200 2026-08-23 04:04 by OEbVnUOu01ol
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 2JOx3r2CYEgw 2026-08-22 6/300 2026-08-23 03:40 by OEbVnUOu01ol
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 QTy3jDtz1uLt 2026-08-21 11/550 2026-08-23 02:55 by OEbVnUOu01ol
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 DpSrDtM079iu 2026-08-22 3/150 2026-08-23 00:55 by OEbVnUOu01ol
[基金申请] 2026国自然函评费到账 +11 羊腰板 2026-08-21 11/550 2026-08-22 22:03 by lsbin3733
[基金申请] 范进中举一文的中心思想 +3 zjuhero 2026-08-22 4/200 2026-08-22 20:02 by mycsru
[教师之家] 跳槽后在研项目怎么办? +3 简单化xn 2026-08-22 7/350 2026-08-22 19:46 by 简单化xn
[基金申请] filecode,4个jtjc了 +13 ziyangfang 2026-08-19 16/800 2026-08-22 17:08 by WH3796
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-21 4/200 2026-08-22 16:52 by sunzitan
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 放榜前的不淡定 40+4 snowwithsea 2026-08-19 14/700 2026-08-21 23:51 by cratir
[基金申请] 建议基金发布提前给出明确的时间点 +10 kulium 2026-08-21 13/650 2026-08-21 21:58 by alongwaytogo
[基金申请] 让我中一个面上吧! +11 大萍1987 2026-08-20 13/650 2026-08-21 14:48 by 20120902066
[基金申请] 感觉是下周放榜了 +7 angus9576 2026-08-17 12/600 2026-08-21 13:38 by weiyin
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[基金申请] 今天放榜没戏了吧 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
[基金申请] 估计是周四 +3 archvillain 2026-08-18 3/150 2026-08-21 01:48 by jnhyjjm
[基金申请] 今天系统多次维护,明天很可能放榜! +10 zju2000 2026-08-16 11/550 2026-08-20 20:02 by cl479861084
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
信息提示
请填处理意见