分享

微分方程组 : 混沌

 小温爱怡宝 2023-10-07 发布于江西
%自定义一个洛伦兹函数
function f = lorenz(t, x)f = zeros(3,1);f(1) = 10 * (x(2) - x(1));f(2) = -x(1) * x(3) + 28 * x(1) - x(2);f(3) = x(1) * x(2) - 8 * x(3) / 3
x0 = [-2 -3.5 21];[t,x] = ode23(@lorenz, [0 10], x0);plot(x(:,1), x(:,3))hold on[t,x] = ode45(@lorenz, [0 10], x0);plot(x(:,1), x(:,3))

得到的图像

洛伦兹吸引子(蓝色为ode23;红色为ode45)

上述是一个MATLAB脚本,用于求解洛伦兹吸引子的ODE(常微分方程)系统并绘制其轨迹。这个ODE系统描述了洛伦兹吸引子的演化。

这段代码的主要步骤包括:

1. 定义一个名为 `lorenz` 的函数,它计算洛伦兹吸引子ODE系统的右侧(导数)。
2. 设置初始条件 `x0`,表示系统的初始状态。
3. 使用 `ode23` 和 `ode45` 函数分别求解ODE系统在时间区间 `[0, 10]` 上的演化,并存储结果。
4. 使用 `plot` 函数绘制两次求解的轨迹,分别使用 `ode23` 和 `ode45` 方法得到的结果。

这段代码的目的是比较两种不同的ODE求解方法(`ode23` 和 `ode45`)在模拟洛伦兹吸引子系统时的效果。你可以运行这段代码,然后观察绘制的图形,看看这两种方法的差异。通常,`ode45` 在处理非刚性问题时更为精确,但相对耗费计算资源。

具体参考下面的文章

龙格-库塔(Runge-Kutta)法求解一阶常微分方程组


洛伦兹吸引子动画设计示意图

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多