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

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

397 巡回式:Z←G(F(Z,λ),λ):F(Z,λ)=Z-1/Z^2 画像

2014-08-10 06:22:13 | 再帰式合成関数画像
λ、Zを複素数とし、λ=LR+iLI , Z=X+iYとする。
今、任意の複素関数:F(Z,λ)として、また複素関数:G(Z,λ)=G(F(Z,λ),λ)とする。
ここで、巡回式:Z←G(F(Z,λ),λ)を考える。

Zの初期値をZ0とする。最大巡回回数をNmaxとする。
この巡回式で、X^2+Y^2>T(実定数)のとき、巡回ループを抜け出すとする。

今、λの複素平面領域:LRS<=LR<=LRE,LIS<=LI<=LIE の各点において、Z←G(Z,λ)を実行する。此のループを貫通した場合、該当点を黄色とする。ループを抜け出した時の巡回回数をNoとして、其の該当点を以下の色とする。C=No mod 16,C=7→8,6→5。

***
下図は以下の条件の画像である。また、画像の下にBASIC/98のプログラムを示す。
F(Z,λ)=λ(1-1/Z^2)→注:記事396との違いは、1/Z→1/Z^2
G(Z,λ)=G(F(Z,λ),λ)=λ{F(Z,λ)-1/F(Z,λ)^2}
LRS=LIS=-1, LRE=LIE=1
Zo=0.5 ,Nmax=80 ,T=16



***




-------------------------------------------






-------------------------------------------



------------------------------------------------------------------
一番上の画像のBASIC/98のプログラム

10 REM F(Z)=λ(Z-1/Z^2) , G(Z)=λ{F(Z)-1/F(Z)^2}
20 REM 横軸(K):640 dots、縦軸(J):480 dots
30 CHAIN MERGE "C:\BASIC1\PRO\SUBR\ER1.BAS",40,ALL
40 ON ERROR GOTO 50000
50 CONSOLE ,,0,1
60 COLOR 0,7,,,2
70 CLS 3
80 OPEN "C:\BASIC1\RUN\DATA.DAT" FOR OUTPUT AS #1
90 OPEN "C:\BASIC1\RUN\親DATA.DAT" FOR OUTPUT AS #2
100 REM 親DATAの設定(随時変更)
110 LRS=-1 :LRE=1 :LIS=-1 :LIE=1
120 DR=(LRE-LRS)/480 :DI=(LIE-LIS)/480
130 WRITE #2,LRS,LRE,LIS,LIE,DR,DI
140 CLOSE #2
150 FOR J=0 TO 480
160 LOCATE 0,0:PRINT J
170 LI=LIS+DI*J
180 FOR K=0 TO 480
190 X=0.5 :Y=0
200 LR=LRS+DR*K
210 FOR N=0 TO 80
211 REM F(Z)=λ(Z-1/Z^2)=FR+iFI
220 A1=(X^2-Y^2)^2+(2*X*Y)^2
230 IF A1=0 THEN 480
240 A22=1/A1
241 A33=X-A22*(X^2-Y^2)
242 A44=Y+2*X*Y*A22
250 FR=LR*A33-LI*A44
260 FI=LI*A33+LR*A44
270 REM G(Z)=λ{F(Z)-1/F(Z)^2}=GR+iGI
280 A22=((FR^2-FI^2)^2+(2*FR*FI)^2)
290 IF A22=0 THEN 480
300 A2=1/((FR^2-FI^2)^2+(2*FR*FI)^2)
310 A3=FR-A2*(FR^2-FI^2)
320 A4=FI+2*A2*FI*FR
330 GR=LR*A3-LI*A4
340 GI=LI*A3+LR*A4
350 X=GR
360 Y=GI
370 Q=X^2+Y^2
380 '
390 IF Q>16 THEN 420
400 NEXT N
410 C=6:GOTO 460
420 '発散時のPSET
430 C=N MOD 16
440 IF C=7 THEN C=8
450 IF C=6 THEN C=5
460 PSET (K,J),C
470 WRITE #1,K,J,C,N
480 NEXT K
490 NEXT J
500 END
510



396 巡回式:Z←G(Z,λ):G(Z,λ)=λ{F(Z,λ)-1/F(Z,λ)^2}:F(Z,λ)=λ(1-1/Z) 画像

2014-08-09 09:19:39 | 再帰式合成関数画像
λ、Zを複素数とし、λ=LR+iLI , Z=X+iYとする。
今、任意の複素関数:F(Z,λ)として、また複素関数:G(Z,λ)=G(F(Z,λ),λ)とする。
ここで、巡回式:Z←G(F(Z,λ),λ)を考える。

Zの初期値をZ0とする。最大巡回回数をNmaxとする。
この巡回式で、X^2+Y^2>T(実定数)のとき、巡回ループを抜け出すとする。

