PCが描く奇妙な画像集(数学的万華鏡と生物形態等の世界)

・インタープリタBASICによるフラクタルとカオスの奇妙な画集。

316 極座標によるZ^2マンデルブロ画像の確認

2014-07-24 11:13:58 | Z^2マンデルブロー集合
極座標を使用したマンデルブロ画像と、そのプログラムを以下に示す。下図の白部分がマンデルブロ集合である。(これは極座標の記事の最初に挙げるものだったが、ここで示しておく)

なお下図において表示画面の中央をマンデルブロ画像の重心の座標(-0.14,0)に一致させている。



10 REM マンデルブロ画像 極座標表示
12 CHAIN MERGE "C:\BASIC\PRO\SUBR\COLOR右上表示.BAS",50,ALL
50 CHAIN MERGE "C:\BASIC\PRO\SUBR\KOSHIKI.BAS",80,ALL
80 CHAIN MERGE "C:\BASIC\PRO\SUBR\ER1.BAS",90,ALL
90 ON ERROR GOTO 50000
91 CONSOLE ,,0,1
92 COLOR 0,7,,,2
93 CLS 3
94 GOSUB 10000
104 GOSUB 3000
110 OPEN"C:\BASIC1\TEST\マンデルブロ画像DATA.DAT" FOR OUTPUT AS #1
120 JMAX=240:KMAX=1000:RMAX=1.36:X0=-0.14:Y0=0
130 DR=RMAX/JMAX:DTH=2*P/KMAX:AA=JMAX/RMAX:NMAX=100
132 CXS=-1.5:D=RMAX/320:CYS=-240*D:DTHDO=180*DTH/P
150 FOR J=1 TO 240
160 R=J*DR
170 LOCATE 0,0:PRINT "J=";J
172 LOCATE 0,1:PRINT "始点(黒い円)の半径:R=";R
174 LOCATE 0,2:PRINT "マンデルブロ集合の中心点(赤点)=(-0.14,0)"
176 LOCATE 0,3:PRINT "C=N MOD 16 "
183 LOCATE 0,4:PRINT "Nmax=";NMAX
184 LOCATE 0,19:PRINT "RMAX=";RMAX
185 LOCATE 0,20:PRINT "dθ(度)="DTHDO
190 FOR K=0 TO KMAX
200 TH=K*DTH:THH=TH
210 CX=R*COS(TH)+X0
220 CY=R*SIN(TH)+Y0
221 X=0:Y=0
230 FOR N=0 TO NMAX
240 X1=X
250 X=FNR2(X,Y)+CX
260 Y=FNI2(X1,Y)+CY
270 Q=X^2+Y^2
280 IF Q>4 THEN 320
310 NEXT N
315 GOTO 390
320 REM
322 X=R*COS(TH)+X0:Y=R*SIN(TH)+Y0
324 K1=(X-CXS)/D:J1=(Y-CYS)/D
326 IF K1<0 OR J1<0 THEN 390
328 IF K1>640 OR J1>480 THEN 390
330 C=N MOD 16
332 IF C=7 THEN C=8
334 PSET (K1,J1),C
336 WRITE #1,K1,J1,C
390 NEXT K
394 NEXT J
400 CLOSE
500 PSET(320,240),2
520 END

315 極座標における点列の挙動(その9)点列:Z0~Z15のJ=0~240,θ=0~2πでの分布画像

2014-07-24 11:08:09 | Z^2マンデルブロー集合
記事307では、点列:Z0,Z1,Z2,・・・,Z15の、J=10ほか各値でのθ=0→2πでの挙動(軌跡)を調べた。

今回は、J=0→240,θ=0→2π(step 0.036度)での点列の軌跡濃度を調べる。
点列が同一座標となる濃度をmとすると、C=LOG(m)として色で表示する。m=0の場合は表示しない。下図がその画像である。




314 極座標に於ける点列の挙動(その8)

2014-07-24 11:00:38 | Z^2マンデルブロー集合
記事310で、Nmax=1000,Na=999として、J=20~240 step10としたときの画像を調べた。下図がその画像である。(注:この画像の色はJを表している。)



