これは、鳥なのか

 投稿者:SECOND  投稿日:2009年 5月27日(水)21時09分8秒
  !これは、鳥なのか。
!
OPTION ARITHMETIC NATIVE
!---------------------------------------
LET t$="グモゥスキー~ミラー写像"
LET u=-0.8
DEF F(x)= u*x+2*(1-u)*x^2/(1+x^2)
DEF x1(x,y)= y+0.008*(1-0.05*y^2)*y+F(x)
DEF y1(x,y)=-x+F(x1(x,y))
!---------------------------------------
!写像の連鎖が、カオスになっている座標(x,y)の描画です。
!Affine 写像の様な、2分岐や、多分岐 は無く、N回目の写像も、
!1つだけの写像が続き、増えませんので、再帰型は、あまり要はなく、
!1:再帰コールしない正順番、2:再帰型の逆順番、の2通り描画。

! 再帰型。但し、N回後の最終写像から、N,,,2,1,0 逆順で描画される。
SUB fr(k, x,y)
   IF 0< k THEN CALL fr(k-1, x1(x,y),y1(x,y))
   PLOT POINTS: x,y
END SUB

! 写像の順番どうりに、0,1,2,,,N 正順番で描画。
SUB fo(N, x,y)
   FOR k=0 TO N
      PLOT POINTS: x,y
      LET wx= x1(x,y) ! x= x1(x,y) ←本来ですが、x の変化は、次式の後に。
      LET y= -x+F(wx) ! y= y1(x,y) ←本来ですが、wx で計算の節約。
      LET x=wx
   NEXT k
END SUB

SET TEXT FONT "MS 明朝",12
SET TEXT BACKGROUND "OPAQUE"
SET POINT STYLE 1
LET N=50000
!
LET h=20
LET xm= h*0.1
LET ym= h*0.35
SET WINDOW xm-h,xm+h, ym-h,ym+h
CALL fo(N,.1,2) ! 写像の正順で描画 0,1,2,,,N
!
LET h=30
LET xm= h*0.2
LET ym=-h*0.4
SET WINDOW xm-h,xm+h, ym-h,ym+h
PLOT TEXT,AT xm-h*0.15, ym+h*0.85:t$& " N= "& STR$(N)
PLOT TEXT,AT xm-h*0.9, ym+h*0.85:"しばらく御待ち下さい。"
CALL fr(N,.1,2) ! 最終写像から逆順で描画 N,,,2,1,0
PLOT TEXT,AT xm-h*0.9, ym+h*0.85:" 描画の終了     "

END
 

Re: これは、鳥なのか

 投稿者:SECOND  投稿日:2009年 5月29日(金)11時10分47秒
  > No.401[元記事へ]

気が付かなかった・・

! 再帰型。但し、N回後の最終写像から、N,,,2,1,0 逆順で描画される。
SUB fr(k, x,y)
   IF 0< k THEN CALL fr(k-1, x1(x,y),y1(x,y))
   PLOT POINTS: x,y
END SUB

   ↓の様に、行を入れ替えると、

! 再帰型。! 写像の順番どうりに、0,1,2,,,N 正順番で描画。
SUB fr(k, x,y)
   PLOT POINTS: x,y
   IF 0< k THEN CALL fr(k-1, x1(x,y),y1(x,y))
END SUB
 

戻る