QR法与Jacobi法求Lyapunov指数:MATLAB实现与对比分析

在进行lyapunov指数的求取时,需要知道离散动力学系统对应Jacobi矩阵的特征值,qr法与Jacobi法都可以求解矩阵特征值,其中qr法求解的是矩阵所有特征值,而Jacobi法求解的是矩阵的最大特征值。本文以二维Henon映射为例,分别展示两种方法在求解时的区别与联系。

1.准备工作

1.1 henon映射

动力学系统

Henon映射为二维映射,其动力学方程通常有以下两种写法:

式中a、b为参数,0<b≤1,我们通常运用式(1)表达形式。

代码实现

clc;clear all;close all
%初值设置
x0=0.2;y0=0.3;
%参数设置
b=0.3;n=800;t=600;
hold on
for a = 0:0.01:1.4 %参数a
x(1)=1+y0-a*x0^2;
y(1)=b*x0;
for i =2:n
   x(i)=1+y(i-1)-a*x(i-1)^2;
   y(i)=b*x(i-1);
end
xn=x(t+1:n);%80次迭代之后的数据
pause(0.1);
plot(a,xn,'r.','Markersize',2);
xlabel('a');ylabel('x');
set(gca,'XLim',[0 1.4]);
set(gca,'XTick',[0:0.2:1.4]);
set(gca,'YLim',[-1.5  1.5]);
set(gca,'YTick',[-1.5:0.5:1.5]);
end

混沌图像:

图1 .henon映射

1.2 jacobi矩阵

求Jacobi矩阵,实际上就是对动力学系统方程关于求偏导。

1.3 lyapunov指数

在式(3)jacobi矩阵的基础上有

首先令:

Jk的m个复特征值表示为:

离散动力学系统的第个lypunov指数可表示为:

2.   Jacobi法

Jacobi法求特征值,是求的最大特征值。故在(4)式的基础上,我们应将特征值进行排序,然后取出最大的特征值即可,但是:

在求lypunov指数是特征值取模;

对于复特征值而言不取模的话并无意义;

对于单纯数大,但数值并不大的特征值而言,其对应求得的lypunov指数并没有十分特殊的意义;

特征值模最大,可以对应求得系统的最大lypunov指数,对于henon映射这种2维系统而言,对最大lypunov指数进行观察就可以了解系统混沌与否。

故我们对(4)式中的特征值,进行取模排序,依次从小到大排序为:

那么利用jacobi法求系统特征值后所对应的lypunov指数可表示为:

代码实现

clc, clear
a=0:0.01:1.6; n=500; S=[];
for j=1:length(a)
    x=0.2; y=0.3; %x,y的初值
    for i=1:n
        x2=1-a(j)*x^2+y; y=0.3*x; x=x2; %首先进行序列迭代
    end
    if x(end)>-100 & x(end)<100 %若不发散,再计算指数
        x=0.2; y=0.3;
        JJ=eye(2);%2阶单位矩阵
        for i=1:n
            x2=1-a(j)*x^2+y; y=0.3*x; x=x2;
            J=[-2*a(j)*x, 1; 0.3, 0];%jacobi矩阵
            JJ=JJ*J;
        end
        L=eigs(JJ,1); %求模最大的特征值,并返回1个最大特征值
        S=[S,[a(j);log(abs(L))/n]]; %把a值及指数值保存
    end
end
plot(S(1,:),S(2,:),'.-') %画出a对应的最大Lyapunov指数
hold on, plot([a(1),a(end)],[0,0],'k')
xlabel('\it a'), ylabel('最大Lyapunov指数')

lypunov指数谱:

图2 .jacobi法求得的henon映射lyapunov指数谱

jacobi法求得的lyapunov指数谱与混沌的对应:

图3 .jacobi法求得的henon映射与最大lyapunov指数之间的对应

3.  qr法

qr法求的是系统所有的特征值,即把式(4)中所有特征值,进行取模后全部转化为lyapunov。由于henon映射为2维系统,故其对应的特征值最多就2个

代码实现

clc;close all;clear all
N = 1000;
a = (0:0.001:1.4)';
b = 0.3;
na = length(a);
LE1 = zeros(na,1);
LE2 = zeros(na,1);
x = 0.2; y = 0.3;
for i=1:na
    LCEvector = zeros(2,1);
    Q = eye(2);
    for j=1:N
        xprev = x;
        yprev = y;
        x = 1-a(i)*xprev*xprev+yprev;
        y = b*xprev;
        Ji = [-2*a(i)*x,1;b 0];
        B = Ji*Q;
        [Q,R] = qr(B); %RB矩阵的上三角矩阵
        LCEvector = LCEvector+log(diag(abs(R)));
    end
    LE = LCEvector/N;
        LE1(i) = LE(1);
        LE2(i) = LE(2);
end
figure(1)
plot(a,LE1,'g','linewidth',1) ;
hold on
plot(a,LE2,'b','linewidth',1);
set(gca,'XLim',[0 1.4]);
 set(gca,'YLim',[-2 1]);
legend('\lambda1','\lambda2');
hold on
plot([0 1.4],[0 0],'k--','linewidth',1)
hold off
 xlabel('a');ylabel('LE');
 set(gca,'fontsize',10)

lyapunov指数谱:

图4 .qr法求得的henon映射lyapunov指数谱

4. qr法与Jacobi法之间代码的联系

在jacobi法代码基础上,我们稍作调整也可以得qr法对应的lyapunov指数谱:

去掉eigs()这个求最大特征值函数

引入qr函数

jacobi法每次对应1个特征值,qr法此处对应两个,因此为了累加计算的方便将lyapunov指数迭代放到循环里面。

代码实现

clc, clear
a=0:0.001:1.4; n=500;
for j=1:length(a)
    LE = zeros(2,1);
    x=0.2; y=0.3; %x,y的初值
    for i=1:n
        x2=1-a(j)*x^2+y; y=0.3*x; x=x2; %首先进行序列迭代
    end
    if x(end)>-100 & x(end)<100 %若不发散,再计算指数
        x=0.2; y=0.3;
        JJ=eye(2);%2阶单位矩阵
        for i=1:n
            x2=1-a(j)*x^2+y; y=0.3*x; x=x2;
            J=[-2*a(j)*x, 1; 0.3, 0];%jacobi矩阵
            JJ=J*JJ;
            [JJ,L]=qr(JJ);
            LE = LE+log(diag(abs(L)));
        end
    end
    LE = LE/n;
    LE1(j) = LE(1);
    LE2(j) = LE(2);
end
figure(1)
plot(a,LE1,'g','linewidth',1) ;
hold on
plot(a,LE2,'b','linewidth',1);
set(gca,'XLim',[0 1.4]);
 set(gca,'YLim',[-2 1]);
legend('\lambda1','\lambda2');
hold on
plot([0 1.4],[0 0],'k--','linewidth',1)
hold off
 xlabel('a');ylabel('LE');
 set(gca,'fontsize',10)

lyapunov指数谱:

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空