yufeiyfyf 发表于 2011-3-22 13:53

关于小数据量法求Lyapunov指数??

下面是一个小数据量法求Lyapunov指数程序:
clear
clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
h=0.01;
k=8000;
x(1)=2.2;
y(1)=2.4;
z(1)=28;
for i=1:k
    kx1=fx(x(i),y(i));
    ky1=fy(x(i),y(i),z(i));
    kz1=fz(x(i),y(i),z(i));
   
    kx2=fx(x(i)+(1/2)*h*kx1,y(i)+(1/2)*h*ky1);
    ky2=fy(x(i)+(1/2)*h*kx1,y(i)+(1/2)*h*ky1,z(i)+(1/2)*h*kz1);
    kz2=fz(x(i)+(1/2)*h*kx1,y(i)+(1/2)*h*ky1,z(i)+(1/2)*h*kz1);
   
    kx3=fx(x(i)+(1/2)*h*kx2,y(i)+(1/2)*h*ky2);
    ky3=fy(x(i)+(1/2)*h*kx2,y(i)+(1/2)*h*ky2,z(i)+(1/2)*h*kz2);
    kz3=fz(x(i)+(1/2)*h*kx2,y(i)+(1/2)*h*ky2,z(i)+(1/2)*h*kz2);
   
    kx4=fx(x(i)+h*kx3,y(i)+h*ky3);
    ky4=fy(x(i)+h*kx3,y(i)+h*ky3,z(i)+h*kz3);
    kz4=fz(x(i)+h*kx3,y(i)+h*ky3,z(i)+h*kz3);

    x(i+1)=x(i)+(h/6)*(kx1+2*kx2+2*kx3+kx4);
    y(i+1)=y(i)+(h/6)*(ky1+2*ky2+2*ky3+ky4);
    z(i+1)=z(i)+(h/6)*(kz1+2*kz2+2*kz3+kz4);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Data = x(1000:1:6000);
m=8;
tau=10;
N=5001;
P=ave_T(Data,N);
=small_data_sets_Lyapunov1(Data,N,m,tau,P,h);
XX=1:Y_num;
plot(XX,Y(XX));hold on;
linear=80;%线性长度的变化引起最大Lapunov指数的变化,线性长度和最大Lapunov指数也受步长h的影响
XX1=1:linear;
pp=polyfit(XX1,Y(XX1),1);
lambda_1=pp(1)
yp=polyval(pp,XX1);
plot(XX1,yp,'r');

想问下这个线性长度是怎么确定的?上面程序里为什么选取linear=80??说它的变化引起最大Lapunov指数的变化,线性长度和最大Lapunov指数也受步长h的影响??是什么意思??

cqupenghao 发表于 2011-3-22 15:51

回复 1 # yufeiyfyf 的帖子

小数据量法求Lyapunov指数的过程中,在最后是用的最小二乘法对所得到的有些数据进行拟合,从而得到一个直线,直线的斜率就是Lyapunov指数的值,所以那个线性区域的选择对Lyapunov指数的值有很大影响……

yufeiyfyf 发表于 2011-3-22 15:55

回复 2 # cqupenghao 的帖子

那这个线性长度是怎么确定的?

octopussheng 发表于 2011-3-22 16:26

根据你最后计算的结果来定线性区域。
页: [1]
查看完整版本: 关于小数据量法求Lyapunov指数??