では、J=1~240 step 1 の画像はどうなるだろうか。
下図がその画像である。 以下の画像の色の意味は上図と違う。
下図の色の意味は、点列の同一座標がm個ある場合、色:C=m MOD 16,
もしくは、C=LOG(m)である。詳しくは画像に書いてある。
(上図でのマンデルブロ集合画像の頭部の軌跡が下図で表れない理由は現在不明)












313 極座標に於ける点列の挙動(その7)θ固定、R対Zn

2014-07-24 10:43:25 | Z^2マンデルブロー集合
今までは、距離:Rを固定し角度:θを変化させた時の点列{Zn}の挙動をみてきたが、今回はθを固定してRを変化させた時の挙動をみよう。
***
点列:Z0,Z1,Z2,・・・,Zn,・・・,Z15
において、θを一定にして、R=0→1.36変化させ、その都度の上記点列の挙動をみる。
点列:Znの色をCnとする。θは36度づつ変化させる。n=0の場合、即ちC=0の黒線の角度はθと一致する。その証明は参考として最後に掲載しておく。
***
下図が上記条件の画像である。黒線の角度がθを表し、線の色は点列の何番目の点かを表している。例えば赤い線はZ2の線である。
Rの変化は画像の中心点から距離で表され、Rの或る距離より曲線群(各点列の曲線)は乱れていることが分かる。
--------------------------------------------




















