三阶微分方程的数值解法有哪些?能不能用MATLAB来编程?

来源:百度知道 编辑:UC知道 时间:2024/05/10 04:43:39

最经典的解法就是龙格-库塔发了。

可以用Matlab进行求解。
求解时最常用命令是
ode45()

详细信息可在command window 中键入
help ode45
查看。

给你一个例子。

求解描述振荡器的经典的Ver der Pol 微分方程
y''-u(1-y^2)y'+1=0
初始条件:y(0)=1,y’(0)=0

解答如下:
令x1=y,x2=dy/dx,则
dx1/dt = x2
dx2/dt = μ(1-x2)-x1
编写函数文件verderpol.m:
function xprime = verderpol(t,x)
global MU
xprime = [x(2);MU*(1-x(1)^2)*x(2)-x(1)];
再在命令窗口中执行:
>>global MU
>>MU = 7;
>>Y0=[1;0]
>>[t,x] = ode45(‘verderpol’,0,40,Y0);
>>x1=x(:,1);x2=x(:,2);
>>plot(t,x1,t,x2)