声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 10216|回复: 43

[分形与混沌] 关于连续系统Lyapunov指数谱图怎么得出??

  [复制链接]
发表于 2011-3-22 14:40 | 显示全部楼层 |阅读模式

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

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

x
如题,怎么得出连续系统Lyapunov指数谱图?如此图 随系统参数c变化的李雅普诺夫指数谱图.jpg 是个三维自治混沌系统,谁能否提供这样的程序啊?我在论坛游了一天都没有找到,看到的都是计算单个的Lyapunov指数的。急啊!!!

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

 楼主| 发表于 2011-3-22 15:44 | 显示全部楼层
本帖最后由 yufeiyfyf 于 2011-3-22 15:45 编辑

这个没有人会吗?急啊
 楼主| 发表于 2011-3-23 15:51 | 显示全部楼层
谁有关于连续系统Lyapunov指数谱图程序,共享一个啊??我都快崩溃了
 楼主| 发表于 2011-3-24 09:29 | 显示全部楼层
自己每天顶起!
发表于 2011-3-24 21:59 | 显示全部楼层
搜索本版块,很多。
 楼主| 发表于 2011-3-25 11:21 | 显示全部楼层
本帖最后由 yufeiyfyf 于 2011-3-25 11:26 编辑

回复 5 # octopussheng 的帖子

搜索了,都是求最大指数的,octopussheng能否指点下啊?搜索没有指数谱的内容 未命名1.jpg
发表于 2011-3-25 19:28 | 显示全部楼层
 楼主| 发表于 2011-3-26 10:31 | 显示全部楼层
回复 7 # octopussheng 的帖子

你给我的这个链接程序,仍然只是求最大指数的,是随时间变化的指数图形,看下图 未命名2.jpg
我想仿真随系统参数变化的指数谱,论坛里好像没有找到,octopussheng能否教教我啊?
发表于 2011-3-26 11:06 | 显示全部楼层
回复 8 # yufeiyfyf 的帖子

可以在每个参数上,取最后时刻的LE值作图。
 楼主| 发表于 2011-3-26 11:18 | 显示全部楼层
回复 9 # ranling 的帖子

我知道这样做,但是修改的程序总是进入死循环,ranling可否提供这方面的程序?
 楼主| 发表于 2011-3-26 11:42 | 显示全部楼层
回复 7 # octopussheng 的帖子

我也看到您以前发过这样的帖子,和我的问题一样,方法:将变化的参数用for循环赋值,其余的可以直接套用。可使我总是进入死循环。不知道您现在解决了没?

关于最大Lyapunov指数随参数变化的曲线绘制问题!
http://forum.vibunion.com/forum- ... fromuid-165186.html
 楼主| 发表于 2011-3-26 15:41 | 显示全部楼层
% 计算duffing吸引子的Lyapunov指数谱,随参数B变化
clear all;
clc;
Z1=[ ];
Z2=[ ];
Z3=[ ];
global k;
global B;

k=0.1;
% 初始化输入
yinit = [1,1,1];
orthmatrix = [1 0 0;
              0 1 0;
              0 0 1];
y = zeros(12,1);
IC(1:3) = yinit;
IC(4:12) = orthmatrix;
InitialTime = 0;                        % 时间初始值
TimeStep = 1e-2;                        % 时间步长
wholetimes = 1e5;                       % 总的循环时间
UpdateStepNum = 10;                     % 每次演化的步数
iteratetimes = wholetimes/UpdateStepNum; % 演化的次数
DiscardItr=200;                         %抛弃的不稳定迭代次数
Iteration=UpdateStepNum*TimeStep;
DiscardTime=DiscardItr*Iteration+InitialTime;
mod = zeros(1,3);
d=3;                          %维数
Sum=zeros(1,d);
n=0;   %总的迭代计数
k=0;   %对结果有作用的迭代计数
xData=[];
yData=[];
T1=InitialTime;
T2=T1+Iteration;
TSpan=[T1:TimeStep:T2];
options=odeset('RelTol',1e-5,'AbsTol',1e-6);
for B=linspace(0,40,100);
        lp=0;
for i=1:iteratetimes
     n=n+1;  
    [t,X] =ode45('duffingfun', TSpan, IC,options);
    [rX,cX]=size(X);
    L=cX-d*d;     
   
   % 取积分得到的最后一个时刻的值
   for i=1:d
      m1=L+1+(i-1)*d;
      m2=m1+d-1;
      A(:,i)=(X(rX,m1:m2))';
   end
   y0 = ThreeGS(A);                      %正交化
    % 取三个向量的模
    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);
     y(4:12) = y0';
   
   if T2>DiscardTime
         Q0=y0;
   else
         Q0=eye(d);
   end
      
  if (T2>DiscardTime )
      k=k+1;
      T=k*Iteration;
      TT=n*Iteration+InitialTime;
      %计算lyapunov指数
      Sum=Sum+log(abs(mod));
      lambda=Sum/T;
      %按降序排列指数
      Lambda=fliplr(sort(lambda));
        xData=[xData;TT];
        yData=[yData;lambda];            
     end
    % 重新定义起始时刻
     ic=X(rX,1:L);
      T1=T1+Iteration;
      T2=T2+Iteration;
      TSpan=[T1:TimeStep:T2];
      IC=[ic(:);y0(:)];  
   
   
end
end


B=linspace(0,40,100);
plot(B,yData(:,1),'-',B,yData(:,2),'-',B,yData(:,3),'-');
title('Lyapunov exponents spectrum of duffing)
xlabel('B'),ylabel('lyapunov exponents')
grid on

我这段程序在我的电脑上已经busy了四个小时还没有结果,请问哪里出现了问题??
发表于 2011-3-26 21:17 | 显示全部楼层
你把总的循环时间调短一些,先试试能不能算出结果。
发表于 2011-3-27 10:09 | 显示全部楼层
回复 10 # yufeiyfyf 的帖子

我没有这方面的程序 而且我用C编程 对你的matlab也看不太懂 sorry
 楼主| 发表于 2011-3-27 11:23 | 显示全部楼层
回复 13 # octopussheng 的帖子

调了还是不行,帮我看看程序哪里有问题?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-4 17:26 , Processed in 0.111893 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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