-----------------------------------------
黒線の角度がθとなることの証明。(この記事のプログラム参照→下記しておく)
***
X=Y=0故、X=CX, Y=CY・・・250,260行
CX=Rcosθ+X0 ,CY=Rsinθ+Y0・・・・210,220行
***
J1/K1=(Y-CYS)/(X-CXS)・・・・286行
={(Rsinθ+Y0)-CYS}/{(Rcosθ+X0)-CXS
={Rsinθ+(YO-CYS)}/{Rcosθ+(X0-CYS)}・・・(1)
***
Y軸で(YO-CYS),X軸で(X0-CYS)だけ(1)を平行移動させてもJ1/K1の角度θ1は変わらないから、
***
tanθ1=J1/K1=Rsinθ/Rcosθ=tanθ
従って、θ1=θ
***
従って、N=0の場合のJ1/K1は、tanθ:givenとなる。
従って、C=0の黒線はθ:givenとなる。
------------------------------------------------------
この記事のプログラム
50 CHAIN MERGE "C:\BASIC1\PRO\SUBR\KOSHIKI.BAS",91,ALL
91 CONSOLE ,,0,1
92 COLOR 0,7,,,2
93 CLS 3
94 GOSUB 10000
120 JMAX=240:KMAX=10:RMAX=1.36:X0=-0.14:Y0=0
130 DR=RMAX/JMAX:DTH=2*P/KMAX:AA=JMAX/RMAX:NMAX=15
132 CXS=-1.5:D=1.36/320:CYS=-240*D:DTHDO=180*DTH/P
150 FOR J=0 TO 240
160 R=J*DR
190 K=10
200 TH=K*DTH:THH=TH*180/P
201 LOCATE 0,1:PRINT "θ(度)=";THH
202 LOCATE 0,0:PRINT"K=";K
210 CX=R*COS(TH)+X0
220 CY=R*SIN(TH)+Y0
221 X=0:Y=0
230 FOR N=0 TO 500
240 X1=X
250 X=FNR2(X,Y)+CX
260 Y=FNI2(X1,Y)+CY
286 K1=(X-CXS)/D:J1=(Y-CYS)/D
288 IF K1<0 OR J1<0 THEN 390
290 IF K1>640 OR J1>480 THEN 390
294 C=N MOD 16
295 IF C=7 THEN C=8
296 PSET (K1,J1),C
310 NEXT N
390 NEXT J
400 OPEN "C:\BASIC1\TEST\DATAマンデルC.DAT" FOR INPUT AS #1
402 IF EOF(1) THEN 410
404 INPUT #1,X,Y
406 PSET (X,Y),0
408 GOTO 402
410 CLOSE #1
420 LOCATE 0,22
500 END





312 極座標における点列の挙動(その6)~秩序から無秩序へ(2)~θ固定、R対X,Y

2014-07-24 10:28:43 | Z^2マンデルブロー集合
点列{Z(X,Y)}が、Rによって秩序から無秩序へと変化していく様子は記事308,308でみてきた。その変化の様子は極座標で見るほうが、より実感できるが、その様子を別の見方で見ることができる。
***
その、もう一つの見方は、縦軸にRをとり、横軸にX,Yをとる方法である。
この場合、Rを固定してθ=0→2π変化させて、順にRを変化させていく。点列{Zn}は、n=0~15とし、C=n (C=7→15)とする。
***
下図のその画像である。整然とした二等辺三角形の形状が、Rの途中から乱れていく様子がわかる。
黒線(C=0即ちn=0)に乱れがないのは、前記事m81の点Z0の画像に対応していて、乱れは生じていない。
***







311 極座標に於ける点列の挙動(その5)J対Zn個別表示

2014-07-24 10:09:01 | Z^2マンデルブロー集合
Nmax=15の場合点列は以下のようになる。
Z0,Z1,Z2,・・・,Zn,…,Z15 ・・・・・・・・・・・・(1)
***
J=20~240 step 20 (R=0.11~1.36 step 0.11)
θ=0~πのとき、点Znはどのような挙動をするのだろうか? 下図は各Zn(n=0~15)の、その挙動である。下図の色:Cは、半径RをJパラメータで表していて、C=(J-20)/20 step 20として各step順に色付けしている。
(注: Z0が各Jに対して同心円となるのは、N-loopへの初期条件がX=Y=0であるため、その場合の複素関数:Z^2が0になるからである。)
***































310 極座標に於ける点列の挙動(その4)Nmax=500,N>Naのみ表示

2014-07-24 09:45:43 | Z^2マンデルブロー集合
また少し復習する。

極座標の一点:Z(R,θ)が始点Z0として与えられると次の点列が発生する。
Z0,Z1,Z2,・・・,Zn,・・・,Zmax ・・・・・・・・・・・・・・・(1)
この点列を便宜上{R,θ}と名付ける。
***
ここでRを固定して、θ=0→2πまで順次変化させていくと、あるθに対して、点列{R,θ}が発生し、その点列はθによって異なってくる。
***
点列{R,θ}のn番目の点Znを、nに対応した色Cn(=n mod 16)で表現すれば、θ=0→2πまで順次変化させると、点列{R,θ}のn番目の点Znは色Cnで変化する。
その変化の様子は前記事309でみてきた。
***
R,θは、PC画面で表現するために、PC画面の点(K,J)とするとR,θをそれぞれ、パラメータ、J,Kで以下のように表す。
R=dR*J (J=0~Jmax とすると、dR=Rmax/Jmax)となる。
θ=dθ*K (K=0~Kmax とすると、dθ=2π/Kax)となる。
ここでRmax=1.36、Kmax=640,Jmax=480とする。
***
ここで、前記事:m79で、点列{R,θ}が極端に錯綜した画像の一つが、点列{0.62,θ}即ちJ=110の画像であった。点列{R,θ}のn番目の点Znは色Cnで変化するのだが、Nmax=500の画像なので点列(1)が長くなり (即ち、n が多くなり )、その結果、色:Cnの軌跡が多重上描きされていき、点列{R,θm}の挙動が分からなくなっている。
***
そこで、この画像において、n が、ある値(Naとする)以下の点列は表示しないようにしてみた。以下が、Nmax=500の場合の画像である。









***
上図は点列(1)において、n>=400,499,500のみ点列{R,θ}を表示させた場合の画像であるが、n→大につれて、点列は或る個所へと集中していく様子が分かる。
最終的(n→499,500)には曲線になるが、果たして、これが点列(1)の極限値だろうか?
例えば、Nmax=500→1000にしたら、この曲線はどうなるだろう?
以下の画像はNmax=1000にした画像である。







***
上図より、点列(1)は、n=500が極限ではなかった。
下図は、Nmax=500,1000の画像において、それぞれ点列のほぼ最後の点(Znmax)を、Jたびに描いた画像である。この画像の結果から、点列(1)は、この図のように収斂していくと思われる。




309 極座標に於ける点列の挙動(その3)

2014-07-24 09:14:31 | Z^2マンデルブロー集合
記事307,308では、始点Z0を与えるとき極座標(R,θ)を用いて点列{Zn}を求めた。
その際、Rを固定し、J=0→2π変化させたときの点列{Zn}を表示させた。
また、N=0→15として、C=Nとした。即ち、各θでのn番目の点Znの色をCとして点列{Zn}の挙動を直接色で分かるようにした。
***
その結果、次のことが分かった。

1.J=0~60(R=0~0.34)あたりまで点列{Zn}の軌跡(各θでのn番目の点Znの色:Cの軌跡)は、ほぼ半径がRの円を規則的に描き、
しかもCは各θに対して振動している。そういう意味での秩序性がある。

***
2.J=80(R=0.45)あたりになると、ほぼ円であった軌跡が渦巻状に回転し始める。
その程度は色によって異なる。Cの小さい程(nの小さい程)渦巻は小さい。

***
3.さらにJ(R)が大きくなっていくと、その渦巻きの大きさは大きくなっていき規則性も失っていき、
J=140(R=0.79)あたりになると、渦巻も崩れ軌跡が錯乱状態(無秩序状態)になっていく。

***
4その無秩序性は始点Z0が、マンデルブロ集合の境界線で著しい。

***
Rを固定しθを変化させたときの、点列{Zn}の、この挙動は言葉で表現するのは困難であって、画像を見ていくしかない。
この点列{Zn}挙動は、3個のパラメータが関与している。R,θ,nである。nは、点列{Zn}の『何番目の点』を表すかのパラメータであって、ここでは色を使用している。BASIC/98では16色(白を含む)しか使えないからnは15までしか使えない。

***
ヴェンハルスト方程式の表示のように、一つの画像で、この点列{Zn}の挙動を表す上手い方法はなんだろうか? この点列{Zn}の挙動は3次元の挙動だから『時間』を使えば、つまりアニメーション化すれば良いのかも知れないが私は残念ながらその技術は皆無である。

***
さて、記事76ではNmax=15としてきた。Nmaxを大きくしたら画像はどうなるだろうか? 
Nmax=500とした画像が下図である。ここでも記事同様に、色:C=n mod 16としている。
J(R)を固定して、K=0→640(θ=0→2π)としたときの点列{Zn}の挙動である。
同じ色:Cは、各θにおいて点列{Zn}のn番目の点をC=n mod 16 の色で表している。
--------------------------------------------------------------------

























1-13

-------------------------------------------------------------------
上図から以下のことが分かる。

1.J=60(R=0.34)あたりまでの画像は、Nmax=16の画像と変わらんない。次回の記事で述べるが、これは、Nmaxを16以上大きくしても軌跡は収束してしまっていて変化しない、とうことのようだ。また、Nmax=16同様なCの規則性も変わっていない。

2.J=80(R=0.45)あたりになると始点Z0がマンデルブロ集合の境界線にくると、軌跡の錯乱状態が目立つようになる。点列{Zn}の長さが大きくなっているのだから目立つのだが、マンデルブロ集合の内部では、Cの捻じれは多少大きくなるもののNmaxとはあまり変化していない。1.同様に収束しているからだろう。

3.J=100(R=0.57)あたりになると、点列{Zn}の長さが大きくなったことが効いてきて、Cの捻じれが大きくなっていき、J=110(R=0.62)では極端に大きくなっていく。

4.J=120(R=0.68)以降の画像で目立つのは始点Z0がマンデルブロ集合の境界線にきたときの点列の乱れである。Z^2マンデルブロ集合の境界線の付近は点列{Zn}の挙動を敏感に変化させる特異点だからだろう。

5.そして、マンデルブロ集合の中央右側の個所にも特異領域があるようだ。
その個所でも点列{Zn}の軌跡は混乱・錯綜している。この領域には何があるのだろう?