liliangbiao 发表于 2008-12-12 22:46

Henon系统的分岔与Lyapunov指数谱的Matlab实现

由于我现在在香港,还没有安顿下来,并且手头上没有相关的资料和软件,所以也就没有时间和没有工具运行这两个程序,但是我相信这两个程序应该是可以的,所以无法给大家得到图像,很多研友纷纷给我要这个二维离散系统的程序,我就贴上了!另外,对于非连续型的系统也是这样的求法,我试验过Lozi系统的,只不过是加上一个判断项而已!
我若找到,稍后奉上!

% Author: Thomas Lee
% E-mail: lixf1979@126.com
% Corresponding: School of Mathematics, Physics and Software Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China




%%%%%%%一个图像上分别上下画LEs和BD的程序!
%画Henon系统的随着参数a变化的指数程序!
ly1=[];ly2=[];C=[];x=0;y=0;w=eye(2,2);
for a=0:0.001:1.4
    b=0.3;
N=1000;         % NUMBER OF ITERATIONS
sl1=0; sl2=0;   
for i=1:N
   xprev=x;
   yprev=y;
   x=a-xprev.*xprev+b*yprev;
   y=xprev;
      jac=[-2*xb; 1 0];               %%% JACOBIAN OF THE HENON MAP
F=jac*w;
=qr(F);
sl1 = sl1 + log(abs(diag(r)));
   l1=sl1/N;
end
if N==1000
ly1=;ly2=;
C=;
%fprintf(1,'l1=%f\n',ly1);
end
end
subplot(2,1,1)
hold on
a=0:0.001:1.4;
line(a,0,'Color','k','LineWidth',4)
plot(C,ly1,'k',C,ly2,'k')
grid
%画Henon系统的分岔图程序!
b=0.3;
n=2000;
x=0;
y=0;
a=0:0.001:1.4;
   for i=1:n/100
   xprev=x;
   yprev=y;
   x=a-xprev.*xprev+b*yprev;
   y=xprev;
   end
   for i=1:n
   xprev=x;
   yprev=y;
   x=a-xprev.*xprev+b*yprev;
   y=xprev;
   if i>1990
hold on
subplot(2,1,2)
plot(a,x,'k.','markersize',1);
title('Henon Bifurcation');
   end
   end
grid


%%%%%%%求取最大LE的程序

clear all
d0=1e-12;C=[];Le=[];
for i=1:639
    c=i/320;
    x1=0;y1=0;
    x2=0;y2=d0;
    lsum=0;
    for j=1:500
      x3=1-c*x1*x1+0.2*y1;
      y1=x1;
      x1=x3;
      x4=1-c*x2*x2+0.2*y2;
      y2=x2;
      x2=x4;
      d1=sqrt((x2-x1)^2+(y2-y1)^2);
      x2=x1+(d0/d1)*(x2-x1);
      y2=y1+(d0/d1)*(y2-y1);
      if j>100
         lsum=lsum+log(d1/d0);
      end
    end
    le=lsum/(j-100);
    C=;Le=;
end
plot(C,Le,'k')

baohq 发表于 2015-11-17 17:29

您有没有画吸引盆的程序啊?谢谢您
页: [1]
查看完整版本: Henon系统的分岔与Lyapunov指数谱的Matlab实现