声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2546|回复: 0

[分形与混沌] 求最大lyapunov指数时用LET工具箱求出和用时序数列算出结果不一致怎么解释?

[复制链接]
发表于 2017-7-6 14:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x

我用LET工具箱算最大lyapunov指数为1.5,然后用一组时序数列反过来算最大lyapunov指数的结果只有0.6。为什么会有这么大的误差,是系统的信息丢失问题还是程序的问题抑或其他?还有一个小疑问,相空间重构之后的嵌入维数是不是对应最大lyapunov的个数,那m与方程的元数又有什么关系呢?
  1. function [lambda_1,x,y]=largest_lyapunov_exponent(data,N,m,tau,P,delt_t)
  2. %the function is used to calcultate largest lyapunov exponent with the
  3. %mended algorithm,which put forward by lv jing hu.
  4. %data:the time series
  5. %N:the length of data
  6. %m:enbedding dimention
  7. %tau:time delay
  8. %P:the mean period of the time series,calculated with FFT
  9. %delt_t:Sampling interval
  10. %lambda_1:return the largest lyapunov exponent
  11. %skyhawk
  12. %delt_t=0.01;
  13. Y=reconstitution(data,N,m,tau);%reconstitute state space
  14. M=N-(m-1)*tau;%M is the number of embedded points in m-dimensional space
  15. for j=1:M
  16.     d_max=1e+100;
  17.     for jj=1:M                                              %寻找相空间中每个点的最近距离点,并记下
  18.         d_s=0;                                              %该点下标
  19.         if abs(j-jj)>P                                      %限制短暂分离
  20.             for i=1:m
  21.                 d_s=d_s+(Y(i,j)-Y(i,jj))*(Y(i,j)-Y(i,jj));
  22.                 d_min=d_max;
  23.                 if d_s<d_min
  24.                    d_min=d_s;
  25.                    idx_j=jj;
  26.                end
  27.             end
  28.         end
  29.     end
  30. %     index(j)=idx_j;
  31.     max_i=min((M-j),(M-idx_j));%计算点j的最大演化时间步长i
  32.     for k=1:max_i              %计算点j与其最近邻点在i个离散步后的距离
  33.         d_j_i=0;
  34.         for kk=1:m
  35.             d_j_i=d_j_i+(Y(kk,j+k)-Y(kk,idx_j+k))*(Y(kk,j+k)-Y(kk,idx_j+k));
  36.             d(k,j)=d_j_i;
  37.         end
  38.     end
  39. end

  40. %对每个演化时间步长i,求所有的j的lnd(i,j)平均
  41. [l_i,l_j]=size(d);
  42. for i=1:l_i
  43.     q=0;
  44.     y_s=0;
  45.     for j=1:l_j
  46.         if d(i,j)~=0
  47.             q=q+1;
  48.             y_s=y_s+log(d(i,j));
  49.         end
  50.     end
  51.     y(i)=y_s/(q*delt_t);
  52. end
  53. x=1:length(y);
  54. pp=polyfit(x,y,1);
  55. lambda_1=pp(1);
  56. yp=polyval(pp,x);
  57. plot(x,y,'-o',x,yp,'--')
复制代码

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-4-18 15:16 , Processed in 0.048880 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表