εアルゴリズムによる無限級数の和の近似値 山中和義 2008/02/16 10:55:05 └つづき 山中和義 2008/02/16 10:58:22
εアルゴリズムによる無限級数の和の近似値 山中和義 2008/02/16 10:55:05 ツリーへ
εアルゴリズムによる無限級数の和の近似値 |
返事を書く ノートメニュー |
山中和義 <drdlxujciw> 2008/02/16 10:55:05 | |
!εアルゴリズムによる無限級数(ΣAn)の「級数の和」の近似値
!参考 http://www.mit.msn.to/algorithm/series_epsilon.html DEF XOR(x,y)=MOD(x+y,2) !排他的論理和 FUNCTION EpsilonAlgorithm(a(),n) !数列{an} DIM s(0 TO 10000, 0 TO 1) MAT s=ZER(n+1,2) !0から LET sum=0 FOR i=0 TO n !単純な加算 LET sum=sum+a(i) LET s(i,0)=sum !a(0)+a(1)+a(2)+ ... +a(i) NEXT i PRINT sum;"=Σan" LET col=1 !奇数列目、偶数列目 FOR i=n-1 TO 1 STEP -1 FOR j=0 TO i-1 LET tmp=s(j+1,XOR(col,1)) - s(j,XOR(col,1)) IF tmp<>0 THEN LET s(j,col)=s(j+1,col) + 1/tmp !右=左+1/(下-上)の計算 ELSE PRINT "下=上",i;j GOTO 100 !下=上になれば戻る END IF NEXT j LET col=XOR(col,1) !col=1,0,1,0,1, ... ※1とのXOR NEXT i 100 LET EpsilonAlgorithm=s(0,0) END FUNCTION DIM a(0 TO 10000) !数列 an !公比数列 An=a*r^(n-1) n=0,1,2,3,… !公比数列の和 Sn=a*(1-r^n)/(1-r) !極限 lim Sn=0.9*(1-0)/(1-0.1)=1 LET n=5 !第n項 MAT a=ZER FOR i=0 TO n !初項0.9、公比0.1 ※0.999999… LET a(i)=0.9*0.1^i NEXT i PRINT EpsilonAlgorithm(a,n) PRINT 1 !1=0.999999… |
└つづき 山中和義 2008/02/16 10:58:22 ツリーへ
Re: εアルゴリズムによる無限級数の和の近似値 |
返事を書く ノートメニュー |
山中和義 <drdlxujciw> 2008/02/16 10:58:22 | |
つづき
!●収束が遅い場合 !log(x+1)=x-x^2/2+x^3/3-x^4/4+ … ※1 !!!LET n=10000 !第n項 ※単純な加算は精度をあげる LET n=15 !第n項 MAT a=ZER FOR i=0 TO n !1,-1/2,1/3,-1/4,… LET a(i)=(-1)^i/(i+1) NEXT i PRINT EpsilonAlgorithm(a,n) PRINT LOG(2) !※1より、1/2*log(2)=1/2*(1-1/2+1/3-1/4+ …)=1/2-1/4+1/6-1/8+ … LET n=15 !第n項 MAT a=ZER FOR i=1 TO n+1 !1/2,-1/4,1/6,-1/8,… LET a(i-1)=(-1)^(i+1)/(2*i) NEXT i PRINT EpsilonAlgorithm(a,n) PRINT LOG(2)/2 !tan-1(x)=x-x^3/3+x^5/5-x^7/7+ … LET n=15 !第n項 MAT a=ZER FOR i=0 TO n !グレゴリ・ライプニッツ級数 1,-1/3,1/5,-1/7,… LET a(i)=(-1)^i/(2*i+1) NEXT i PRINT EpsilonAlgorithm(a,n) PRINT PI/4 LET n=50 !第n項 MAT a=ZER FOR i=1 TO n+1 !1/(1*3),1/(5*7),1/(9*11),… LET a(i-1)=1/((4*i-3)*(4*i-1)) NEXT i PRINT EpsilonAlgorithm(a,n) PRINT PI/8 LET n=200 !第n項 MAT a=ZER FOR i=1 TO n+1 !オイラー級数 1,1/4,1/9,1/16,1/25,… 自然数の2乗の逆数の和 LET a(i-1)=1/i^2 NEXT i PRINT EpsilonAlgorithm(a,n) PRINT PI^2/6 !●収束が速い場合 !e^x=1/0!+x/1!+x^2/2!+x^3/3!+ … LET n=15 !第n項 MAT a=ZER FOR i=0 TO n !自然対数の底 1/0!,1/1!,1/2!,1/3!,… LET a(i)=1/fact(i) NEXT i PRINT EpsilonAlgorithm(a,n) PRINT EXP(1) !●精度が期待できない場合 LET n=20 !第n項 MAT a=ZER FOR i=0 TO n !(1/1-1/2)+(1/2-1/3)+(1/3-1/4)+… LET a(i)=1/(i+1)-1/(i+2) NEXT i PRINT EpsilonAlgorithm(a,n) PRINT 1 LET n=200 !第n項 MAT a=ZER FOR i=1 TO n+1 !1/(1*2)+1/(2*3)+1/(3*4)+… LET a(i-1)=1/(i*(i+1)) NEXT i PRINT EpsilonAlgorithm(a,n) PRINT 1 END |