混沌图像---埃农的猫头鹰
法国尼斯天文台埃农(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