二阶齐次方程,运行提示错误---tspan 必须至少包含两个元素
源代码如下:
% 转换为方程组:y1 = y, y2 = y'
ode_fun = @(x, y) [y(2); -3*y(2) - 2*y(1)];
% 数值求解
[x_ode, y_ode] = ode45(ode_fun, [05], [1; 0]);
% 解析解
y_exact = @(x) 2*exp(-x) - exp(-2*x);
% 绘图
figure;
plot(x_ode, y_ode(:,1), 'b--', x_ode, y_exact(x_ode), 'r-');
xlabel('x'); ylabel('y');
legend('数值解', '解析解');
title('二阶齐次方程解对比');
问题出现在给的 tspan 参数错误, 0 和 5 之间添个空格就行.
% 转换为方程组:y1 = y, y2 = y' ode_fun = @(x, y) [y(2); -3*y(2) - 2*y(1)]; % 数值求解 [x_ode, y_ode] = ode45(ode_fun, [0 5], [1; 0]); % 解析解 y_exact = @(x) 2*exp(-x) - exp(-2*x); % 绘图 figure; plot(x_ode, y_ode(:,1), 'b--', x_ode, y_exact(x_ode), 'r-'); xlabel('x'); ylabel('y'); legend('数值解', '解析解'); title('二阶齐次方程解对比');