登录论坛

查看完整版本 : [讨论]【SOS】在matlab中四阶Runge-Kutta法求解常微分方程


kornberg
2008-08-21, 09:47
【SOS】在matlab中四阶Runge-Kutta法求解常微分方程


dx1/dt=x2 x1(0)=1e-8



dx2/dt=x3 x2(0)=0



dx3/dt=x4 x3(0)=0



dx4/dt=f(t,x1,x2,x3,x4) x4(0)=0



求解区间[0,1e-6],在matlab中用四阶Runge-Kutta法求解,


怎么用从一阶循环到四阶?


有没有类似的具体算例?



希望各路高人出手相助,关乎小弟能否明年一月份顺利毕业,

在此先多谢各位高人了。

pslpsl
2008-08-21, 12:49
dx1/dt=x2 x1(0)=1e-8
dx2/dt=x3 x2(0)=0
dx3/dt=x4 x3(0)=0
dx4/dt=f(t,x1,x2,x3,x4) x4(0)=0

求解区间[0,1e-6],在matlab中用四阶Runge-Kutta法求解,


编写函数文件verderpol.m:

function xprime = verderpol(t,x)
xprime = [x(4);f(t,x1,x2,x3,x4)];

再在命令窗口中执行:

>>Y0=[1e-8;0;0;0]
>>[t,x] = ode45(‘verderpol’,0,1e-6,Y0);
>>x1=x(:,1);x2=x(:,2);x3=x(:,3);x4=x(:,4);
>>plot(t,x1,t,x2,t,x3,t,x4)

kornberg
2008-08-21, 13:55
非常感谢楼上高手指点

我回去试试