MATLAB编写程序用四阶龙格库塔法求解常微分方程组,自己写了算的出错,求帮助啊

dy1/dt=-y1 ,dy2/dt=-y3 ,dy3/dt=y2 , 0 ≥ t ≤ 0.2
y1(0)=1 y2(0)=-1 y3(0)=0
步长h=0.01

[t,x]=rk4(@(t,x)[-x(1),-x(3),x(2)],0,2,[1,-1 0], 0.01)

%函数文件

function [t,x]=rk4(funname,t0,t1,x0,dt)
t=[];
x=[];
while t0<t1
t=[t;t0];
x=[x;x0];
k1=funname(t0,x0);
t0=t0+dt/2;
k2=funname(t0,x0+dt*k1/2);
k3=funname(t0,x0+dt*k2/2);
t0=t0+dt/2;
k4=funname(t0,x0+dt*k3);
x0=x0+dt/6*(k1+2*k2+2*k3+k4);
t=[t;t0];
x=[x;x0];
end
温馨提示:答案为网友推荐,仅供参考
相似回答