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

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

299 Z^2マンデルブロ集合におけるブッダア゛ロ点列について(その4)

2014-07-22 15:16:34 | Z^2マンデルブロー集合
前記事において、問題は両プログラムにおける次のコマンドにあるのではないかと書いた。
即ち、 Q=X^2+Y^2:IF Q>4 THEN ***
巡回ループ脱出条件である。両プログラムにおいて、X,Yの僅かな差が巡回ループを巡回するとき増幅されて、上の脱出条件に差が出ることは考えられることである。
***
次のプログラムを作って、それを確認してみた。
***
10 REM マンデルブロ集合画像作成プログラムと点列表示プログラムのQの差
20 REM DATA3Zはンデルブロ集合の尻の座標データ
190 CONSOLE ,,0,1
210 COLOR 0,7,,,2
230 CLS 3
240 CHAIN MERGE "C:\BASIC1\PRO\SUBR\ER2.BAS",242,ALL
242 ON ERROR GOTO 50000
248 REM マンデルブロ集合画像作成プログラム
250 CXS=-1.5:CXE=0.5:DX=(CXE-CXS)/480:M=0:V=0
270 CYS=-1:CYE=1:DY=(CYE-CYS)/480
390 OPEN "C:\BASIC1\TEST\DATA3Z.DAT" FOR INPUT AS #1
400 OPEN "C:\BASIC1\TEST\Q1.DAT" FOR OUTPUT AS #4
410 INPUT #1,X,Y,K,J,N
430 IF EOF(1) THEN 2030
450 PSET (K,J),0
570 CX=CXS+DX*K
580 CY=CYS+DY*J
1430 X=0:Y=0
1450 FOR N=0 TO 500
1470 XX=X^2-Y^2+CX
1490 Y=2*X*Y+CY
1510 X=XX
1530 Q1=X^2+Y^2
1531 V=V+1:LOCATE 0,0:PRINT V
1540 WRITE #4,Q1
1550 NEXT N
1858 GOTO 410
2030 CLOSE
2040 '
3000 REM 点列の表示プログラム
3010 CXS=-1.5:CXE=0.5:DX=(CXE-CXS)/480
3012 CYS=-1:CYE=1:DY=(CYE-CYS)/480
3130 OPEN "C:\BASIC1\TEST\DATA3Z.DAT" FOR INPUT AS #1
3140 OPEN "C:\BASIC1\TEST\Q2.DAT" FOR OUTPUT AS #4
3160 INPUT #1,X,Y,K,J,N
3170 IF EOF(1) THEN 3620
3200 PSET (K-50,J),0
3210 CX=CXS+DX*K
3220 CY=CYS+DY*J
3270 X=0:Y=0
3280 FOR N=0 TO 500
3290 XX=X^2-Y^2+CX
3300 Y=2*X*Y+CY
3310 X=XX
3320 Q2=X^2+Y^2
3321 M=M+1
3322 LOCATE 0,1:PRINT M
3330 WRITE #4,Q2
3360 NEXT N
3470 GOTO 3160
3620 CLOSE
3640 END
***
1530行のQと3320行のQとの差の最大値を以下のプログラムで求めてみた。
***
10 REM マンデルブロ集合画像作成プログラムと点列表示プログラムのQの差
20 REM DATA3Zはンデルブロ集合の尻の座標データ
190 CONSOLE ,,0,1
210 COLOR 0,7,,,2
230 CLS 3
240 CHAIN MERGE "C:\BASIC1\PRO\SUBR\ER2.BAS",242,ALL
242 ON ERROR GOTO 50000
400 OPEN "C:\BASIC1\TEST\Q1.DAT" FOR INPUT AS #1
404 OPEN "C:\BASIC1\TEST\Q2.DAT" FOR INPUT AS #2
406 QMAX=0
440 INPUT #1,Q1
444 IF EOF(1) THEN 530
450 INPUT #2,Q2
452 LOCATE 0,0:PRINT Q1
454 LOCATE 0,1:PRINT Q2
500 Q=ABS(Q1-Q2)
510 IF Q>QMAX THEN QMAX=Q
520 GOTO 440
530 LOCATE 0,10
540 PRINT "Qmax=";QMAX
550 CLOSE
600 END
***
上のプログラムの実行結果は、Mmax=0
であった。両プログラムにおいて、『Q=X^2+Y^2:IF Q>4 THEN ***』は全く問題ないという結果になった。

さてさて、ますます問題は混迷してきた・・・

(本件の問題は今回で中止することにする。)


最新の画像もっと見る