主要内容

数字地解决二阶微分方程

此示例显示了如何将二阶微分方程转换为可以使用数字求解器解决的微分方程系统ODE45.MATLAB®。

求解高阶常微分方程的典型方法是将它们转换为一阶微分方程的系统,然后解决这些系统。该示例使用符号数学工具箱™将二阶ode转换为一阶odes系统。然后它使用matlab求解器ODE45.解决系统。

将二阶ODE重写为一阶ODES系统

采用odetovectorfield.重写该二阶微分方程

D. 2 y D. T. 2 = 1 - y 2 的) D. y D. T. - y

使用变量的变化。让 y T. 的) = y 1 D. y D. T. = y 2 使得区分两个方程我们获得一阶微分方程的系统。

D. y 1 D. T. = y 2 D. y 2 D. T. = - y 1 2 - 1 的) y 2 - y 1

纽带y(t)[v] = odetovectorfield(差异(y,2)==(1  -  y ^ 2)* diff(y) -  y)
v =

y 2 - y 1 2 - 1 y 2 - y 1 的)

生成matlab功能

MATLAB ode响音器不接受符号表达式作为输入。因此,在使用MATLAB ode Solver来解决系统之前,必须将该系统转换为MATLAB函数。从该系统使用此系统使用MATLAB功能使用matlabfunction.用V作为输入。

m = matlabfunction(v,'vars',{'T''是'})
m =function_handle具有值:@(t,y)[y(2);-( y(1)。^ 2-1.0)。* y(2)-y(1)]

解决一阶余下系统

要解决此系统,请致电MATLABODE45.使用生成的MATLAB功能作为输入的数值求解器。

sol = ode45(m,[0 20],[2 0]);

绘制解决方案

使用解决方案Linspace.在间隔中生成100个点[0,20]和评估每个点的解决方案。

fplot(@(x)deval(sol,x,1),[0,20])

图包含轴对象。轴对象包含类型函数线的对象。

也可以看看

|||