这个例子向您展示了如何将一个二阶微分方程转换为一个可以使用数值求解器求解的微分方程系统数值
MATLAB®。
求解高阶常微分方程的一种典型方法是将高阶常微分方程转化为一阶微分方程组,然后求解这些方程组。该示例使用Symbolic Math Toolbox™将一个二阶ODE转换为一个一阶ODE系统。然后使用MATLAB求解器数值
解这个方程组。
使用odeToVectorField
重写这个二阶微分方程
使用变量变换。让 和 对这两个方程微分,我们得到一个一阶微分方程组。
信谊y (t)[V] = odeToVectorField (diff (y, 2) = = (1 - y ^ 2) * diff (y) - y)
V =
MATLAB ODE求解器不接受符号表达式作为输入。因此,在使用MATLAB ODE求解器来求解系统之前,必须将该系统转换为MATLAB函数。利用该一阶微分方程组生成MATLAB函数matlabFunction
以V作为输入。
M = matlabFunction (V,“var”, {“t”,“Y”})
M =function_handle与价值:@ (t, Y) [Y (2); - (Y(1) ^ 2 - 1.0)。* Y (2) - Y (1)]
为了解决这个系统,调用MATLAB数值
数值求解器使用生成的MATLAB函数作为输入。
溶胶= ode45(M,[0 20],[2 0]);
用以下方法绘制解决方案linspace
在[0,20]和区间内生成100个点德瓦尔
来评估每个点的解。
fplot (@ (x)德瓦尔(sol x, 1), [0, 20])