LOG3(eを底とする)

LOGの級数展開

log3= 2{ 1
―――
+
―――
3・2^3
+
―――
5・2^5
+
―――
7・2^7
+・・・}

1.
0986122886 6810969139 5245236922 5257046474 9055782274 9451734694 3336374942 9321860896 6873615754 8137320887
8797002906 5957865742 3680042259 3051982105 2801870767 2774106031 6276918338 1367179373 6988443609 5990374257
0316795911 5211455919 1775067134 7054940166 7755802222 0317025294 6897560690 1065215056 4286813803 6317373298
5777823669 9165479213 1818149020 0301038236 3012224865 2748198225 9910974524 9089645805 3467008845 9650857484
4411901885 7087647494 8670796130 8582941160 2166121184 0014098255 1439194876 8893679849 4302255731 5353296853
4529525145 9213876494 6859325627 9441655694 1578272310 3551688661 0211846989 0439943063 1382552857 3646688282
4988136822 8006341439 1078689325 1456437510 2044516275 6193497398 2116941585 7405353617 5890097512 2233797736
9696877543 5479513571 2982177017 5812421223 5140581016 3272465588 9372495649 1918524296 0796684234 6470693772
3725265508 2032078333 9280558928 5314687309 5132606458 3091843974 9682223032 5765467533 3118230196 4927525759
9132217851 3533902374 8296433950 2546074245 8249346668 6612188143 6526565429 5427676105 0547779542 2933973323
1000桁目



尚、

log(1+x)= x- x2
―――
+ x3
―――
- x4
―――
+ x5
―――
-・・・@
log(1-x)=-x- x2
―――
- x3
―――
- x4
―――
- x5
―――
-・・・A


を使って、@-Aで 偶数項が消滅する

  (1+x)
log―――=
  (1-x)
2{x+ x3
―――
+ x5
―――
+ x7
―――
+・・・}

ここで、x=1/2とすると log3。


!★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
!★ln3の計算★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
!★log3=2{1/2+1/3・2^3+1/5・2^5+1/7・2^7・・・}★★★★★★★★★★★★★★★★★★★★
!★★★★★★★★★★★★★★★★★★★★★★100桁処理版★★★★★★★★★★★★
!★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

!――(宣言文)――――――――――――――――――――――――――――――――――
OPTION ARITHMETIC RATIONAL
option base 0
!――――――――――初期設定――――――――――――――――――――――――――
LET BLOKS=100 !100桁区切り
LET JJJ=10^BLOKS
LET QQ=JJJ-1

print "■■■■■■LOG3の計算開始■■■■■■■■■■"
input PROMPT "何桁まで計算しますか?":KTA_2
LET KTA=KTA_2/BLOKS*1.05 !桁数へ変換 5%マージン追加
print "計算開始時間:";date$,time$

print "KTA=";KTA
!――配列を準備する―商・余・Σ・基底――――――――――――――――――――――――
dim SYO(KTA*2),JOYO(KTA*2),(KTA*2),BASE(KTA*2)
! ――――――――――――――――――――――――――――――――――――――――
!★log3=2{1/2+1/3・2^3+1/5・2^5+1/7・2^7・・・}★★★★★★★★★★★★★★★★★★★★

!項数の項数計算 kou
!項数=(log2+KTA_2-logk)/log2
LET kou=(0.3010+KTA_2)/0.3010

print "項数:";int(kou);"項まで"

!★★★★★★★★第1項は、1/2★★★★★★★★★★★★★★★★★★★★
LET BASE(0)=1
LET DIV_X=2
for I=0 to KTA
LET JOYO(I)=BASE(I)
NEXT I
GOSUB 600 ! 1/2の計算


for I=0 to KTA
LET BASE(I)=SYO(I)
LET (I)=BASE(I)
! print BASE(I)
NEXT I

!★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
!★log3=2{1/2+1/3・2^3+1/5・2^5+1/7・2^7・・・}★★★★★★★★★★★★★★★
!★★★★★★★第3項以降の計算★★★★★★★★★★★★★★★★★★★★
for k=3 to kou step 2
! print "k=";k
GOSUB 1100 !そろばんリセットルーチン SYO と JOYOを0にする

for I=0 to KTA
LET JOYO(I)=BASE(I)
NEXT I

!★★前の項(BASE)を2^2で割る
LET DIV_X=4
GOSUB 600 !答えはSYOで返ってくる

!★★この項をBASEに一旦保存する
for I=0 to KTA
LET BASE(I)=SYO(I)
! print BASE(I)
NEXT I

!★★前の項(JOYO)をkで割る
LET DIV_X=k
GOSUB 600 !答えはSYOで返ってくる

!★★狽ノ足す
for I=1 TO KTA
LET (I)=(I)+SYO(I)
NEXT I

next k


!最後に2倍し、桁上げ処理する
FOR I = 0 TO KTA
LET (I)=2*(I)
NEXT I
GOSUB 910 !桁上げ処理

!印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷
print "計算終了時刻:";date$,time$
print str$((0));"."
FOR I =1 TO KTA
LET p$=repeat$("0",100-LEN(str$((I))))&str$((I))
print mid$(p$,1,10);" ";mid$(p$,11,10);" ";mid$(p$,21,10);" ";mid$(p$,31,10);" ";mid$(p$,41,10);" ";
print mid$(p$,51,10);" ";mid$(p$,61,10);" ";mid$(p$,71,10);" ";mid$(p$,81,10);" ";mid$(p$,91,10)
if I/10=int(I/10) then print str$( I*100);"桁目"
NEXT I
!印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷印刷

stop

600 ! *DIV_X
! ■■■■■■■■■■割算■■■■■■■■■■■■■■■■■■■■■■■■
! *******ソロバン・ルーチン開始*********************
for I= 1 to KTA
! 商を計算
LET SYO(I)=int((JJJ*JOYO(I-1) + JOYO(I)) / DIV_X)
! 余りを算出
LET JOYO(I)=(JJJ*JOYO(I-1) + JOYO(I))-SYO(I)*DIV_X
next I
! ******ソロバン・ルーチン終了!!******************
! ***商の結果を余りへ置換え*****
for I=1 to KTA
LET JOYO(I) =SYO(I)
next I
! ***置換え終了!****************
return


! ■桁処理■■■■■■■■■■■■■
910 ! *KEA_UP
FOR G_KTA=KTA to 1 step -1
LET (G_KTA-1)=(G_KTA-1)+int((G_KTA) / JJJ)
LET (G_KTA)=MOD( (G_KTA) , JJJ )
next G_KTA
return
! ■■■■■■■■■■■■■■


! ■■リセットルーチン■■■■■
1100 ! *RE_SET
for I =0 to KTA
LET SYO(I)=0
LET JOYO(I)=0
next I
return
! ■■■■■■■■■■■■■■■


END