Matlab求解混沌系统最大李雅普诺夫指数
生活随笔
收集整理的這篇文章主要介紹了
Matlab求解混沌系统最大李雅普诺夫指数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
李雅普諾夫指數(Lyapunov)是一個較為典型的判斷一個系統是否具有混沌特性以及混沌的程度分析方法。
李雅普諾夫指數:在相空間中初始時無限接近的兩個軌道,隨著時間的不斷推移按指數收斂或發散的平均變化率,它可以定量描述混沌系統在局部范圍里系統軌道間的分離程度。
假設在一維動力系統 Xn+1=F(Xn),為了表示從整體上看相鄰兩狀態分離的情況,必須對時間(或迭代次數)取平均,不妨設平均每次迭代所引起的指數分離中的指數為λ,原 來相距為ε的兩點經過n次迭代后[相距為]:
如果λ>0,運動軌道的局部不穩定,相鄰點的軌道的終按指數方式分離,則在 此作用下反復折疊,形成混沌吸引子。
在n維連續動力學系統中,將一個無窮小n維的球作為系統的初始條件,隨著動力 系統的演化向相空間的各個方向作伸展或收縮,球將變為橢球,將橢球的所有主軸按其長度順序徘列,那么第i個李雅普諾夫指數根據第i個主軸的長度pi(t)的增加速率定義為:
將這n 個李雅普諾夫指數按照從大到小進行排序,得到李雅普諾夫指數譜:
λ1>=λ2>=λ3>=…>=λn。對于混沌系統,必須有一個正的李雅普諾夫數,所以通常采用計算最大李雅普諾夫指數的方法來判斷系統是否是混沌的。
以sine函數為例,求其最大李指數
子函數:
function newx=sine_f1(x)newx=x(2)*sin(pi*x(1))/4;主函數:?
clc;cleard0=1e-7;Z=[]; r=0.5;for u=linspace(0,8,800) le=0; lsum=0; x=[r;u]; x1=[r+d0;u]; for k=1:800 x=sine_f1(x); x1=sine_f1(x1); d1=sqrt((x(1)-x1(1))^2);%1范數 x1=x+(d0/d1)*(x1-x); if k>100 lsum=lsum+log(d1/d0); end x=[x(1);u]; x1=[x1(1);u]; end le=lsum/(k-100); Z=[Z,u+le*1i]; endplot(Z,'-') xlabel('k','fontsize',12,'FontAngle','italic');ylabel('Lyapunov exponent','fontsize',12,'FontAngle','italic');grid on;?
總結
以上是生活随笔為你收集整理的Matlab求解混沌系统最大李雅普诺夫指数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win10如何找出占用硬盘空间大的文件及
- 下一篇: 电磁悬浮控制系统仿真设计