matlab 计算雅可比矩阵的lorenz李雅普图

Posted studyer_domi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 计算雅可比矩阵的lorenz李雅普图相关的知识,希望对你有一定的参考价值。

1、内容简介


629-可以交流、咨询、答疑

matlab 计算雅可比矩阵的lorenz李雅普图

2、内容说明

3、仿真分析

clear
clc
close all
x0_span = -5:0.01:5;
Z = [];
for i = 1:length(x0_span)
    i
    ly(i,:) = ly_spectra(x0_span(i));
end

figure
plot(ly(:,[2 3 4 5]),'DisplayName','ly')
figure
plot(sum(ly,2))
function ly = ly_spectra(x1)
% clear 
% clc
T = 13.5;
dt = 0.01;
a = 3.39;
b = 1.95;
c = 9.36;
r = 0.42;
g = 1.42;
A = 0.0676;
B = 0.3682;
N=T/dt; 
x2=0;x3=0;x4=0; x5=0;
[t,x] = ode45('func',[0:1:T],[x1;x2;x3;x4;x5]);
n=length(t);
x1=x(n,1); x2=x(n,2); x3=x(n,3); x4=x(n,4); x5=x(n,5);
[t,x] = ode45('func',[0:dt:T],[x1;x2;x3;x4;x5]);

JN = eye(5);
w = eye(5);
J = eye(5);
for k=1:N
    x1 = x(k,1);
    x2 = x(k,2);
    x3 = x(k,3);
    x4 = x(k,4);
    x5 = x(k,5);
    W1 = A+B*abs(x4);
    W2 = A+B*abs(x5);
    J = (eye(5)+[-c*r-c/W2 c c 0 0; -a a*g a*g 0 0; -b b*g b*g-b*W1 0 0;0 0 1 0 0;1/W2 0 0 0 0]*dt);
    [~,w] = qr(J*w);

    w(:,1) = w(:,1)/norm(w(:,1));
    w(:,2) = w(:,2)/norm(w(:,2));
    w(:,3) = w(:,3)/norm(w(:,3));
    w(:,4) = w(:,4)/norm(w(:,4));
    w(:,5) = w(:,5)/norm(w(:,5));
end

 

 

4、参考论文

以上是关于matlab 计算雅可比矩阵的lorenz李雅普图的主要内容,如果未能解决你的问题,请参考以下文章

matlab洛伦兹混沌系统时间序列李雅普指数计算

李雅普诺夫指数

Matlab求解混沌系统最大李雅普诺夫指数

Matlab求解混沌系统最大李雅普诺夫指数

在扩展卡尔曼滤波器中计算状态空间模型和测量模型的雅可比矩阵

数值计算 --求解连续微分系统和混沌系统