今、λの複素平面領域:LRS<=LR<=LRE,LIS<=LI<=LIE の各点において、
Z←G(Z,λ)を実行する。此のループを貫通した場合、該当点を黄色とする。
ループを抜け出した時の巡回回数をNoとして、其の該当点を以下の色とする。
C=No mod 16,C=7→8,6→5。

***
下図は以下の条件の画像である。また、画像の下にBASIC/98のプログラムを示す。
F(Z,λ)=λ(1-1/Z)
G(Z,λ)=G(F(Z,λ),λ)=λ{F(Z,λ)-1/F(Z,λ)^2}
LRS=LIS=-1, LRE=LIE=1
Zo=0.5 ,Nmax=80 ,T=16



-------------------------
上図の6箇所の部分を拡大する。





-------------------------------------








------------------------------------



-----------------------------------------
一番上の画像の、BASIC/98のプロログラム。 

10 REM F(Z)=λ(Z-1/Z) , G(Z)=λ{F(Z)-1/F(Z)^2}
20 REM 横軸(K):640 dots、縦軸(J):480 dots
30 CHAIN MERGE "C:\BASIC1\PRO\SUBR\ER1.BAS",40,ALL
40 ON ERROR GOTO 50000
50 CONSOLE ,,0,1
60 COLOR 0,7,,,2
70 CLS 3
80 OPEN "C:\BASIC1\RUN\DATA.DAT" FOR OUTPUT AS #1
90 OPEN "C:\BASIC1\RUN\親DATA.DAT" FOR OUTPUT AS #2
100 REM 親DATAの設定(随時変更)
110 LRS=-1 :LRE=1 :LIS=-1 :LIE=1
120 DR=(LRE-LRS)/480 :DI=(LIE-LIS)/480
130 WRITE #2,LRS,LRE,LIS,LIE,DR,DI
140 CLOSE #2
150 FOR J=0 TO 480
160 LOCATE 0,0:PRINT J
170 LI=LIS+DI*J
180 FOR K=0 TO 480
190 X=0.5 :Y=0
200 LR=LRS+DR*K
210 FOR N=0 TO 80
211 REM F(Z)=λ(Z-1/Z)=FR+iFI
220 A11=X^2+Y^2
230 IF A11=0 THEN 480
240 A1=1/(X^2+Y^2)
250 FR=LR*X*(1-A1)-LI*Y*(1+A1)
260 FI=LI*X*(1-A1)+LR*Y*(1+A1)
270 REM G(Z)=λ{F(Z)-1/F(Z)^2}=GR+iGI
280 A22=((FR^2-FI^2)^2+(2*FR*FI)^2)
290 IF A22=0 THEN 480
300 A2=1/((FR^2-FI^2)^2+(2*FR*FI)^2)
310 A3=FR-A2*(FR^2-FI^2)
320 A4=FI+2*A2*FI*FR
330 GR=LR*A3-LI*A4
340 GI=LI*A3+LR*A4
350 X=GR
360 Y=GI
370 Q=X^2+Y^2
380 '
390 IF Q>16 THEN 420
400 NEXT N
410 C=6:GOTO 460
420 '発散時のPSET
430 C=N MOD 16
440 IF C=7 THEN C=8
450 IF C=6 THEN C=5
460 PSET (K,J),C
470 WRITE #1,K,J,C,N
480 NEXT K
490 NEXT J
500 END

395 巡回式:Z←F(Z,λ):F(Z,λ)=λ(Z-1/Z^2) 画像

2014-08-09 08:57:09 | 再帰式合成関数画像
λ、Zを複素数とし、λ=LR+iLI , Z=X+iYとする。
今、任意の複素関数:F(Z,λ)について、巡回式:Z←F(Z,λ)を考える。
Zの初期値をZ0とする。最大巡回回数をNmaxとする。
この巡回式で、X^2+Y^2>T(実定数)のとき、巡回ループを抜け出すとする。

今、λの複素平面領域:LRS<=LR<=LRE,LIS<=LI<=LIE の各点において、
Z←F(Z,λ)を実行する。此のループを貫通した場合、該当点を白とする。
ループを抜け出した時の巡回回数をNoとして、其の該当点を以下の色とする。
C=No mod 16,C=7→8。

***
下図は以下の条件の画像である。また、画像の下にBASIC/98のプログラムを示す。
F(Z,λ)=λ(1-1/Z^2)
LRS=LIS=-1, LRE=LIE=1
Zo=0.5 ,Nmax=30 ,T=16



--------------------------------
上図の3箇所の部分を下図のように選び、それらを拡大する。


-------------------------------
・1-1画像



・1-2画像



・1-3画像



----------------------------------


 
------------------------------
一番上の画像の、BASIC/98のプログラム。 

