自適應(yīng)算法求解Lyapunov exponent
Definition of the maximal Lyapunov exponent


在Logistic模型中,有如下典型結(jié)果圖示:

不難注意到,圖像每個(gè)極大值點(diǎn)對(duì)應(yīng)于一個(gè)倍周期分叉點(diǎn),可利用這個(gè)特征來(lái)進(jìn)行分叉位置的求解。
此結(jié)論未能找到證明,不過(guò)可以在自適應(yīng)算法的迭代過(guò)程中,通過(guò)圖像驗(yàn)證是否為分叉位置。
觀察代碼運(yùn)行的結(jié)果,可以發(fā)現(xiàn)每?jī)蓚€(gè)分叉點(diǎn)之間的圖像具有非常良好的相似性質(zhì)。




這啟示作者可以采用自適應(yīng)算法,在每次循環(huán)計(jì)算過(guò)程中只尋找兩個(gè)分叉點(diǎn),然后縮小并更新下階段的計(jì)算區(qū)間,加大計(jì)算精度和Logistic模型的迭代次數(shù)。
關(guān)于自適應(yīng)算法,由于每次倍周期都會(huì)在原先的周期數(shù)上乘2,故而為保證精度迭代次數(shù)應(yīng)選取倍周期的倍數(shù),T=T0*2^i;而對(duì)于每個(gè)區(qū)間的采樣數(shù),本文采用了線性遞增函數(shù)。這部分算法讀者可以進(jìn)一步優(yōu)化,從而提高計(jì)算速度和精確度。

以下是Matlab代碼:
clear;clc;
format long
tic
%% 初始化
x=0.5;y=0;
N=1000;
u=linspace(2.9,3.5,N);
T=200;
U=[];
%% 自適應(yīng)計(jì)算
i=1;
while i<13
? ? for j=1:T
? ? ? ? x=u.*(x-x.^2);
? ? ? ? df=log(abs(u-2.*u.*x));
? ? ? ? y=y+df; %計(jì)算Lyapunov指數(shù)
? ? end?
? ? % plot(u,y) 作圖觀察
? ? [val,idx]=findpeaks(y); %尋找分叉點(diǎn)
? ? u1=u(idx(1));u2=u(idx(2));
? ? U=[U(1:end-1),u1,u2];
? ??
? ? T=T*2; %自適應(yīng)算法,可以進(jìn)一步優(yōu)化
? ? N=N+500;
? ? u=linspace((4*u2+u1)/5,(5*u2-u1)/4,N);
? ??
? ? x=0.5;y=0; %進(jìn)入下次迭代
? ? i=i+1;?
end
%% 數(shù)據(jù)處理
for j=1:length(U)-1
? ? mu(j)=U(j+1)-U(j);
end
for k=1:length(mu)-1
? ? Lya(k)=mu(k)/mu(k+1);
end
plot(1:length(Lya),Lya)
toc
代碼運(yùn)行結(jié)果:
