LOG N(eを底とする)・・・ ex=Nとなるx
LOGの級数展開
log(N)= | 2{ | N-1 ―― N+1 |
+ | (N-1)^3 ――― 3・(N+1)^3 |
+ | (N-1)^5 ――― 5・(N+1)^5 |
+ | (N-1)^7 ――― 7・(N+1)^7 |
+・・・} |
LOG5=1.60943791243410037460・・・
1. LOG7=1.94591014905531330510・・・ 1. 9459101490 5531330510 5352743443 1797296370 8472958186 1188459390 1499375798 6275206926 7787658498 5878715269 9306169420 5851140911 7237522576 7778684314 8958095163 9007759078 2446810427 4783382259 3490084673 7441250497 3704853551 7678355774 8624015102 7741808868 6710751412 1348093879 7418310810 2518231684 9301407330 6393287711 9341121406 8769240026 0576935852 4796053502 8575362569 0618792095 5021911641 7590864756 9543294396 2682703455 5117898416 4961381068 6409244516 0419227745 0995435289 7277287286 2328141474 2495803766 1867617469 3688509686 6030637403 5724254869 2725949653 4681562059 9333092818 6009011536 9137417606 8616752857 3740589964 9732885229 6343639632 0676178232 7403532505 7732703304 6370316604 0696692127 9632396098 6520232178 7743699106 9213358195 5282984807 4275419467 8339603980 9596463887 2984562490 2863455039 4140273558 2476575316 4092930867 6046700947 6618496019 0113653785 3372480916 5480065358 5476451326 0618475934 1600828528 9349471094 4007396044 2836881486 8618868226 3675189509 6213273162 1358324303 9801956601 2671095636 3637309574 9494038080 8492639958 4314760129 1000桁目 LOG10 =2.30258509299404568401・・・ 2. 3025850929 9404568401 7991454684 3642076011 0148862877 2976033327 9009675726 0967735248 0235997205 0895982983 4196778404 2286248633 4095254650 8280675666 6287369098 7816894829 0720832555 4680843799 8948262331 9852839350 5308965377 7326288461 6336622228 7698219886 7465436674 7440424327 4365155048 9343149393 9147961940 4400222105 1017141748 0036880840 1264708068 5567743216 2283552201 1480466371 5659121373 4507478569 4768346361 6792101806 4450706480 0027750268 4916746550 5868569356 7342067058 1136429224 5544057589 2572420824 1314695689 0167589402 5677631135 6919292033 3765871416 6023010570 3089634572 0754403708 4746994016 8269282808 4811842893 1484852494 8644871927 8096762712 7577539702 7668605952 4967166741 8348570442 2507197965 0047149510 5049221477 6567636938 6629769795 2211071826 4549734772 6624257094 2932258279 8502585509 7852653832 0760672631 7164309505 9950878075 2371033310 1197857547 3315414218 0842754386 3591778117 0543098274 8238504564 8019095610 2992918243 1823752535 7709750539 5651876975 1037497088 8692180205 1893395072 3853920514 4634197265 2872869651 1086257149 2198849978 1000桁目 |
!★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
!★lnNの計算★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
!logN=2{(N-1)/(N+1)+1/3・(N-1)/(N+1)^3+1/5・(N-1)/(N+1)^5+1/7・(N-1)/(N+1)^7・・・}
!★★★★★★★★★★★★★★★★★★★★★★100桁処理版★★★★★★★★★★★★
!★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
!
!
x=(N-1)/(N+1)
!――(宣言文)――――――――――――――――――――――――――――――――――
OPTION
ARITHMETIC RATIONAL
option base
0
!――――――――――初期設定――――――――――――――――――――――――――
LET BLOKS=100 !100桁区切り
LET
JJJ=10^BLOKS
LET QQ=JJJ-1
print
"■■■■■■LOG_Nの計算開始■■■■■■■■■■"
DO
input PROMPT "N=":N
input PROMPT
"何桁まで計算しますか?":KTA_2
IF KTA_2<1000 THEN PRINT "桁数は、1000以上でお願いします"
LOOP
WHILE KTA_2<1000
LET KTA=KTA_2/BLOKS*1.10 !桁数へ変換 10%マージン追加
print
"計算開始時間:";date$,time$
print "log(N)を計算します"
print
"KTA=";KTA
!――配列を準備する―商・余・Σ・基底――――――――――――――――――――――――
dim
SYO(KTA*2),JOYO(KTA*2),(KTA*2),BASE(KTA*2)
!
――――――――――――――――――――――――――――――――――――――――
!logN=2{(N-1)/(N+1)+1/3・(N-1)/(N+1)^3+1/5・(N-1)/(N+1)^5+1/7・(N-1)/(N+1)^7・・・}
!項数の項数計算
kou
!項数=(log2+KTA_2-logk)/(log10(N+1)-log10(N-1))
LET
kou=(0.3010+KTA_2)/(log10((N+1)/(N-1)))
print
"項数:";int(kou);"項まで"
!★★★★★★★★第1項は、N−1/N+1★★★★★★★★★★★★★★★★★★★★
LET
BASE(0)=1
LET DIV_X=N+1
for I=0 to KTA
LET
JOYO(I)=(N-1)*BASE(I)
NEXT I
GOSUB 600 ! (N-1)/N+1の計算
for I=0
to KTA
LET BASE(I)=SYO(I)
LET (I)=BASE(I)
NEXT
I
!★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
!logN=2{(N-1)/(N+1)+1/3・(N-1)/(N+1)^3+1/5・(N-1)/(N+1)^5+1/7・(N-1)/(N+1)^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)を(N-1)/(N+1)^2で割る
LET DIV_X=(N+1)^2
for I=0 to
KTA
LET JOYO(I)=(N-1)^2*JOYO(I)
NEXT I
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