我正在尝试学习如何使用 MATLAB 求解微分方程组(洛伦兹方程)并将每个解绘制为 t 的函数
X’ = −σx + σy
Y’ = ρx − y − xz
Z’ = −βz + xy
其中σ = 10
, β = 8/3
, 和ρ = 28
, 以及x(0) = −8
, y(0) = 8
, 和z(0) = 27
.
这是我正在使用的代码:
function xprime = example(t,x)
sig = 10;
beta = 8/3;
rho = 28;
xprime = [-sig*x(1) + sig*x(2);
rho*x(1) - x(2) - x(1)*x(3);
-beta*x(3) + x(1)*x(2)];
x0 = [-8 8 27];
tspan = [0 20];
[t,x] = ode45(@example, tspan, x0);
figure
plot(t,x(:,1)), hold on
plot(t,x(:,2)), hold on
plot(t,x(:,3)), hold off
但是,这会产生错误,我该如何解决?我不确定缺少哪些输入参数或哪里出错了。我感谢任何帮助,谢谢。
没有足够的输入参数。
示例中的错误(第 9 行) xprime=[-sig x(1) + sig x(2); rho*x(1) - x(2) - x(1) x(3); -β x(3) +
x(1)*x(2)];