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('解析解');

修正说明

  1. 添加了时间范围 tspan。
  2. 修正了解析解的计算,使用 X0 代替 x0。
  3. 在图例和标题中添加了所有解的标签。

总结

本文展示了如何使用 ode45 函数求解常微分方程组,并绘制数值解和解析解的图形。同时,也说明了如何修正程序中的错误,并提供完整的解决方案。希望本文能帮助读者更好地理解和使用 MATLAB 进行常微分方程组的求解和绘图。


原文地址: https://www.cveoy.top/t/topic/pgHm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录