matlab 使用ode45求解時報錯

CSDN問答 2022-01-07 16:13:22 阅读数:897

matlab 使用 ode45 ode 求解

我在做演化博弈使用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 allfor i=0.1:0.2:0.9for j=0.1:0.2:0.9for m=0.1:0.2:0.9[T,Y]=ode45(@differential,[0,20],[i j m]);figure(1)grid onplot(T,Y(:,1),'r-','lineWidth',1);hold onplot(T,Y(:,2),'b--','lineWidth',1);hold onplot(T,Y(:,3),'g*','lineWidth',1);hold onendendend



采納答案:

exactly



其他答案2:

我也遇到這個問題,請問你解决了麼

 

版权声明:本文为[CSDN問答]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071613218843.html