weixin_42702624
Erin丿
采纳率0%
2021-02-20 23:36

matlab 使用ode45求解时报错

我在做演化博弈使用ode45函数求解时出现了如下错误,请问如何解决?

索引超出矩阵维度。

出错 differential (line 2)
dxdt=[x(1)*(1-x(1))*(10-3*x(3)-5*x(2));x(2)*(1-x(2))*(4*x(1)+12.6*x(3)-9);

出错 odearguments (line 87)
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.

出错 ode45 (line 115)
    odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);

出错 run (line 5)
[T,Y]=ode45(@differential,[0,20],[i j m]);

以下是源代码:

 

 

function dxdt=differential(x,t)
dxdt=[x(1)*(1-x(1))*(10-3*x(3)-5*x(2));x(2)*(1-x(2))*(4*x(1)+12.6*x(3)-9);
    x(3)*(1-x(3))*(3*x(1)*x(2)+20.4*x(2))]
%t是演化的步长和时间
end
clear all
for i=0.1:0.2:0.9
for j=0.1:0.2:0.9
for m=0.1:0.2:0.9
[T,Y]=ode45(@differential,[0,20],[i j m]);
figure(1)
grid on
plot(T,Y(:,1),'r-','lineWidth',1);
hold on
plot(T,Y(:,2),'b--','lineWidth',1);
hold on
plot(T,Y(:,3),'g*','lineWidth',1);
hold on
end
end
end
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • Chaoyuan_Jam Chaoyuan_Jam 2月前

    我也遇到这个问题,请问你解决了么

     

    点赞 评论 复制链接分享
  • weixin_42702624 Erin丿 3月前

    exactly

    点赞 评论 复制链接分享

相关推荐