10 REM F(Z)=λ(Z-/Z^2)
20 REM 横軸(K):640 dots、縦軸(J):480 dots
70 CHAIN MERGE "C:\BASIC1\PRO\SUBR\ER1.BAS",80,ALL
80 ON ERROR GOTO 50000
90 CONSOLE ,,0,1
100 COLOR 0,7,,,2
110 CLS 3
130 OPEN "C:\BASIC1\RUN\DATA.DAT" FOR OUTPUT AS #1
140 OPEN "C:\BASIC1\RUN\親DATA.DAT" FOR OUTPUT AS #2
150 REM 親DATAの設定(随時変更)
160 LRS=-1 :LRE=1 :LIS=-1 :LIE=1
170 DR=(LRE-LRS)/480 :DI=(LIE-LIS)/480
180 WRITE #2,LRS,LRE,LIS,LIE,DR,DI
190 CLOSE #2
200 FOR J=0 TO 480
210 LOCATE 0,0:PRINT J
211 LI=LIS+DI*J
220 FOR K=0 TO 480
230 X=0.5 :Y=0
240 LR=LRS+DR*K
260 FOR N=1 TO 30
300 REM G(Z)=λ{F(Z)-1/F(Z)^2}=GR+iGI
301 A22=(X^2-Y^2)^2+(2*X*Y)^2
302 IF A22=0 THEN 490
310 A2=1/A22
320 A3=X-A2*(X^2-Y^2)
330 A4=Y+2*A2*X*Y
340 FR=LR*A3-LI*A4
341 FI=LI*A3+LR*A4
350 X=FR
360 Y=FI
390 Q=X^2+Y^2
391 '
400 IF Q>16 THEN 440
410 NEXT N
411 C=7:GOTO 470
440 '発散時のPSET
450 C=N MOD 16
460 IF C=7 THEN C=8
470 PSET (K,J),C
480 WRITE #1,K,J,C,N
490 NEXT K
500 NEXT J
510 END



392 巡回式:Z←F(Z,λ): F(Z,λ)=λ(Z-1/Z) 画像。

2014-08-09 08:16:24 | 再帰式合成関数画像
λ、Zを複素数とし、λ=LR+iLI , Z=X+iYとする。

今、任意の複素関数:F(Z,λ)について、巡回式:Z←F(Z,λ)を考える。

Zの初期値をZ0とする。最大巡回回数をNmaxとする。
この巡回式で、X^2+Y^2>T(実定数)のとき、巡回ループを抜け出すとする。

今、λの複素平面領域:LRS<=LR<=LRE,LIS<=LI<=LIE の各点において、
Z←F(Z,λ)を実行する。此のループを貫通した場合、該当点を白とする。
ループを抜け出した時の巡回回数をNoとして、其の該当点を以下の色とする。
C=No mod 16,C=7→8。

***

下図は以下の条件の画像である。また、画像の下にBASIC/98のプログラムを示す。
F(Z,λ)=λ(1-1/Z)
LRS=LIS=-1, LRE=LIE=1
Zo=0.5 ,Nmax=80 ,T=4





--------------------------------------------------
上図のBASIC/98のプログラム

10 REM 巡回式:Z←F(Z,λ),F(Z)=λZ-1/λZ
20 REM 横軸(K):640 dots、縦軸(J):480 dots
70 CHAIN MERGE "C:\BASIC1\PRO\SUBR\ER1.BAS",80,ALL
80 ON ERROR GOTO 50000
90 CONSOLE ,,0,1
100 COLOR 0,7,,,2
110 CLS 3
130 OPEN "C:\BASIC1\RUN\DATA.DAT" FOR OUTPUT AS #1
140 OPEN "C:\BASIC1\RUN\親DATA.DAT" FOR OUTPUT AS #2
150 REM 親DATAの設定(随時変更)
160 LRS=-1 :LRE=1 :LIS=-1 :LIE=1
170 DR=(LRE-LRS)/480 :DI=(LIE-LIS)/480
180 WRITE #2,LRS,LRE,LIS,LIE,DR,DI
190 CLOSE #2
200 FOR J=0 TO 480
210 LOCATE 0,0:PRINT J
211 LI=LIS+DI*J
220 FOR K=0 TO 480
230 X=0.5 :Y=0
240 LR=LRS+DR*K
260 FOR N=1 TO 80
261 A11=X^2+Y^2
262 IF A11=0 THEN 490
270 A1=1/A11
280 FR=LR*X*(1-A1)-LI*Y*(1+A1)
290 FI=LI*X*(1-A1)+LR*Y*(1+A1)
350 X=FR
360 Y=FI
390 Q=X^2+Y^2
391 '
400 IF Q>4 THEN 440
410 NEXT N
411 C=7:GOTO 470
440 '発散時のPSET
450 C=N MOD 16
460 IF C=7 THEN C=8
470 PSET (K,J),C
480 WRITE #1,K,J,C,N
490 NEXT K
500 NEXT J
510 END