混沌圖像---埃農的貓頭鷹


      法國尼斯天文台埃農(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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM