MATLAB: 使用 ode45 求解常微分方程组并绘制数值解和解析解
MATLAB: 使用 ode45 求解常微分方程组并绘制数值解和解析解
本文将使用 MATLAB 中的 ode45 函数求解常微分方程组,并绘制数值解和解析解的图形。
程序代码
以下为修正后的程序代码:
A = [-5,2,0,0;0,-4,0,0;-3,2,-4,-1;-3,2,0,-4];
X0 = [1;2 ;0;1]; % 初始条件
tspan = [0,10]; % 时间范围
[t, X] = ode45(@(t, X) A*X, tspan, X0); % 绘制数值解
figure;
plot(t, X(:, 1), 'r', t, X(:, 2), 'b', t, X(:, 3), 'g', t, X(:, 4), 'y');
xlabel('时间');
ylabel('解');
legend('X1', 'X2', 'X3', 'X4');
title('数值解');
x_analytical = expm(A*t') * X0; % 绘制解析解
figure;
plot(t, x_analytical(:, 1), 'r', t, x_analytical(:, 2), 'b', t, x_analytical(:, 3), 'g', t, x_analytical(:, 4), 'y');
xlabel('时间');
ylabel('解');
legend('X1', 'X2', 'X3', 'X4');
title('解析解');
修正说明
- 添加了时间范围
tspan。 - 修正了解析解的计算,使用
X0代替x0。 - 在图例和标题中添加了所有解的标签。
总结
本文展示了如何使用 ode45 函数求解常微分方程组,并绘制数值解和解析解的图形。同时,也说明了如何修正程序中的错误,并提供完整的解决方案。希望本文能帮助读者更好地理解和使用 MATLAB 进行常微分方程组的求解和绘图。
原文地址: https://www.cveoy.top/t/topic/pgHm 著作权归作者所有。请勿转载和采集!