Lyapunov指数的计算方法

合集下载

毕业设计__基于神经网络的时间序列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方程的结构由两部分组成,一部分是Lyapunov函数V(x ),另一部分是时间求导量
dV/dt。

简单来说,Lyapunov函数就是一种从初始条件到下一个状态的函数;而dV/dt则表示从一个状态到另一个状态的时间求导量。

所以Lyapunov方程的格式可表述为:
V(x ) = dV/dt
三. 作用
Lyapunov方程的主要用途是定量分析某一系统在特定状态下的稳定性。

Lyapunov方程的原理是,如果Lyapunov函数的导数不大于零,则系统具有较高的稳定性;反之,如果Lyapunov函数的导数大于零,则系统会动态变化而不稳定。

四. 应用
Lyapunov方程广泛应用在系统自控、机器人控制和机器学习等领域,在比如磁浮、悬浮动力学,以及机械、电子、环境工程中都有广泛应用,用
来分析系统的动态行为及稳定性。

通过调整Lyapunov函数的结构,可以有效地控制系统的性能和鲁棒性。

lyapunov方程的求解

lyapunov方程的求解

lyapunov方程的求解
听说Lyapunov方程了吗?就是那个让一堆数学大师头疼的东西。

不过别担心,咱们就用大白话聊聊。

说简单点,Lyapunov方程就像是给系统稳定性拍了个“X光”,能看出系统内部的问题。

你想想看,要是你的自行车轮子不稳,骑
起来就得摇摇晃晃,对吧?这就是因为稳定性没搞好。

而Lyapunov
方程就是帮我们找到那个能让系统稳如泰山的“魔法公式”。

话说回来,求解Lyapunov方程可不是件轻松的事儿。

你得有点
数学功底,还得有点耐心和毅力。

有时候,解这个方程就像是解一
个复杂的拼图游戏,得把各个碎片拼在一起,才能看到完整的图画。

不过,好消息是,现在有了电脑和数学软件,求解Lyapunov方
程变得容易多了。

就像是你有了一个超级助手,帮你处理那些繁琐
的计算和推理。

这样一来,你就能更快地找到答案,也不用那么头
疼了。

所以啊,虽然Lyapunov方程听起来有点吓人,但只要咱们用对
方法,就能轻松搞定它。

就像是你面对一个看似复杂的问题,只要找到了解决方法,就能迎刃而解。

这就是数学的魅力所在!。

克隆法计算李雅普诺夫指数

克隆法计算李雅普诺夫指数

克隆法计算李雅普诺夫指数李雅普诺夫指数(Lyapunov exponent)是用来衡量动态系统稳定性的一个重要指标。

在混沌理论中,李雅普诺夫指数可以用来预测一个系统对初始条件的敏感性。

克隆法是一种计算李雅普诺夫指数的数值方法。

其基本思想是:对于一个给定的动态系统,我们首先生成两个几乎完全相同的初始条件,然后让它们分别演化。

随着时间的推移,这两个初始条件会逐渐分离,我们可以通过测量它们之间的距离来计算李雅普诺夫指数。

具体步骤如下:
生成两个几乎完全相同的初始条件。

让这两个初始条件分别演化。

计算它们之间的距离。

重复上述步骤多次,并取平均值。

将平均值与时间作图,并求出斜率,即为李雅普诺夫指数。

需要注意的是,克隆法是一种数值方法,其结果会受到初始条件的选择、时间步长的选择等因素的影响。

因此,在使用克隆法计算李雅普诺夫指数时,需要选择合适的参数,并进行多次模拟以获得更准确的结果。

lyapunov方程求数值解

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指数?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方法[技巧]

计算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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 对应的李氏指数,见完整程序。

相关文档
最新文档