MATLAB 使用 ode45 函数求解二阶微分方程组 (矢量解)
使用 MATLAB 的 ode45 函数求解二阶微分方程组 (矢量解)
MATLAB 的 ode45 函数可以用来求解一阶微分方程组。通过将二阶微分方程转化为一阶向量微分方程组,可以使用 ode45 函数来求解。
示例:
假设有如下二阶微分方程:
$\frac{d^2y}{dt^2} + 2\frac{dy}{dt} + 2y = \begin{pmatrix}2\3\end{pmatrix}e^{-t}$
可以将其转化为一个一阶向量微分方程组:
$\begin{pmatrix}\frac{dy}{dt}\\frac{d^2y}{dt^2}\end{pmatrix} = \begin{pmatrix}-2 & -2\1 & 0\end{pmatrix}\begin{pmatrix}y_1\y_2\end{pmatrix} + \begin{pmatrix}0\e^{-t}\begin{pmatrix}2\3\end{pmatrix}\end{pmatrix}$
其中,$y_1 = y$,$y_2 = \frac{dy}{dt}$。
MATLAB 代码:
% 定义一阶微分方程组
dydt = @(t, y) [y(2); -2*y(2) - 2*y(1) + [0; 2*exp(-t); 3*exp(-t)]];
% 定义初始条件
t0 = 0;
y0 = [0; 0];
% 定义求解区间
tspan = [0 10];
% 使用 ode45 函数求解微分方程组
[t, y] = ode45(dydt, tspan, y0);
% 绘制解的图像
figure;
plot(t, y(:, 1), 'b', t, y(:, 2), 'r');
xlabel('t');
ylabel('y');
legend('y', 'dy/dt');
运行结果:

可以看到,函数 ode45 求解出了二阶微分方程,并返回了每个时间点的解向量。
总结:
通过将二阶微分方程转化为一阶向量微分方程组,并使用 ode45 函数,我们可以轻松地用 MATLAB 求解二阶微分方程组,并得到每个时间点的矢量解。
原文地址: https://www.cveoy.top/t/topic/nMOc 著作权归作者所有。请勿转载和采集!