Lyapunov指数的计算方法
毕业设计__基于神经网络的时间序列Lyapunov指数普的计算毕业设计论文
摘要 (II)Abstract (III)第一章绪论 (1)1.1 引言 (1)1.2 Lyapunov计算方法的定义 (2)第二章基于神经网络的Lyapunov指数谱的计算 (3)2.1 相空间重构 (3)2.2 Oseledec矩阵的确定 (3)2.3 QR分解 (5)2.4 小波神经网络 (7)2.5 基于RBF神经网络的Lyapunov指数谱计算方法 (10)2.6 Lyapunov指数实验计算代码 (11)2.6.1确定嵌入维数 (11)2.6.2确定延迟时间 (11)2.6.3计算Lyapunov指数普 (12)2.7 Lyapunov指数仿真实验结果 (14)2.7.1 实验一 (14)2.7.2 实验二 (16)小结 (18)总结 (19)参考文献 (20)致谢 (21)Lyapunov指数是衡量系统动力学特性的一个重要定量指标,它表征了系统在相空间中相邻轨道间收敛或发散的平均指数率。
对于系统是否存在动力学混沌, 可以从最大Lyapunov指数是否大于零非常直观的判断出来: 一个正的Lyapunov 指数,意味着在系统相空间中,无论初始两条轨线的间距多么小,其差别都会随着时间的演化而成指数率的增加以致达到无法预测,这就是混沌现象。
利用RBF 神经网络的非线性函数逼近能力, 由实验观察数据列计算系统的Lyapunov指数谱实例计算表明, 此种方法精度较高且计算量较小, 有重要的实际意义.关键词: Lyapunov 指数谱; 相空间重构; 人工神经网络AbstractLyapunov exponent is an important measure of system dynamics quantitative indicators, It is characterized by the average rate in the phase space between adjacent tracks convergence or divergence. For the existence of chaotic dynamics, can be very intuitive judgment from the largest Lyapunov exponent is greater than zero: a positive Lyapunov exponent, means that the system in phase space, regardless of the initial two-rail line spacing, however small, the difference will cannot predictAs time evolved exponential increase in the rate of so reached, which is chaos. Lyapunov exponents are one of a number of parameters that characterize the nature of a chaotic dynamical system. We calculate the Lyapunov exponents from an observed time series based on the ability thata RBF neural network can approximate nonlinear functions. The results show that this method needs less computing time and has higher precision, soit has practical significance.Keywords: Lyapunov exponents;Reconstruction of phase space;Artificial neural network第一章绪论1.1引言混沌系统的基本特点就是系统对初始值的极端敏感性,两个相差无几的初值所产生的轨迹,随着时间的推移按指数方式分离,Lyapunov指数[1]就是定量的描述这一现象的量。
lyapunov方程判断
lyapunov方程判断
Lyapunov方程是一种检测系统稳定性的重要方法,是工程中一种常用的稳定性分析方法。
它具有精
度高、适用广泛、使用方便等特点。
下面,我们
就Lyapunov方程看一看:
一. 定义:
Lyapunov方程又称为雷米超定理,它旨在求解某一种系统在某些已知变量作用下,状态变量所表
征的系统演变的未知学习率。
它内在的含义是确
定系统一旦处于独立的均衡状态,就可以更轻松
地推导出其在稳定状态下的系统的动态行为,可以得出其稳定程度。
二. 公式结构
Lyapunov方程的结构由两部分组成,一部分是Lyapunov函数V(x ),另一部分是时间求导量
dV/dt。
简单来说,Lyapunov函数就是一种从初始条件到下一个状态的函数;而dV/dt则表示从一个状态到另一个状态的时间求导量。
所以Lyapunov方程的格式可表述为:
V(x ) = dV/dt
三. 作用
Lyapunov方程的主要用途是定量分析某一系统在特定状态下的稳定性。
Lyapunov方程的原理是,如果Lyapunov函数的导数不大于零,则系统具有较高的稳定性;反之,如果Lyapunov函数的导数大于零,则系统会动态变化而不稳定。
四. 应用
Lyapunov方程广泛应用在系统自控、机器人控制和机器学习等领域,在比如磁浮、悬浮动力学,以及机械、电子、环境工程中都有广泛应用,用
来分析系统的动态行为及稳定性。
通过调整Lyapunov函数的结构,可以有效地控制系统的性能和鲁棒性。
lyapunov方程的求解
lyapunov方程的求解
听说Lyapunov方程了吗?就是那个让一堆数学大师头疼的东西。
不过别担心,咱们就用大白话聊聊。
说简单点,Lyapunov方程就像是给系统稳定性拍了个“X光”,能看出系统内部的问题。
你想想看,要是你的自行车轮子不稳,骑
起来就得摇摇晃晃,对吧?这就是因为稳定性没搞好。
而Lyapunov
方程就是帮我们找到那个能让系统稳如泰山的“魔法公式”。
话说回来,求解Lyapunov方程可不是件轻松的事儿。
你得有点
数学功底,还得有点耐心和毅力。
有时候,解这个方程就像是解一
个复杂的拼图游戏,得把各个碎片拼在一起,才能看到完整的图画。
不过,好消息是,现在有了电脑和数学软件,求解Lyapunov方
程变得容易多了。
就像是你有了一个超级助手,帮你处理那些繁琐
的计算和推理。
这样一来,你就能更快地找到答案,也不用那么头
疼了。
所以啊,虽然Lyapunov方程听起来有点吓人,但只要咱们用对
方法,就能轻松搞定它。
就像是你面对一个看似复杂的问题,只要找到了解决方法,就能迎刃而解。
这就是数学的魅力所在!。
克隆法计算李雅普诺夫指数
克隆法计算李雅普诺夫指数李雅普诺夫指数(Lyapunov exponent)是用来衡量动态系统稳定性的一个重要指标。
在混沌理论中,李雅普诺夫指数可以用来预测一个系统对初始条件的敏感性。
克隆法是一种计算李雅普诺夫指数的数值方法。
其基本思想是:对于一个给定的动态系统,我们首先生成两个几乎完全相同的初始条件,然后让它们分别演化。
随着时间的推移,这两个初始条件会逐渐分离,我们可以通过测量它们之间的距离来计算李雅普诺夫指数。
具体步骤如下:
生成两个几乎完全相同的初始条件。
让这两个初始条件分别演化。
计算它们之间的距离。
重复上述步骤多次,并取平均值。
将平均值与时间作图,并求出斜率,即为李雅普诺夫指数。
需要注意的是,克隆法是一种数值方法,其结果会受到初始条件的选择、时间步长的选择等因素的影响。
因此,在使用克隆法计算李雅普诺夫指数时,需要选择合适的参数,并进行多次模拟以获得更准确的结果。
lyapunov方程求数值解
lyapunov方程求数值解
Lyapunov方程是控制理论中的一个重要方程,用于求解线性系
统的稳定性。
Lyapunov方程的一般形式为AX + XA^T = -Q,其中A
是系统的状态矩阵,X是要求解的对称正定矩阵,Q是一个对称正定
矩阵。
Lyapunov方程的解决对于确定系统的稳定性和性能至关重要。
要求解Lyapunov方程的数值解,通常可以采用以下方法之一:
1. Schur分解法,这是一种常用的数值方法,它将状态矩阵A
分解为一个正交矩阵和一个上三角矩阵的乘积。
然后,可以将Lyapunov方程转化为一个更容易求解的形式,进而求解X的数值解。
2. 离散时间Lyapunov方程的数值解,对于离散时间系统,可
以利用迭代法或者数值线性代数方法来求解Lyapunov方程的数值解。
3. MATLAB等数学软件,许多数学软件包括MATLAB都提供了专
门用于求解Lyapunov方程的函数或工具箱,可以直接利用这些工具
来求解数值解。
无论采用哪种方法,都需要注意数值解的稳定性和精度,尤其
是在系统维度较大时。
此外,还需要对所得到的数值解进行验证,确保其满足Lyapunov方程的定义和性质。
总之,求解Lyapunov方程的数值解需要结合数值方法和专业工具,以确保得到准确可靠的结果。
混沌动力学中的Lyapunov指数与分岔图分析
混沌动力学中的Lyapunov指数与分岔图分析混沌动力学是一门研究非线性系统行为的学科,它揭示了一些看似混乱无序的系统中的一些规律和模式。
在混沌动力学中,Lyapunov指数和分岔图是两个重要的工具,它们帮助我们理解和描述混沌系统的特性。
首先,让我们来了解一下Lyapunov指数。
Lyapunov指数是用来衡量系统中的初始条件对系统演化的敏感程度的指标。
在混沌系统中,微小的初始条件差异可能会导致系统演化出完全不同的轨迹。
Lyapunov指数通过计算系统中相邻轨迹之间的指数增长率来描述这种敏感程度。
正的Lyapunov指数表示系统的轨迹会发散,而负的Lyapunov指数表示系统的轨迹会收敛。
Lyapunov指数的绝对值越大,系统的混沌性越强。
Lyapunov指数的计算可以通过数值模拟的方法来实现。
我们可以选择一个初始条件,然后计算系统在不同时间点上的状态。
接下来,我们选择一个微小的扰动,并将其加到初始条件上,再次计算系统的演化。
通过比较两个轨迹之间的差异,我们可以得到Lyapunov指数。
重复这个过程,我们可以得到整个系统中不同点上的Lyapunov指数分布。
这个分布可以帮助我们判断系统的混沌性质以及混沌的程度。
分岔图是另一个用于描述混沌系统的工具。
分岔图展示了系统在参数空间中的演化情况。
在分岔图中,我们将系统的某个特定状态量(如系统的输出)作为纵坐标,而系统的参数作为横坐标。
当系统的参数发生变化时,我们观察系统状态的变化。
如果系统的状态在某个参数值附近发生突变,我们就可以看到分岔现象。
分岔图可以帮助我们理解系统的稳定性和不稳定性,以及混沌的产生机制。
分岔图的构建可以通过数值模拟或实验测量来实现。
对于数值模拟,我们可以选择一个参数值,然后计算系统在不同时间点上的状态。
接下来,我们改变参数值,并再次计算系统的演化。
通过观察系统状态的变化,我们可以绘制出分岔图。
对于实验测量,我们可以改变系统的某个控制参数,并记录系统的输出。
常微分方程中的Lyapunov指数
常微分方程中的Lyapunov指数Lyapunov指数是一种用于研究动力系统稳定性的重要工具。
在常微分方程中,Lyapunov指数可以帮助我们判断一个系统的稳定性,从而可以更好地理解物理现象。
本文将从以下几个方面介绍Lyapunov指数。
一、什么是Lyapunov指数?Lyapunov指数是法国数学家Lyapunov在19世纪末首次引入的一个概念,用于描述动力系统在某一相空间内的稳定性。
Lyapunov指数是一个实数,通常用λ表示,其大小代表了系统的稳定程度。
当λ>0时,系统是不稳定的;当λ<0时,系统是稳定的;当λ=0时,系统处于稳态。
二、如何计算Lyapunov指数?计算Lyapunov指数的方法有很多种,其中最为常用的是Kaplan-Yorke公式。
这种方法需要进行线性化处理,将非线性动力系统转化为线性动力系统。
通常用牛顿迭代法求解微分方程,并对每个时间步长进行雅可比矩阵的计算,从而最终得到系统的Lyapunov指数。
三、Lyapunov指数在物理学中的应用Lyapunov指数在物理学中有着广泛的应用,尤其是在研究混沌现象中。
混沌是指系统发生不可预期的非周期性运动,常常出现在分子动力学、天体力学和流体力学中。
利用Lyapunov指数可以判断混沌现象的发生,从而更好地理解这些物理现象。
四、Lyapunov指数在控制系统中的应用除了在物理学中的应用外,Lyapunov指数还被广泛应用于控制系统中。
在控制系统中,通过计算Lyapunov指数可以判断系统是否稳定,并且可以设计出更好的控制策略。
此外,Lyapunov指数还可以用于描述系统的鲁棒性,即系统对干扰的抵抗能力。
五、Lyapunov指数的局限性尽管Lyapunov指数在控制系统和物理学中有着广泛的应用,但是它也存在一些局限性。
首先,计算Lyapunov指数常常非常复杂,需要耗费大量时间和计算资源。
其次,Lyapunov指数只能用于描述系统局部的稳定性,而不能用于描述全局的稳定性。
计算lyapunov指数,利用wolf方法[技巧]
!系统表现为常微分方程组:(洛伦兹系统)!使用Wolf方法,注意IVF与fortran下面使用库函数的不同PROGRAM LE_DIFEQEN!INCLUDE 'link_fnl_shared.h'!USE numerical_libraries!使用fortran65用下面的一句话,用IVF使用上面的两句话USE IMSLIMPLICIT NONEINTEGER,PARAMETER::N=3 ! 原始微分方程个数INTEGER,PARAMETER::NN=12 !系统变量个数N+N*NEXTERNAL FCN !计算微分方程的子程序INTEGER I,J,K,L,NSTEP,IDO!NSTEP为计算次数REAL::TOL,STPSZE,T,TEND!T为系统的初始时间值,执行一次IVPRK后设为TEND(所要计算的系统时间值)!STPSZE为从T到TEND的时间步长!TOL为期望的误差范围REAL::Y(NN),ZNORM(N),GSC(N),LE(N),PARAM(50)!ZNORM中放向量的模!LE中放李雅普洛夫指数!非线性系统的初值Y(1)=10.0Y(2)=1.0Y(3)=0.0!线性系统的初值DO I=N+1,NNY(I)=0.0END DODO I=1,NY((N+1)*I)=1.0LE(I)=0.0END DO!参数设置参数设置参数设置参数设置IDO=1PARAM=0PARAM(4)=5000000param(10)=1.0T=0.0TOL=1E-2NSTEP=1000000STPSZE=0.01DO I=1,NSTEPTEND=STPSZE*REAL(I)CALL IVPRK(IDO,NN,FCN,T,TEND,TOL,PARAM,Y)!以下部分将N个向量正交单位化!V1=(Y(4),Y(7),Y(10))!V2=(Y(5),Y(8),Y(11))!V3=(Y(6),Y(9),Y(12))!.......! Normalize the first vectorZNORM(1)=0.0DO J=1,NZNORM(1)=ZNORM(1)+Y(N*J+1)**2END DOZNORM(1)=SQRT(ZNORM(1))DO J=1,NY(N*J+1)=Y(N*J+1)/ZNORM(1)END DO!Generate the new orthonormal set of vectorsDO J=2,N! Generate J-1 GSR coefficientsDO K=1,(J-1)GSC(K)=0.0DO L=1,NGSC(K)=GSC(K)+Y(N*L+J)*Y(N*L+K)END DOEND DO! Construct a new vectorDO K=1,NDO L=1,(J-1)Y(N*K+J)=Y(N*K+J)-GSC(L)*Y(N*K+L) END DOEND DO! Calculate the vector's normZNORM(J)=0.0DO K=1,NZNORM(J)=ZNORM(J)+Y(N*K+J)**2 END DOZNORM(J)=SQRT(ZNORM(J))! Normalize the new vectorDO K=1,NY(N*K+J)=Y(N*K+J)/ZNORM(J)END DOEND DODO K=1,NLE(K)=LE(K)+ALOG(ZNORM(K))/ALOG(2.0) !计算指数END DOEND DOCALL IVPRK(3,NN,FCN,T,TEND,TOL,PARAM,Y)DO K=1,NWRITE(*,'(f12.2)') LE(K)/TEND DOSTOPEND PROGRAM LE_DIFEQENSUBROUTINE FCN(N,T,Y,YPRIME)IMPLICIT NONEINTEGER N,IREAL T,Y(12),YPRIME(12)YPRIME(1)=16.0*(Y(2)-Y(1))YPRIME(2)=-Y(1)*Y(3)+45.92*Y(1)-Y(2)YPRIME(3)=Y(1)*Y(2)-4.0*Y(3)DO I=0,2YPRIME(4+I)=16.0*(Y(7+I)-Y(4+I))YPRIME(7+I)=(45.92-Y(3))*Y(4+I)-Y(7+I)-Y(1)*Y(10+I)YPRIME(10+I)=Y(2)*Y(4+I)+Y(1)*Y(7+I)-4.0*Y(10+I)END DORETURNEND SUBROUTINE。
基于神经网络的Lyapunov指数谱的计算
(1) 所示系统的全部L yap unov 指数Ζ
α 收稿日期: 1999212221 © 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
10
系统工程理论与实践
2001 年 8 月
从实验观察到的数据确定系统的 L yap unov 指数, 可采用W o lf 方法[3]和 BBA [4]方法等Λ 其中W o lf 方 法仅适用于求系统的最大 L yap unov 指数, BBA 法可求出系统的全部 L yap unov 指数, 但此种方法运算量 很大, 而且需要的数据点很多, 使其应用受到很大限制Λ本文利用B P 神经网络能够任意逼近非线性函数的 性质, 用于求解实验观察数据的全部 L yap unov 指数, 可克服上述困难Λ
A (i)Q (i - 1) = Q (i)R (i)
(16)
式中, Q (i) 为正交矩阵, R (i) 为上三角矩阵, Q (0) 是 d ×d 阶单位矩阵Ζ 按 (16) 式所示过程 Q R 分解 N 次,
得到矩阵 A 的 Q R 分解如下:
A = Q (N ) R (N ) R (N - 1) …R (1)
第8期
基于神经网络的L yap unov 指数谱的计算
11
Χk1 =
5Χ 5x k, 1
,
Χk2
=
5Χ 5x k, 2
,
…,
Χkd
=
5Χ 5x k, d
(11)
确定雅可比矩阵D F (k) 的过程即为确定 (11) 式的过程Ζ
(9) 式表明, 对于重构的相空间向量 y (k ) , 它在 k 时刻的微小变化 ∃y (k ) , 在雅可比矩阵D F (k ) 的作用
lyapunov指数计算
lyapunov指数计算
Lyapunov指数(Lyapunov exponent)是一种用于描述动态系统混沌性质的指标。
在数学上,Lyapunov指数是描述线性化系统的稳定性的指标,它可以判断非线性系统是否具有混沌性质。
计算Lyapunov指数的基本过程如下:
1.首先,选择一个合适的初始状态,并计算该状态在系统中的轨迹。
2.然后,选取一个邻域,计算在该邻域内的状态与初始状态的差异随时间的变化情况。
3.对于每个时间步长,计算邻域中的点向初始状态点移动的距离与时间的比值。
4. 重复上述步骤,直到获得足够的数据,然后计算Lyapunov指数。
5. Lyapunov指数表示在该系统中相邻轨迹的指数级别分离速度。
具体计算Lyapunov指数的过程比较复杂,一般需要借助计算机进行模拟和计算。
-Lyapunov指数的计算方法
【总结】Lyapunov指数的计算方法非线性理论近期为了把计算LE的一些问题弄清楚,看了有7~9本书!下面以吕金虎《混沌时间序列分析及其应用》、马军海《复杂非线性系统的重构技术》为主线,把目前已有的LE计算方法做一个汇总!1. 关于连续系统Lyapunov指数的计算方法连续系统LE的计算方法主要有定义方法、Jacobian方法、QR分解方法、奇异值分解方法,或者通过求解系统的微分方程,得到微分方程解的时间序列,然后利用时间序列(即离散系统)的LE求解方法来计算得到。
关于连续系统LE的计算,主要以定义方法、Jacobian方法做主要介绍内容。
(1)定义法定义法求解Lyapunov指数.JPG关于定义法求解的程序,和matlab板块的“连续系统LE求解程序”差不多。
以Rossler系统为例Rossler系统微分方程定义程序function dX = Rossler_ly(t,X)% Rossler吸引子,用来计算Lyapunov指数% a=0.15,b=0.20,c=10.0% dx/dt = -y-z,% dy/dt = x+ay,% dz/dt = b+z(x-c),a = 0.15;b = 0.20;c = 10.0;x=X(1); y=X(2); z=X(3);% Y的三个列向量为相互正交的单位向量Y = [X(4), X(7), X(10);X(5), X(8), X(11);X(6), X(9), X(12)];% 输出向量的初始化,必不可少dX = zeros(12,1);% Rossler吸引子dX(1) = -y-z;dX(2) = x+a*y;dX(3) = b+z*(x-c);% Rossler吸引子的Jacobi矩阵Jaco = [0 -1 -1;1 a 0;z 0 x-c];dX(4:12) = Jaco*Y;求解LE代码:% 计算Rossler吸引子的Lyapunov指数clear;yinit = [1,1,1];orthmatrix = [1 0 0;0 1 0;0 0 1];a = 0.15;b = 0.20;c = 10.0;y = zeros(12,1);% 初始化输入y(1:3) = yinit;y(4:12) = orthmatrix;tstart = 0; % 时间初始值tstep = 1e-3; % 时间步长wholetimes = 1e5; % 总的循环次数steps = 10; % 每次演化的步数iteratetimes = wholetimes/steps; % 演化的次数mod = zeros(3,1);lp = zeros(3,1);% 初始化三个Lyapunov指数Lyapunov1 = zeros(iteratetimes,1); Lyapunov2 = zeros(iteratetimes,1); Lyapunov3 = zeros(iteratetimes,1);for i=1:iteratetimestspan = tstart:tstep:(tstart + tstep*steps); [T,Y] = ode45('Rossler_ly', tspan, y);% 取积分得到的最后一个时刻的值y = Y(size(Y,1),:);% 重新定义起始时刻tstart = tstart + tstep*steps;y0 = [y(4) y(7) y(10);y(5) y(8) y(11);y(6) y(9) y(12)];%正交化y0 = ThreeGS(y0);% 取三个向量的模mod(1) = sqrt(y0(:,1)'*y0(:,1));mod(2) = sqrt(y0(:,2)'*y0(:,2));mod(3) = sqrt(y0(:,3)'*y0(:,3));y0(:,1) = y0(:,1)/mod(1);y0(:,2) = y0(:,2)/mod(2);y0(:,3) = y0(:,3)/mod(3);lp = lp+log(abs(mod));%三个Lyapunov指数Lyapunov1(i) = lp(1)/(tstart);Lyapunov2(i) = lp(2)/(tstart);Lyapunov3(i) = lp(3)/(tstart);y(4:12) = y0';end% 作Lyapunov指数谱图i = 1:iteratetimes;plot(i,Lyapunov1,i,Lyapunov2,i,Lyapunov3)程序中用到的ThreeGS程序如下:%G-S正交化function A = ThreeGS(V) % V 为3*3向量v1 = V(:,1);v2 = V(:,2);v3 = V(:,3);a1 = zeros(3,1);a2 = zeros(3,1);a3 = zeros(3,1);a1 = v1;a2 = v2-((a1'*v2)/(a1'*a1))*a1;a3 = v3-((a1'*v3)/(a1'*a1))*a1-((a2'*v3)/(a2'*a2))*a2;A = [a1,a2,a3];计算得到的Rossler系统的LE为———— 0.063231 0.092635 -9.8924Wolf文章中计算得到的Rossler系统的LE为————0.09 0 -9.77需要注意的是——定义法求解的精度有限,对有些系统的计算往往出现计果和理论值有偏差的现象。
关于Lyapunov指数计算方法的比较_张海龙
混沌从本质上说是指在确定性系统中出现的一种貌似无规则 、 类似随机的现象. 混沌系统的基本特点 Lyapunov 指数 两个靠近的初值产生的轨道随时间推移按指数方式分离 , 是运动对初值条件极为敏感, ( LE ) 就是定量描述这一现象的量, 是衡量系统动力学特性的一个重要定量指标, 它表征了系统在相空间 [1 , 2 ] . 中相邻轨道间收敛或发散的平均指数率 如何快速、 准确地计算出 LE 是分析混沌系统的关键, 近年来国内学者对 LE 的计算方法做了很多研 [3 ] , Yan Wen logistic lyapunov Liao[4]利用 wolf 法计算出几种 究 利用定义法求解了 模型的最大 指数( LLE ) 、 Wang[5] 在比较 wolf 法与小数据量法后选择采用小数据量法计算出 logistic 模型的 典型混沌系统 LLE 、 LLE 、 Xie[6]在实际应用中又提出改进的小数据量法 . 对于不同系统可以选择不同的计算方法 , 虽然各种方 法均取得了较好的计算结果, 不同的计算方法可以适用于不同的系统中 , 但是目前对多种 LE 计算方法的 综合比较和选择依据的说明很少. 本文讨论混沌吸引子的 Lyapunov 指数计算问题, 主要是对实际应用中 wolf 法、 即定义法、 正交法和小数据量法, 以典型的 Lorenz 系统为例, 分别用各 常用的几种方法进行比较, 种方法计算其 Lyapunov 指数或者最大 Lyapunov 指数, 详细比较出各种求解精度、 求解复杂度和抗干扰能 力的差异, 从而给出各方法的适用范围和选择依据 . 关于其他动力学系统的 Lyapunov 指数计算结果, 由于 这里不再给出. 篇幅的限制,
— 6 —
张海龙, 等: 关于 Lyapunov 指数计算方法的比较
Lyapunov指数的计算方法
【总结】Lyapunov指数的计算方法非线性理论近期为了把计算LE的一些问题弄清楚,瞧了有7~9本书!下面以吕金虎《混沌时间序列分析及其应用》、马军海《复杂非线性系统的重构技术》为主线,把目前已有的LE计算方法做一个汇总!1、关于连续系统Lyapunov指数的计算方法连续系统LE的计算方法主要有定义方法、Jacobian方法、QR分解方法、奇异值分解方法,或者通过求解系统的微分方程,得到微分方程解的时间序列,然后利用时间序列(即离散系统)的LE求解方法来计算得到。
关于连续系统LE的计算,主要以定义方法、Jacobian方法做主要介绍内容。
(1)定义法定义法求解Lyapunov指数、JPG关于定义法求解的程序,与matlab板块的“连续系统LE求解程序”差不多。
以Rossler系统为例Rossler系统微分方程定义程序function dX = Rossler_ly(t,X)% Rossler吸引子,用来计算Lyapunov指数% a=0、15,b=0、20,c=10、0% dx/dt = -y-z,% dy/dt = x+ay,% dz/dt = b+z(x-c),a = 0、15;b = 0、20;c = 10、0;x=X(1); y=X(2); z=X(3);% Y的三个列向量为相互正交的单位向量Y = [X(4), X(7), X(10);X(5), X(8), X(11);X(6), X(9), X(12)];% 输出向量的初始化,必不可少dX = zeros(12,1);% Rossler吸引子dX(1) = -y-z;dX(2) = x+a*y;dX(3) = b+z*(x-c);% Rossler吸引子的Jacobi矩阵Jaco = [0 -1 -1;1 a 0;z 0 x-c];dX(4:12) = Jaco*Y;求解LE代码:% 计算Rossler吸引子的Lyapunov指数clear;yinit = [1,1,1];orthmatrix = [1 0 0;0 1 0;0 0 1];a = 0、15;b = 0、20;c = 10、0;y = zeros(12,1);% 初始化输入y(1:3) = yinit;y(4:12) = orthmatrix;tstart = 0; % 时间初始值tstep = 1e-3; % 时间步长wholetimes = 1e5; % 总的循环次数steps = 10; % 每次演化的步数iteratetimes = wholetimes/steps; % 演化的次数mod = zeros(3,1);lp = zeros(3,1);% 初始化三个Lyapunov指数Lyapunov1 = zeros(iteratetimes,1); Lyapunov2 = zeros(iteratetimes,1); Lyapunov3 = zeros(iteratetimes,1);for i=1:iteratetimestspan = tstart:tstep:(tstart + tstep*steps); [T,Y] = ode45('Rossler_ly', tspan, y);% 取积分得到的最后一个时刻的值y = Y(size(Y,1),:);% 重新定义起始时刻tstart = tstart + tstep*steps;y0 = [y(4) y(7) y(10);y(5) y(8) y(11);y(6) y(9) y(12)];%正交化y0 = ThreeGS(y0);% 取三个向量的模mod(1) = sqrt(y0(:,1)'*y0(:,1));mod(2) = sqrt(y0(:,2)'*y0(:,2));mod(3) = sqrt(y0(:,3)'*y0(:,3));y0(:,1) = y0(:,1)/mod(1);y0(:,2) = y0(:,2)/mod(2);y0(:,3) = y0(:,3)/mod(3);lp = lp+log(abs(mod));%三个Lyapunov指数Lyapunov1(i) = lp(1)/(tstart);Lyapunov2(i) = lp(2)/(tstart);Lyapunov3(i) = lp(3)/(tstart);y(4:12) = y0';end% 作Lyapunov指数谱图i = 1:iteratetimes;plot(i,Lyapunov1,i,Lyapunov2,i,Lyapunov3)程序中用到的ThreeGS程序如下:%G-S正交化function A = ThreeGS(V) % V 为3*3向量v1 = V(:,1);v2 = V(:,2);v3 = V(:,3);a1 = zeros(3,1);a2 = zeros(3,1);a3 = zeros(3,1);a1 = v1;a2 = v2-((a1'*v2)/(a1'*a1))*a1;a3 = v3-((a1'*v3)/(a1'*a1))*a1-((a2'*v3)/(a2'*a2))*a2;A = [a1,a2,a3];计算得到的Rossler系统的LE为———— 0、063231 0、092635 -9、8924Wolf文章中计算得到的Rossler系统的LE为————0、09 0 -9、77需要注意的就是——定义法求解的精度有限,对有些系统的计算往往出现计果与理论值有偏差的现象。
Lyapunov指数计算
又设它有已知解
x0
(
x10,
x
20
,,
xn
0
)
,令
(4)
xi = xi0 + δxi i = 1,2,, n
为
x0
邻域内的另一解,将式(5)代入式(4)得:
(5)
∑ ddxi
dt
=
n
Lij(x0 Nhomakorabea)dx
j
j =1
(6)
矩阵
Lij
(x0
)
=
( ∂fi ∂x j
) x0
(7)
为线性化演化算子或李雅普诺夫矩阵。我们知道,只要
Lyapunov 指数的计算与仿真
摘要:Lyapunov 指数在研究动力系统的分岔、混沌运动特性中起着重要的作用,是衡量系 统动力学特性的一个重要定量指标,它表征了系统在相空间中相邻轨道间收敛或发散的平均 指数率。对于系统是否存在动力学混沌,可以从最大 Lyapunov 指数是否大于零非常直观的 判断出来:一个正的 Lyapunov 指数意味着在相空间中,无论初始两条轨线的间距多么小, 其差别都会随时间的演化而成为指数率的增加以致达到无法预测,这就是混沌现象。本文介 绍了 Lyapunov 指数的定义、性质及计算原理和数值计算的实现方法,应用 Matlab 软件、编 写了计算 Lyapunov 指数程序,计算了 Logistic 映射系统、Henon 系统及时间序列的 Lyapunov 指数。实例的计算机仿真表明 Lyapunov 指数是研究分岔、混沌运动,解决工程实际问题的 有效方法之一。
=
dT T
T
x
dTxt−1 迭
代得到。我们可以考虑这些运算在标准基中的矩阵表示,事实上,任何标准正交
logistic lyapunov指数
logistic lyapunov指数
"Logistic Lyapunov指数" 是指在混沌理论和动力系统中,用于描述非线性系统稳定性和混沌性质的一种方法。
在具体的上下文中,这可能涉及到描述 Logistic 映射的 Lyapunov 指数。
Logistic 映射是一种典型的非线性动力系统,通常用于模拟种群的增长。
其表达式为:
其中,xn 是当前时刻的种群比例,r 是一个表示生殖率的参数。
Lyapunov 指数用于衡量动力系统中微小扰动的增长率,以此来判断系统的稳定性。
对于Logistic 映射,通过计算Lyapunov 指数,可以得知系统是否表现出混沌行为。
计算 Lyapunov 指数的具体方法是,通过考虑初始状态和微小扰动δ,然后迭代计算:
这里,δn 是每一步微小扰动的大小。
Lyapunov 指数就是计算微小扰动随时间的指数增长率。
在具体的数学计算中,可以通过对多个初始条件和微小扰动进行模拟,计算 Lyapunov 指数的平均值来获得更可靠的结果。
需要注意的是Lyapunov 指数通常用于描述混沌系统,而Logistic 映射在某些参数范围内表现出混沌行为。
这种方法对于研究非线性动力系统的行为和稳定性非常有用。
1/ 1。
碰撞振动系统Lyapunov指数谱的计算
1 力学模 型及其 L au o 指数谱的计算 yp n v
图1 为两 自由度含间隙碰撞振动系统的力学模 型L 。 1. 。 在任意相邻两 次碰撞之 间, 系统的无量纲运
动 微分 方程 为
[ [
l 1I b < . X
[ 2 一 {
} + ,
() 1
数 ( 件 L au o 条 y p n v指数 ) 皆应 为 负值. 因此 计 算 L au o 指数谱对于判定动力系统的运动稳定性 、 yp n v 混 沌特 性及 混沌控 制都 是极 为重要 的. 目前, 对光滑动力 系统 L a u o yp n v指数谱计算
及其 Jcb 矩 阵, 出碰撞振动 系统 L a u o 指数谱 的计算方 法; ao i 得 yp n v 通过 数值仿 真给 出 了系统 的 L a u o yp n v指数谱
随参数 大范围变化的规律 , 与相应 的分岔 图进行对照 , 验证 了其方法的正确性 和有效性 .
关 键 词 : 撞 振 动 ; yp n v指 数 谱 ; 岔 ; 沌 碰 L auo 分 混12 Βιβλιοθήκη XA 一 一 J一 l十 A
兰
(c一 6 , s )
州 交
通
大
学
学
报
第3 1卷
主 l c +一一 R 1 ( 一 一 6 . 主c - )
f、 3
一
l nl
I ,
1 2 … ,,
一一一 . ~
() 7
方程() 1 的解见文献[. 8 由于碰撞的存在 , ] 使得 质块 M1的速 度 在碰 撞 前 后 瞬 时 发生 突变 , 向量 场 在该处 的 Jcb 矩阵不 存在 , aoi 因此光滑 动力系统 L a uo 指数谱 的计算 方法不能直接应用到该碰 yp n v 撞振 动 系统. 此利 用 P icr 在 ona6映射 方 法将 图 l所
一类碰撞系统的Lyapunov指数谱计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【总结】Lyapunov指数的计算方法非线性理论近期为了把计算LE的一些问题弄清楚,看了有7〜9本书!下面以吕金虎《混沌时间序列分析及其应用》、马军海《复杂非线性系统的重构技术》为主线,把目前已有的LE计算方法做一个汇总!1.关于连续系统Lyapunov指数的计算方法连续系统LE的计算方法主要有定义方法、Jacobian方法、QR分解方法、奇异值分解方法,或者通过求解系统的微分方程,得到微分方程解的时间序列,然后利用时间序列(即离散系统)的LE求解方法来计算得到。
关于连续系统LE的计算,主要以定义方法、Jacobian方法做主要介绍内容。
(1)定义法—对H堆连续动力系統z = 在—OBJ孙味“为中心.|拆(心0)||为丰笹啟存«堆的球面*施著时间的演化,在t时討该球而0P变形为M继的椭球厨・设滾椭域面的第/ 个坐标轴方向的半轴长対卩兀|,则诙系统第i个指数対*此即连续系统Lyapunov揩较飽定冥・弼计尊时・取|处(心0)[为岀W为常数),以孔为球心・欧几里篇范敢为山的正衮矢量集仙测,…叮为初始球.由非线性徴分方崔“尸㈤可以分别计算出点細血创、引他、r引址经过时间t后淺化的轨迹・役其终了点分别为珊、砒、f 仙则令石f 陶一心■处严=甩-和,r 亦耳国=略一報#则可得新的矢重棄叶禺巴…后畀}・由于各牛妥臺在演化过程中舌焙向着是大的UapurOT IS数方何靠掘,因此需要通过Schimdt IE交化不断地讨新矢量逬行置换.SP Wolf to文章中提出的GSR^法.表述如下:播着以他为球心,疤数対(I的正奁矢臺料创巴叫叫…伽严;为祈球继续进行演出设演化至N步时,得到矢董慕冈㈤出巴…耳僅牛且N足够大,这可以得到Lyapunov 扌鐵的近似计算公式三实际计算时,取为1・定义法求解Lyapunov 指数JPG关于定义法求解的程序,和matlab板块的连续系统LE求解程序”差不多。
以Rossie啄统为例Rossler系统微分方程定义程序function dX = Rossler_ly(t,X)% Rossler吸引子,用来计算Lyapunov指数% a=0.15,b=0.20,c=10.0% dx/dt = -y-z,% dy/dt = x+ay,% dz/dt = b+z(x-c),a = 0.15;b = 0.20;c = 10.0;x=X(1); y=X(2); z=X(3);%Y的三个列向量为相互正交的单位向量丫 = [X(4), X(7), X(10);X(5), X(8), X(11);X(6), X(9), X(12)];%输出向量的初始化,必不可少dX = zeros(12,1);% Rossler吸引子dX(1) = -y-z;dX(2) = x+a*y;dX(3) = b+z*(x-c);% Rossler吸引子的Jacobi矩阵Jaco = [0 -1 -1;1 a 0; z 0 x-c];dX(4:12) = Jaco*Y;求解LE 代码:% 计算Rossler 吸引子的Lyapunov 指数clear;yinit = [1,1,1]; orthmatrix = [1 0 0;0 1 0;0 0 1];a = 0.15;b = 0.20;c = 10.0;y = zeros(12,1);% 初始化输入y(1:3) = yinit; y(4:12) = orthmatrix;tstart = 0; % 时间初始值tstep = 1e-3; %时间步长wholetimes = 1e5; % 总的循环次数steps = 10; %每次演化的步数iteratetimes = wholetimes/steps; %演化的次数mod = zeros(3,1);lp = zeros(3,1);% 初始化三个Lyapunov 指数Lyapunov1 = zeros(iteratetimes,1);Lyapunov2 = zeros(iteratetimes,1);Lyapunov3 = zeros(iteratetimes,1);for i=1:iteratetimestspan = tstart:tstep:(tstart + tstep*steps); [T,Y] = ode45('Rossler_ly', tspan, y);% 取积分得到的最后一个时刻的值y = Y(size(Y,1),:);% 重新定义起始时刻tstart = tstart + tstep*steps;y0 = [y(4) y(7) y(10);y(5) y(8) y(11);y(6) y(9) y(12)];%正交化y0 = ThreeGS(y0);% 取三个向量的模mod(1) = sqrt(y0(:,1)'*y0(:,1));mod(2) = sqrt(y0(:,2)'*y0(:,2));mod(3) = sqrt(y0(:,3)'*y0(:,3)); y0(:,1) = y0(:,1)/mod(1);y0(:,2) = y0(:,2)/mod(2);y0(:,3) = y0(:,3)/mod (3);Ip = lp+log(abs(mod));%三个Lyapunov指数Lyapu nov1(i) = lp(1)/(tstart);Lyapu nov2(i) = lp(2)/(tstart);Lyapu nov3(i) = lp(3)/(tstart); y(4:12) = y0';end%作Lyapunov指数谱图i = 1:iteratetimes;plot(i,Lyap uno v1,i,Lyap uno v2,i,Lyap unov3)程序中用到的ThreeGS程序如下:%G-S正交化function A = ThreeGS(V) % V 为3*3 向量v1 = V(:,1);v2 = V(:,2);v3 = V(:,3);al = zeros(3,1);a2 = zeros(3,l);a3 = zeros(3,1);al = v1;a2 = v2-((a1'*v2)/(a1'*a1))*a1;a3 = v3-((a1'*v3)/(a1'*a1))*a1-((a2'*v3)/(a2'*a2))*a2; A = [a1,a2,a3];计算得到的Rossler系统的LE 为------- 0.063231 0.092635 -9.8924Wolf文章中计算得到的Rossler系统的LE为-------- 0.09 0 -9.77需要注意的是一一定义法求解的精度有限,对有些系统的计算往往出现计果和理论值有偏差的现象。
正交化程序可以根据上面的扩展到N*N向量,这里就不加以说明了,对matlab用户来说应该还是比较简单的!(2) Jacobian 方法通过资料检索,发现论坛中用的较多的LET工具箱的算法原理就是Jacobian方法。
基本原理就是首先求解出连续系统微分方程的近似解,然后对系统的Jacobian 矩阵进行QR分解,计算Jacobian矩阵特征值的乘积,最后计算出LE和分数维。
经过计算也证明了这种方法精度较高,对目前常见的混沌系统,如Lore nz、Henon、Duffing等的Lyapunov指数的计算精度都很高,而且程序编写有一定的规范,个人很推荐使用。
(虽然我自己要做的系统并不适用罢@)LET 工具箱可以在网络上找到,这里就不列出了!关于 LET 工具箱如果有问题, 欢迎加入本帖讨论!Jacobian 法求解 Lyapunov 指数 JPG 对离散动力系统,或者说是非线性时间序列,往往不需要计算出所有的Lyapunov 指数,通常只需计算出其最大的 Lyap u nov 指数即可。
“198年,格里波 基证明了只要最大Lyapunov 指数大于零,就可以肯定混沌的存在”。
目前常用的计算混沌序列最大 Lyapu nov 指数的方法主要有一下几种:(1)由定义法延伸的 Nicolis 方法(2)Jacobian 方法( 3) Wolf 方法(4)P —范数方法( 5)小数据量方法其中以 Wolf 方法和小数据量方法应用最为广泛,也最为普遍。
下面对Nicolis 方法、Wolf 方法以及小数据量方法作 介绍。
( 1)Nicolis 方法这种方法和连续系统的定义方法类似,而且目前应用很有限制,因此只对其理论 进行介绍,编程应用方面就省略了 Nicolis 方法求最大 LE.JPG2)Wolf 方法 Wolf 方法求最大 LE.JPGWolf 方法的 Matlab 程序如下:function lambda_1=lyapunov_wolf(data,N,m,tau,P) % 该函数用来计算时间序列的最大 Lyapunov 指数--Wolf 方法! 一般选大于等于 10 ! 一般选与周期相当,如我选 2000 !可以选 1000;% N:时间序列长度 满足公式:M=N-(m-1)*tau=24000-(10-1)*1000=5000% P :时间序列的平均周期,选择演化相点距当前点的位置差,即若当前相点为 I ,则 演化相点只能在|I — J|>P 的相点中搜寻 ! P=周期=600% lambda_1: 返回最大lyapunov 指数值min_point=1 ; %&& 要求最少搜索到的点数MAX_CISHU=5 ; %&& 最大增加搜索范围次数%FLYINGHAWK% 求最大、最小和平均相点距离max_d = 0; min_d = 1.0e+100;% m: 嵌入维数% tau 时间延迟 % data 时间序列 %最大相点距离%最小相点距avg_dd = 0;Y=reconstitution(data,N,m,tau); %相空间重构 可将此段程序加到整个程序中,在时间循环内,可以保存时间序列的地方。
见完整程序M=N-(m-1)*tau; %重构相空间中相点的个数for i = 1 : (M-1)for j = i+1 : Md = 0;for k = 1 : md = d + (Y(k,i)-Y(k,j))*(Y(k,i)-Y(k,j));endd = sqrt(d);if max_d < dmax_d = d;endif min_d > d min_d = d;endavg_dd = avg_dd + d;endendavg_d = 2*avg_dd/(M*(M-1)); dlt_eps = (avg_d - min_d) * 0.02 ;点时,对max_eps 的放宽幅度 min_eps = min_d + dlt_eps / 2 ;max_eps = min_d + 2 * dlt_eps ;d = d + (Y(k,i)-Y(k,1))*(Y(k,i)-Y(k,1)); endd = sqrt(d);if (d < DK) & (d > min_eps)DK = d;Loc_DK = i;endend%以下计算各相点对应的李氏数保存到lmd()数组中% i 为相点序号,从1到(M-1),也是i-1点的演化点;Loc_DK 为相点i-1对应最 短 距离的相点位置, DK 为其对应的最短距离% Loc_DK+1 为 Loc_DK 的演化点, DK1 为 i 点到 Loc_DK+1 点的距离,称为演化距离%平均相点距离%若在min_eps 〜max_eps 中找不到演化相离 DKDK = 1.0e+100; Loc_DK = 2; for i = (P+1):(M-1) d = 0;for k = 1 : m %第 i 个相点到其最近距离点的距离 %第 i 个相点对应的最近距离点的下标 %限制短暂分离,从点P+1开始搜索 %演化相点与当前相点距离的最小限%&&演化相点与当前相点距离的最大限% 从 P+1 〜 M-1 个相点中找与第一个相点最近的相点位置 (Loc_DK) 及其最短距%前i个Iog2 ( DK1/DK )的累计和用于求i点的lambda值sum」md = 0 ; %存放前i个Iog2( DK1/DK )的累计和for i = 2 : (M-1) % 计算演化距离DK1 = 0;for k = 1 : mDK1 = DK1 + (Y(k,i)-Y(k,Loc_DK+1))*(Y(k,i)-Y(k,Loc_DK+1));endDK1 = sqrt(DK1); oId_Loc_DK = Loc_DK ; % 保存原最近位置相点oId_DK=DK;% 计算前i个Iog2(DK1/DK )的累计和以及保存i点的李氏指数if (DK1 ~= 0)&( DK ~= 0)sum_Imd = sum_Imd + Iog(DK1/DK) /Iog(2);endImd(i-1) = sum_Imd/(i-1); 此处可以保存不同相点i 对应的李氏指数,见完整程序。