24小时热门版块排行榜    

CyRhmU.jpeg
查看: 928  |  回复: 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):谢谢参与
没'tumor'函数,不好判断运行结果正确不正确。
4楼2010-11-26 08:34:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

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的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见