|
!DATA書き出し用
OPTION ARITHMETIC DECIMAL_HIGH !1000桁モード
OPTION BASE 0 !ゼロベース
LET t0=TIME
LET M=3319
DIM C(M)
LET C(0)=1
for K=1 to M
FOR J=K TO 1 STEP -1
LET C(J)=(C(J)+C(J-1))/2
NEXT j
NEXT k
OPEN #1:NAME "cf_3319.txt",RECTYPE INTERNAL
ERASE #1
for J=1 to M
WRITE #1:C(J)
NEXT j
CLOSE #1
PRINT TIME-t0;"秒で計算しました"
END
-------------------------------------
!OPTION ARITHMETIC RATIONAL !有理数モード
OPTION ARITHMETIC DECIMAL_HIGH !1000桁モード
OPTION BASE 0 !ゼロベース
LET t0=TIME
LET M=3319
DIM C(M)
LET C(0)=1
OPEN #1:NAME "cf_3319.txt",ACCESS INPUT
for K=1 to M
INPUT #1: C(k)
NEXT k
CLOSE #1
FOR x=2 TO 285
LET U=0
for J=1 to M
LET U=U+((-1)^INT(J-1))*C(J)/J^X
IF C(J)<1E-1000 THEN EXIT FOR
NEXT j
LET zeta=U/(1-2^(1-X))
PRINT USING"#." & REPEAT$("#",999):zeta
NEXT x
LET TM=TIME-t0
PRINT USING"####." & REPEAT$("#",2):TM;
PRINT "秒"
END
----------------------------------------
FOR x=2 TO 285 ゼータ関数1000桁 zeta(2)~zeta(285) 以上1000桁モードでは数値溢れ
1000桁モードの末尾の精度、有理数モードとの比較では不一致
有理数モードでは精度はいいですが遅いです。
programの目的は下記の画像のDATA
LET M=3319 の根拠は、1000桁精度のゼータ関数 zeta(3318)から1
3319/2=1659.5
1660 が0.5 で 上下の数値が等差で、和は1 と言う関係が見られました。
半径1の円と非自明な零点の1/2の関係は? わかりません。
どちらのプログラムの1000桁精度が正しいのでしょうか?
http://blogs.yahoo.co.jp/donald_stinger
|
|