混沌图像---埃农的猫头鹰

      法国尼斯天文台埃农(M.Henon)教授在研究天体力学过程中提出了许多二维映射,通常说的是埃农映射H :

x_(n+1)=1-ax^2_n+y_n

y_(n+1)=bx_n

      其中a和b都是参数,当|b|<1时,H是耗散的,当| b|=1时,H是保守的。这个映射是埃农1976年提出来的,研究的人比较多,几乎每本混沌书都要提到,其中北京大学力学系黄永念教授用纯代数方法研究埃农映射,很有特色。
然后埃农在1969年还提出来的一个保守映射,其形式为G :

x_(n+1)=x_ncost-y_nsint+x^2_nsin t,

y_(n+1)=x_nsint+y_ncost-x^2_ncos t,

     天文学家,这可是逼格很高的职业啊。记得那是小学时代,很多同学的理想。

  这里使用自己定义语法的脚本代码生成混沌图像.相关软件参见:YChaos生成混沌图像.如果你对数学生成图形图像感兴趣,欢迎加入QQ交流群: 367752815

[1]

[ScriptLines]
t=1 - 1.4*x*x + y
y=0.3*x
x=t

[Variables]
x=0.000000
y=0.000000

这图像太一般了。

[2]

改下参数看看:

[ScriptLines]
u=1 - a*x*x + b*y
v=x - y
x=u
y=v

[Variables]
a=0.186500
b=-0.985000
x=0.010000
y=0.010000

比第一幅强了些。

[3]

再加点改动

[ScriptLines]
u=1 - a*x*x + b*y
v=x - y
l=sqrt(u*u + v*v)
u=if(l<0.01,u/0.01,u)
v=if(l<0.01,v/0.01,v)
x=x+u
y=y+v
l=sqrt(x*x + y*y)
l=mod(l, 1.5)/l
x=if(l<1,x*l,x)
y=if(l<1,y*l,y)

[Variables]
a=1.280000
b=-0.985000
x=0.010000
y=0.010000

[4]

加点随机扰动

[ScriptLines]
u=1 - a*x*x + b*y
v=x - y
l=sqrt(u*u + v*v)
u=if(l<0.01,u/0.01,u)
v=if(l<0.01,v/0.01,v)
x=x+u
y=y+v
l=sqrt(x*x + y*y)
l=mod(l, 1.5)/l
x=if(l<1,x*l,x) + rand2(-r,r)
y=if(l<1,y*l,y)

[Variables]
a=1.280000
b=-0.985000
r=0.001000
x=0.010000
y=0.010000

[5]

再看G公式:

[ScriptLines]
b=sin(a)
c=cos(a)
t=x*c - y*b + x*x*b
y=x*b + y*c - x*x*c
x=t

[Variables]
a=3.000000
x=1.000000
y=1.000000

一个大圈。

[6]

改动一下:

[ScriptLines]
b=sin(a)
c=cos(a)
t=x*c - y*b + x*x*b
y=x*b + y*c - x*x*c
x=mod(t, 4)
y=mod(y,4)

[Variables]
a=3.678000
x=1.000000
y=1.000000

有点猫头鹰的样子了

[7]

最终版本:

[ScriptLines]
b=sin(a)
c=cos(a)
t=x*c - y*b + x*x*b
y=x*b + y*c - x*x*c
x=mod(t, 4) + rand2(-r,r)
y=mod(y,4) + rand2(-r,r)

[Variables]
a=3.647602
r=0.001000
x=1.000000
y=1.000000

 

posted on 2015-03-13 07:38  叶飞影  阅读(2617)  评论(5编辑  收藏  举报