最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

李亚普诺夫指数计算方法

来源:动视网 责编:小OO 时间:2025-09-24 20:57:51
文档

李亚普诺夫指数计算方法

求取lyapunov指数的小数据量方法,采用混合编程lylorenz.f90的程序如下:programlylorenz    parameter(n=3,m=12,st=100)    integer::i,j,k  realy(m),z(n),s(n),yc(m),h,y1(m),a,b,r,f(m),k1,k2,k3    y(1)=10.    y(2)=1.    y(3)=0.    a=10.  b=8./3.  r=28.    t=0.    h=0.01!!!!!initia
推荐度:
导读求取lyapunov指数的小数据量方法,采用混合编程lylorenz.f90的程序如下:programlylorenz    parameter(n=3,m=12,st=100)    integer::i,j,k  realy(m),z(n),s(n),yc(m),h,y1(m),a,b,r,f(m),k1,k2,k3    y(1)=10.    y(2)=1.    y(3)=0.    a=10.  b=8./3.  r=28.    t=0.    h=0.01!!!!!initia
求取lyapunov指数的小数据量方法,采用混合编程

lylorenz.f90的程序如下:

program lylorenz

        parameter(n=3,m=12,st=100)

        integer::i,j,k

    real y(m),z(n),s(n),yc(m),h,y1(m),a,b,r,f(m),k1,k2,k3

        y(1)=10.

        y(2)=1.

        y(3)=0.

        a=10.

    b=8./3.

    r=28.

        t=0.

        h=0.01

!!!!!initial conditions

do i=n+1,m

        y(i)=0.

end do

do  i=1,n

        y((n+1)*i)=1.

    s(i)=0

end do

open(1,file='lorenz1.dat')

open(2,file='ly lorenz.dat')

do 100 k=1,st   !!!!!!!!st iterations

call rgkt(m,h,t,y,f,yc,y1)

    !!!!normarize vector 123

        z=0.   

    do i=1,n

         do j=1,n

        z(i)=z(i)+y(n*j+i)**2

        enddo

        if(z(i)>0.)z(i)=sqrt(z(i))

        do j=1,n

    y(n*j+i)=y(n*j+i)/z(i)

        enddo

    end do

   !!!!generate gsr coefficient

   k1=0.

   k2=0.

   k3=0.

do i=1,n        

        k1=k1+y(3*i+1)*y(3*i+2)

        k2=k2+y(3*i+3)*y(3*i+2)

        k3=k3+y(3*i+1)*y(3*i+3)

end do

   !!!!conduct new vector2 and 3

do i=1,n

        y(3*i+2)=y(3*i+2)-k1*y(3*i+1)        

    y(3*i+3)=y(3*i+3)-k2*y(3*i+2)-k3*y(3*i+1)

end do

   

    !!!generate new vector2 and 3,normarize them

do i=2,n

    z(i)=0.

    do j=2,n

        z(i)=z(i)+y(n*j+i)**2

        enddo

    if(z(i)>0.)z(i)=sqrt(z(i))

        do j=2,n

    y(n*j+i)=y(n*j+i)/z(i)

        end do

end do

    !!!!!!!update lyapunov exponent

do i=1,n

   if(z(i)>0)s(i)=s(i)+log(z(i))

enddo

100 continue

do i=1,n

  s(i)=s(i)/(1.*st*h*1000.)

write(2,*)s(i)

enddo

end

!!!!!!!!!!!!!!!!!!!!!!!!!

subroutine rgkt(m,h,t,y,f,yc,y1)

real y(m),f(m),y1(m),yc(m),a,b,r

integer::i,j

do j=1,1000

        call df(m,t,y,f)

        t=t+h/2.0

        do i=1,m

                yc(i)=y(i)+h*f(i)/2.0

                y1(i)=y(i)+h*f(i)/6.0                

                end do                        

        call df(m,t,yc,f)

        do i=1,m

                yc(i)=y(i)+h*f(i)/2.0

                y1(i)=y1(i)+h*f(i)/3.0                

        end do        

        call df(m,t,yc,f)

        t=t+h/2.0

        do i=1,m

                yc(i)=y(i)+h*f(i)

                y1(i)=y1(i)+h*f(i)/3.0

        end do

        call df(m,t,yc,f)

        do i=1,m

                y(i)=y1(i)+h*f(i)/6.0

                end do

if(j>500)write(1,*)t,y(1),y(2),y(3)

end do

return

end

!!!!!!!!!!!!!!!!!!!!!!!!

subroutine df(m,t,y,f)

real y(m),a,b,r,f(m)

common a,b,r

    a=10.

    b=8./3.

    r=28.

        f(1)=a*(y(2)-y(1))

        f(2)=y(1)*(r-y(3))-y(2)

        f(3)=y(1)*y(2)-b*y(3)

    do  i=0,2

        f(4+i)=a*y(7+i)-y(4+i)

        f(7+i)=y(4+i)*(r-y(3))-y(7+i)-y(1)*y(10+i)

        f(10+i)=y(2)*y(4+i)-b*y(10+i)+y(1)*y(7+i)

    enddo

        return

end

文档

李亚普诺夫指数计算方法

求取lyapunov指数的小数据量方法,采用混合编程lylorenz.f90的程序如下:programlylorenz    parameter(n=3,m=12,st=100)    integer::i,j,k  realy(m),z(n),s(n),yc(m),h,y1(m),a,b,r,f(m),k1,k2,k3    y(1)=10.    y(2)=1.    y(3)=0.    a=10.  b=8./3.  r=28.    t=0.    h=0.01!!!!!initia
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top