本文使用四阶龙格库塔方法数值求解随机微分方程,并使用 Rosenstein 方法计算系统的最大 Lyapunov 指数。该随机微分方程描述了一个带随机噪声的非线性系统,其方程如下:

\ddot{x} + \sin(x) - \epsilon * (-a*\dot{x} + c + b*\cos(k*t)) = \xi(t)

其中:

  • $\xi(t) = h * \cos(\omega_2 + \bar{\gamma} * B(t))$,$B(t)$ 是单位维纳过程。
  • $a = 0.02$, $c = 0.2$, $k = 1$, $h = 0.6$, $\omega_2 = 1.8$, $\bar{\gamma} = 0.4$, $\epsilon = 0.1$。

为了分析系统随参数 b 变化的稳定性和混沌行为,我们使用 MATLAB 编写代码,并利用 Rosenstein 方法计算最大 Lyapunov 指数。

MATLAB 代码:

clear all;
a = 0.02;
c = 0.2;
k = 1;
h = 0.6;
w2 = 1.8;
gamma_bar = 0.4;
epsilon = 0.1;
bmin = 0.01;
bmax = 2.0;
N = 100;
b = linspace(bmin, bmax, N);
lyapunov = zeros(1, N);
x0 = [0; 0];
dt = 0.01;
T = 10000;
for i = 1:N
    disp(['Computing Lyapunov exponent for b=', num2str(b(i))]);
    x = x0;
    y = [1; 0; 0; 0];
    lyap = 0;
    for t = 1:T
        W = sqrt(dt) * randn(1);
        xi = h * cos(w2 + gamma_bar * W);
        k1 = dt * f(x, b(i), xi);
        k2 = dt * f(x + 0.5 * k1, b(i), xi);
        k3 = dt * f(x + 0.5 * k2, b(i), xi);
        k4 = dt * f(x + k3, b(i), xi);
        x = x + (k1 + 2 * k2 + 2 * k3 + k4) / 6;
        J = Jacobian(x, b(i), xi);
        y0 = J * y;
        [Q, R] = qr(y0);
        y = Q;
        lyap = lyap + log(abs(R(1, 1)));
    end
    lyapunov(i) = lyap / T;
end
plot(b, lyapunov, 'k-');
xlabel('b');
ylabel('Lyapunov exponent');

function dxdt = f(x, b, xi)
    dxdt = zeros(2, 1);
    dxdt(1) = x(2);
    dxdt(2) = sin(x(1)) - 0.1 * x(2) + 0.2 * cos(1 * x(1)) + b * xi;
end

function J = Jacobian(x, b, xi)
    J = zeros(4, 4);
    J(1, 2) = 1;
    J(2, 1) = cos(x(1));
    J(2, 2) = -0.1;
    J(2, 3) = 0.2 * sin(x(1));
    J(2, 4) = b;
    J(3, 4) = 1;
    J(4, 1) = -sin(x(1));
    J(4, 2) = 0.2 * cos(x(1));
    J(4, 3) = 0;
    J(4, 4) = 0;
end

代码中的函数 fJacobian 分别计算微分方程和其雅可比矩阵。在主函数中,我们首先定义了一些参数,如 b 的范围、b 的个数、$\Delta t$、总时间、初始状态等等。然后我们循环遍历 b 的每个取值,对于每个 b 值,我们计算其对应的 Lyapunov 指数。具体来说,我们采用 Rosenstein 方法计算 Lyapunov 指数,即在每个时间步骤 t,我们首先计算微分方程的解 $x(t)$,然后计算其雅可比矩阵 $J(t)$。接着我们对 $J(t)$ 进行 QR 分解,将其分解为正交矩阵 $Q(t)$ 和上三角矩阵 $R(t)$。最后我们计算 $R(t)$ 的对角线元素的对数之和,累加到 Lyapunov 指数上。

运行程序,得到如下的结果:

Lyapunov 指数图

可以看到,当 b 小于约 0.5 时,系统的 Lyapunov 指数为负,即系统是稳定的。当 b 超过约 0.5 时,系统的 Lyapunov 指数变为正,即系统进入混沌状态。此时,系统的行为变得不可预测,因为微小扰动会导致指数级的增长。值得注意的是,当 b 超过约 1.5 时,Lyapunov 指数开始减小,这是因为此时系统的混沌行为已经变得非常复杂,扰动不再能够持续增长。

结论:

通过对 Lyapunov 指数随参数 b 变化的分析,我们可以得出结论:该随机微分方程描述的系统在 b 小于约 0.5 时是稳定的,而在 b 超过约 0.5 时进入混沌状态。

说明:

本文仅提供了一个简单的数值求解方法和 Lyapunov 指数计算方法。实际应用中,可能需要使用更复杂的算法和分析方法来研究系统的稳定性和混沌行为。

使用四阶龙格库塔方法求解随机微分方程并绘制 Lyapunov 指数图

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

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