二項係数の級数とゼータ関数1000桁

 投稿者:たろさ  投稿日:2016年 9月 6日(火)22時54分12秒
 
!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

 
 

Re: 二項係数の級数とゼータ関数1000桁

 投稿者:しばっち  投稿日:2016年 9月 9日(金)20時25分21秒
  > No.4117[元記事へ]

たろささんへのお返事です。

>どちらのプログラムの1000桁精度が正しいのでしょうか?

まず、xが偶数の時は

ζ(2)=PI^2/6
ζ(4)=PI^4/90
ζ(6)=PI^6/945
ζ(8)=PI^8/9450
ζ(10)=PI^10/93555
ζ(12)=691*PI^12/638512875
ζ(14)=2*PI^14/18243225
ζ(16)=PI^16*3617/325641566250
ζ(18)=PI^18*43867/38979295480125
ζ(20)=PI^20*174611/1531329465290625
これらの値と比較すればいいかと思います。

問題は奇数の場合ですが、まずzeta(3)について
#3281

OPTION ARITHMETIC DECIMAL_HIGH
LET S=0
LET SIGN=1
FOR K=1 TO 2000
   LET A=COMB(2*K,K)
   LET SS=S+1/A/K/K/K*SIGN
   LET SIGN=-SIGN
   IF S=SS THEN EXIT FOR
   LET S=SS
NEXT K
PRINT S*5/2
END

zeta(5)について

OPTION ARITHMETIC DECIMAL_HIGH
LET A=1
LET AA=1
FOR I=0 TO 1000
   LET B=126976/(24*I+1)^5-6610944/(24*I+2)^5+33418240/(24*I+3)^5-12722176/(24*I+4)^5-31744/(24*I+5)^5+25829376/(24*I+6)^5+15872/(24*I+7)^5+38170624/(24*I+8)^5-4177280/(24*I+9)^5
   LET B=B-413184/(24*I+10)^5-3968/(24*I+11)^5-6323008/(24*I+12)^5-1984/(24*I+13)^5-103296/(24*I+14)^5-522160/(24*I+15)^5+2385664/(24*I+16)^5+496/(24*I+17)^5+403584/(24*I+18)^5-248/(24*I+19)^5
   LET B=B-49696/(24*I+20)^5+65270/(24*I+21)^5-6456/(24*I+22)^5+62/(24*I+23)^5+128125/(24*I+24)^5
   LET C=-128/(4*I+1)^5+4/(4*I+3)^5+1/(4*I+4)^5
   IF I>0 THEN
      LET A=A/4096
      LET AA=-AA/1024
   END IF
   LET S=S+A*B
   LET SS=SS+AA*C
NEXT I
PRINT 9/250604*S+369/62651*SS
END

また、zeta関数の値は下記のサイトで調べられます。

 

Re: 二項係数の級数とゼータ関数1000桁

 投稿者:たろさ  投稿日:2016年 9月10日(土)20時22分44秒
  > No.4118[元記事へ]

しばっちさんへのお返事です。

> たろささんへのお返事です。
>
> >どちらのプログラムの1000桁精度が正しいのでしょうか?
>

> また、zeta関数の値は下記のサイトで調べられます。
>
>

何時も、ありがとうございます。


zeta(3)入力 ボタンを5回連打 約1800桁


精度確認しました。

zeta(x)1000桁 沢山あるので、地道に確認します。


http://blogs.yahoo.co.jp/donald_stinger

 

戻る