这个例子展示了如何将一个二阶微分方程转化为一个微分方程组,可以使用数值解算器来解决数值
MATLAB®。
解决高阶常微分方程的一个典型方法是将其转换成系统的一阶微分方程,然后解决这些系统。本例使用符号数学工具箱™将一阶常微分方程的二阶系统歌唱。然后它使用MATLAB求解程序数值
解决系统。
使用odeToVectorField
重写这二阶微分方程
使用一个变量的变化。让 和 这样微分方程得到系统的一阶微分方程。
信谊y (t)[V] = odeToVectorField (diff (y, 2) = = (1 - y ^ 2) * diff (y) - y)
V =
MATLAB解决歌唱不接受符号表达式作为输入。因此,之前您可以使用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函数作为输入。
索尔=数值(M, 20 [0], [2 0]);
情节的解决方案使用linspace
生成100点的区间[0,20]和德瓦尔
评估每个点的解决方案。
fplot (@ (x)德瓦尔(sol x, 1), [0, 20])