λ、Zを複素数とし、λ=LR+iLI , Z=X+iYとする。
今、任意の複素関数:F(Z,λ)として、また複素関数:H(Z,λ)=λ(λF(Z)-1/λF(Z))とする。
ここで、巡回式:Z←H(Z,λ)を考える。
Zの初期値をZ0とする。最大巡回回数をNmaxとする。
この巡回式で、X^2+Y^2>T(実定数)のとき、巡回ループを抜け出すとする。
今、λの複素平面領域:LRS<=LR<=LRE,LIS<=LI<=LIE の各点において、Z←H(Z,λ)を実行する。此のループを貫通した場合、該当点を黄色とする。ループを抜け出した時の巡回回数をNoとして、其の該当点を以下の色とする。C=No mod 16,C=7→8,6→5。
***
下図は以下の条件の画像である。また、画像の下にBASIC/98のプログラムを示す。
F(Z)=e^(Z^2)
H(Z,λ)=λ(λF(Z)-1/λF(Z))
LRS=-π/2,LRE=π/2
LIS=-π/2.LIE=π/2
Zo=0.5 ,Nmax=15 ,T=500
![](https://blogimg.goo.ne.jp/user_image/6b/6a/bcdc60bdd25ef6728c3d6d61fb01e593.png)
![](https://blogimg.goo.ne.jp/user_image/32/e2/da7617351d93b9ad910c66ffab204e9e.png)
![](https://blogimg.goo.ne.jp/user_image/6c/41/f8c41d6353b423bda92771ae20cb4d3c.png)
-------------------------------
・1-1画像
![](https://blogimg.goo.ne.jp/user_image/7a/29/00595b965ec29bad73f6a8183294daa9.png)
![](https://blogimg.goo.ne.jp/user_image/7b/14/d098b23d5c0e35c368b1d4f3cc62174b.png)
・1-1画像
![](https://blogimg.goo.ne.jp/user_image/26/82/53d557550135ac8bb6a537953cc6efa1.png)
![](https://blogimg.goo.ne.jp/user_image/40/34/01fc475ef915162ae98aff5a0aa28bad.png)
・1-1画像
![](https://blogimg.goo.ne.jp/user_image/1e/6b/3e294631eefa5450d2a03ca422813f14.png)
![](https://blogimg.goo.ne.jp/user_image/0d/63/64259164729a5f46f72ddce88fff8165.png)
--------------------------------------------------------------
一番上の画像のBASIC/98の画像のプログラムを示す。
10 REM H(Z,λ)=λ(λF(Z)-1/λF(Z))
11 REM F(Z)=e^(Z^2)
20 REM 横軸(K):640 dots、縦軸(J):480 dots
30 CHAIN MERGE "C:\BASIC1\PRO\SUBR\KOSHIKI.BAS",70,ALL
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
120 GOSUB 10000
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=-P/2 :LRE=P/2 :LIS=-P/2 :LIE=P/2
170 DR=(LRE-LRS)/640 :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 640
230 X=0.5 :Y=0
240 LR=LRS+DR*K
260 FOR N=0 TO 15
270 FR=FNEZR2(X,Y)
280 FI=FNEZI2(X,Y)
290 A1=LR*FR-LI*FI
300 A2=LI*FR+LR*FI
301 A33=A1^2+A2^2
302 IF A33=0 THEN 490
310 A3=1/A33
320 A4=LR*FR-LI*FI-A3*A1
330 A5=LI*FR-LR*F1+A3*A2
340 HR=LR*A4-LI*A5
350 HI=LR*A5+LI*A4
360 X=HR : Y=HI
390 Q=X^2+Y^2
400 IF Q>500 THEN 440
410 NEXT N
411 C=6:GOTO 470
440 '発散時のPSET
450 C=N MOD 16
460 IF C=7 THEN C=8
461 IF C=6 THEN C=5
470 PSET (K,J),C
480 WRITE #1,K,J,C,N
490 NEXT K
500 NEXT J
510 END
今、任意の複素関数:F(Z,λ)として、また複素関数:H(Z,λ)=λ(λF(Z)-1/λF(Z))とする。
ここで、巡回式:Z←H(Z,λ)を考える。
Zの初期値をZ0とする。最大巡回回数をNmaxとする。
この巡回式で、X^2+Y^2>T(実定数)のとき、巡回ループを抜け出すとする。
今、λの複素平面領域:LRS<=LR<=LRE,LIS<=LI<=LIE の各点において、Z←H(Z,λ)を実行する。此のループを貫通した場合、該当点を黄色とする。ループを抜け出した時の巡回回数をNoとして、其の該当点を以下の色とする。C=No mod 16,C=7→8,6→5。
***
下図は以下の条件の画像である。また、画像の下にBASIC/98のプログラムを示す。
F(Z)=e^(Z^2)
H(Z,λ)=λ(λF(Z)-1/λF(Z))
LRS=-π/2,LRE=π/2
LIS=-π/2.LIE=π/2
Zo=0.5 ,Nmax=15 ,T=500
![](https://blogimg.goo.ne.jp/user_image/6b/6a/bcdc60bdd25ef6728c3d6d61fb01e593.png)
![](https://blogimg.goo.ne.jp/user_image/32/e2/da7617351d93b9ad910c66ffab204e9e.png)
![](https://blogimg.goo.ne.jp/user_image/6c/41/f8c41d6353b423bda92771ae20cb4d3c.png)
-------------------------------
・1-1画像
![](https://blogimg.goo.ne.jp/user_image/7a/29/00595b965ec29bad73f6a8183294daa9.png)
![](https://blogimg.goo.ne.jp/user_image/7b/14/d098b23d5c0e35c368b1d4f3cc62174b.png)
・1-1画像
![](https://blogimg.goo.ne.jp/user_image/26/82/53d557550135ac8bb6a537953cc6efa1.png)
![](https://blogimg.goo.ne.jp/user_image/40/34/01fc475ef915162ae98aff5a0aa28bad.png)
・1-1画像
![](https://blogimg.goo.ne.jp/user_image/1e/6b/3e294631eefa5450d2a03ca422813f14.png)
![](https://blogimg.goo.ne.jp/user_image/0d/63/64259164729a5f46f72ddce88fff8165.png)
--------------------------------------------------------------
一番上の画像のBASIC/98の画像のプログラムを示す。
10 REM H(Z,λ)=λ(λF(Z)-1/λF(Z))
11 REM F(Z)=e^(Z^2)
20 REM 横軸(K):640 dots、縦軸(J):480 dots
30 CHAIN MERGE "C:\BASIC1\PRO\SUBR\KOSHIKI.BAS",70,ALL
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
120 GOSUB 10000
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=-P/2 :LRE=P/2 :LIS=-P/2 :LIE=P/2
170 DR=(LRE-LRS)/640 :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 640
230 X=0.5 :Y=0
240 LR=LRS+DR*K
260 FOR N=0 TO 15
270 FR=FNEZR2(X,Y)
280 FI=FNEZI2(X,Y)
290 A1=LR*FR-LI*FI
300 A2=LI*FR+LR*FI
301 A33=A1^2+A2^2
302 IF A33=0 THEN 490
310 A3=1/A33
320 A4=LR*FR-LI*FI-A3*A1
330 A5=LI*FR-LR*F1+A3*A2
340 HR=LR*A4-LI*A5
350 HI=LR*A5+LI*A4
360 X=HR : Y=HI
390 Q=X^2+Y^2
400 IF Q>500 THEN 440
410 NEXT N
411 C=6:GOTO 470
440 '発散時のPSET
450 C=N MOD 16
460 IF C=7 THEN C=8
461 IF C=6 THEN C=5
470 PSET (K,J),C
480 WRITE #1,K,J,C,N
490 NEXT K
500 NEXT J
510 END