⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 largest_lyapunov_exponent_revised.m

📁 本文是通过文中方法来求最小嵌入维程序.子程序,相重构程序.
💻 M
字号:
%function [lambda_1,y]=largest_lyapunov_exponent_revised(data,N,m,tau,P)
%the function is used to calcultate largest lyapunov exponent with the
%mended algorithm,which put forward by lv jing hu.
%data:the time series
%N:the length of data
%m:enbedding dimention
%tau:time delay
%P:the mean period of the time series,calculated with FFT
%lambda_1:return the largest lyapunov exponent
%skyhawk

delt_t=1;
Y=reconstitution(data,N,m,tau );%reconstitute state space
M=N-(m-1)*tau;%M is the number of embedded points in m-dimensional space
for j=1:M

    k=1;
    for jj=1:M         %寻找相空间中每个点的最近距离点,并记下该点下标限制短暂分离
        if abs(j-jj)>P
            dd(k,1)=jj;
            dd(k,2)=norm(Y(:,j)-Y(:,jj));
            k=k+1;
        end
    end
    min_d=min(dd(:,2));
    for s=1:length(dd(:,2))
        if min_d==dd(s,2)
            idx_j=dd(s,1);
            break
        end
    end
    clear dd
    max_i=min((M-j),(M-idx_j));%计算点j的最大演化时间步长i
    for kk=1:max_i              %计算点j与其最近邻点在i个离散步后的距离
        d(kk,j)=norm(Y(:,j+kk)-Y(:,idx_j+kk));
    end
end

%对每个演化时间步长i,求所有的j的lnd(i,j)平均
[l_i,l_j]=size(d);
for i=1:l_i
    q=0;
    y_s=0;
    for j=1:l_j
        if d(i,j)~=0
            q=q+1;
            y_s=y_s+log(d(i,j));
        end
    end
    y(i)=y_s/(q*delt_t);
end

x=1:length(y);
for i=1:length(y)-1
    dy(i)=y(i+1)-y(i);
end
figure(1)
subplot(311)
plot(1:length(y),y)
subplot(312)
plot(1:(length(y)-1),dy)
subplot(313)


x=[1:7];
pp=polyfit(x,y(x),1);
lambda_1=pp(1);
yp=polyval(pp,1:20);
plot(x,y(x),'-b',1:20,yp,'-r',1:30,y(1:30))
lambda_1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -