作业帮 > 综合 > 作业

matlab解微分方程组出现错误

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 02:09:02
matlab解微分方程组出现错误
程序如下:
function f=shier(t,x)
f(1)=x(3)*x(1)*(1-x(1)/0.23)-0.2*x(1)*x(2);
f(2)=0.2*x(1)*x(2)-0.18*x(2)-0.2*x(2);
f(3)=0.18*x(2)-0.1*x(3);
然后这个就出现错误了:
Input argument "x" is undefined.
Error in ==> shier at 2
f(1)=x(3)*x(1)*(1-x(1)/0.23)-0.2*x(1)*x(2);
Input argument "x" is undefined.
Error in ==> shier at 2
f(1)=x(3)*x(1)*(1-x(1)/0.23)-0.2*x(1)*x(2);
然后我没管错误,直接在workspace输入:
[t,x]=ode45(@shier,[0 30],[70;20;10])
然后出现下面错误了:
Error using ==> funfun\private\odearguments
SHIER must return a column vector.
Error in ==> ode45 at 173
[neq,tspan,ntspan,next,t0,tfinal,tdir,y0,f0,odeArgs,..
function f=shier(t,x)
f(1)=x(3)*x(1)*(1-x(1)/0.23)-0.2*x(1)*x(2);
f(2)=0.2*x(1)*x(2)-0.18*x(2)-0.2*x(2);
f(3)=0.18*x(2)-0.1*x(3);
改为
function f=shier(t,x)
f=zeros(3,1); %% 很重要
f(1)=x(3)*x(1)*(1-x(1)/0.23)-0.2*x(1)*x(2);
f(2)=0.2*x(1)*x(2)-0.18*x(2)-0.2*x(2);
f(3)=0.18*x(2)-0.1*x(3);
end