goo blog サービス終了のお知らせ 

音律計算ブログ(7と12が織り成す不思議)

誤差のない音律データを目指して。
音律計算やその他について、気になった事をまったりと書いていこうと思います。

seriessum関数でべき級数を求めてみる

2025-04-14 11:25:44 | エクセル

 seriessum関数の正しい使い道を模索してみた。

r070414 主にグーグルドライブで作成したがダウンロードしてエクセルとリブレオフィスの分も追加した。都合により数学的な式の画像とセル式を分離した。

 

(r070416 式1~5の画像が少々ぼけていたので変更)

「べき級数 円周率」で検索

 https://www.procrasist.com/entry/pi_1 (PROCRASISTさん)

(式1)

 

(式2)

 

(式3) ラマヌジャン式

 

「ラマヌジャン」で検索

 https://mathlog.info/articles/3583 (Mathlogさん)

(式4) ラマヌジャンの円周率公式

 

(式5) Chudnovskyの公式

 

エクセルにて

(表)

(式1)

 c5= {=(SERIESSUM(1,1,1,ROW(INDIRECT("A1:A"&B5))^-2)*6)^0.5} (配列数式)

 d5= {=SUM((ROW(INDIRECT("A1:A"&B5))^-2)*6)^0.5} (配列数式)

(式2)

 c6= {=SERIESSUM(-1,0,1,1/(2*(ROW(INDIRECT("A1:A"&B6))-1)+1))*4} (配列数式)

 d6= {=SUM((-1)^(ROW(INDIRECT("A1:A"&B6))-1)/(2*(ROW(INDIRECT("A1:A"&B6))-1)+1))*4} (配列数式)

(式3)

 c7= {=SERIESSUM(-1*882^-2*4^-4,0,1,FACT((ROW(INDIRECT("A1:A"&B7))-1)*4)*(1123+21460*(ROW(INDIRECT("A1:A"&B7))-1))*FACT(ROW(INDIRECT("A1:A"&B7))-1)^-4/882)^-1*4} (配列数式)

 d7= {=SUM((-1)^(ROW(INDIRECT("A1:A"&B7))-1)*FACT(4*(ROW(INDIRECT("A1:A"&B7))-1))*(1123+21460*(ROW(INDIRECT("A1:A"&B7))-1))*882^-(2*(ROW(INDIRECT("A1:A"&B7))-1)+1)*(4^(ROW(INDIRECT("A1:A"&B7))-1)*FACT(ROW(INDIRECT("A1:A"&B7))-1))^-4)^-1*4} (配列数式)

(式4)

 c8= {=(SERIESSUM(396^-4,0,1,FACT(4*(ROW(INDIRECT("A1:A"&B8))-1))*(FACT(ROW(INDIRECT("A1:A"&B8))-1))^-4*(26390*(ROW(INDIRECT("A1:A"&B8))-1)+1103))*2^(3/2)*99^-2)^-1} (配列数式)

 d8= {=(SUM(FACT(4*(ROW(INDIRECT("A1:A"&B8))-1))*FACT(ROW(INDIRECT("A1:A"&B8))-1)^-4*(26390*(ROW(INDIRECT("A1:A"&B8))-1)+1103)*396^(-4*(ROW(INDIRECT("A1:A"&B8))-1)))*2^(3/2)*99^-2)^-1} (配列数式)

(式5)

 c9= {=(12*SERIESSUM(640320^-3,0,1,-1^(ROW(INDIRECT("A1:A"&B9))-1)*FACT(6*(ROW(INDIRECT("A1:A"&B9))-1))*FACT(3*(ROW(INDIRECT("A1:A"&B9))-1))^-1*FACT(ROW(INDIRECT("A1:A"&B9))-1)^-3*(545140134*(ROW(INDIRECT("A1:A"&B9))-1)+13591409)*640320^-(3/2)))^-1} (配列数式)

 d9= {=(12*SUM(-1^(ROW(INDIRECT("A1:A"&B9))-1)*FACT(6*(ROW(INDIRECT("A1:A"&B9))-1))*FACT(3*(ROW(INDIRECT("A1:A"&B9))-1))^-1*FACT(ROW(INDIRECT("A1:A"&B9))-1)^-3*(545140134*(ROW(INDIRECT("A1:A"&B9))-1)+13591409)*640320^-(3*(ROW(INDIRECT("A1:A"&B9))-1)+3/2)))^-1} (配列数式)

 f2= =PI()

 e5:e9= {=C5:C9-D5:D9} (配列数式)

 f5:g9= {=C5:D9-$F$2} (配列数式)

 

グーグルドライブのスプレッドシートにて

(表)

(式1)

 c5= =ArrayFormula((SERIESSUM(1,1,1,ROW(indirect("A1:A"&B5))^-2)*6)^0.5)

 d5= =ArrayFormula(SUM((ROW(indirect("A1:A"&B5))^-2)*6)^0.5)

(式2)

 c6= =ArrayFormula(SERIESSUM(-1,0,1,1/(2*(ROW(indirect("A1:A"&B6))-1)+1))*4)

 d6= =ArrayFormula(sum((-1)^(ROW(indirect("A1:A"&B6))-1)/(2*(ROW(indirect("A1:A"&B6))-1)+1))*4)

(式3)

 c7= =ArrayFormula(SERIESSUM(-1*882^-2*4^-4,0,1,FACT((ROW(indirect("A1:A"&B7))-1)*4)*(1123+21460*(ROW(indirect("A1:A"&B7))-1))*FACT(ROW(indirect("A1:A"&B7))-1)^-4/882)^-1*4)

 d7= =ArrayFormula(SUM((-1)^(row(indirect("A1:A"&B7))-1)*fact(4*(row(indirect("A1:A"&B7))-1))*(1123+21460*(row(indirect("A1:A"&B7))-1))*882^-(2*(row(indirect("A1:A"&B7))-1)+1)*(4^(row(indirect("A1:A"&B7))-1)*fact(row(INDIRECT("A1:A"&B7))-1))^-4)^-1)*4

(式4)

 c8= =ArrayFormula(seriessum(396^-4,0,1,fact(4*(row(indirect("A1:A"&B8))-1))*(fact(row(indirect("A1:A"&B8))-1))^-4*(26390*(row(INDIRECT("A1:A"&B8))-1)+1103))*2^(3/2)*99^-2)^-1

 d8= =ArrayFormula(sum(fact(4*(row(indirect("A1:A"&B8))-1))*fact(row(indirect("A1:A"&B8))-1)^-4*(26390*(row(indirect("A1:A"&B8))-1)+1103)*396^(-4*(row(indirect("A1:A"&B8))-1)))*2^(3/2)*99^-2)^-1

(式5)

 c9= =ArrayFormula(12*seriessum(640320^-3,0,1,-1^(row(indirect("A1:A"&B9))-1)*fact(6*(row(indirect("A1:A"&B9))-1))*fact(3*(row(indirect("A1:A"&B9))-1))^-1*fact(row(indirect("A1:A"&B9))-1)^-3*(545140134*(row(indirect("A1:A"&B9))-1)+13591409)*640320^-(3/2)))^-1

 d9= =ArrayFormula(12*sum(-1^(row(indirect("A1:A"&B9))-1)*fact(6*(row(indirect("A1:A"&B9))-1))*fact(3*(row(indirect("A1:A"&B9))-1))^-1*fact(row(indirect("A1:A"&B9))-1)^-3*(545140134*(row(indirect("A1:A"&B9))-1)+13591409)*640320^-(3*(row(indirect("A1:A"&B9))-1)+3/2)))^-1

 f2= =pi()

 e5:e9= =ArrayFormula(C5:C9-D5:D9)

 f5:g9= =ArrayFormula(C5:D9-$F$2)

 

リブレオフィスにて

(表)

(式1)

 c5= {=(SERIESSUM(1,1,1,ROW(INDIRECT("A1:A"&B5))^-2)*6)^0.5} (配列数式)

 d5= {=SUM((ROW(INDIRECT("A1:A"&B5))^-2)*6)^0.5} (配列数式)

(式2)

 c6= {=SERIESSUM(-1,0,1,1/(2*(ROW(INDIRECT("A1:A"&B6))-1)+1))*4} (配列数式)

 d6= {=SUM((-1)^(ROW(INDIRECT("A1:A"&B6))-1)/(2*(ROW(INDIRECT("A1:A"&B6))-1)+1))*4} (配列数式)

(式3)

 c7= {=SERIESSUM(-1*882^-2*4^-4,0,1,FACT((ROW(INDIRECT("A1:A"&B7))-1)*4)*(1123+21460*(ROW(INDIRECT("A1:A"&B7))-1))*FACT(ROW(INDIRECT("A1:A"&B7))-1)^-4/882)^-1*4} (配列数式)

 d7= {=SUM((-1)^(ROW(INDIRECT("A1:A"&B7))-1)*FACT(4*(ROW(INDIRECT("A1:A"&B7))-1))*(1123+21460*(ROW(INDIRECT("A1:A"&B7))-1))*882^-(2*(ROW(INDIRECT("A1:A"&B7))-1)+1)*(4^(ROW(INDIRECT("A1:A"&B7))-1)*FACT(ROW(INDIRECT("A1:A"&B7))-1))^-4)^-1*4} (配列数式)

(式4)

 c8= {=(SERIESSUM(396^-4,0,1,FACT(4*(ROW(INDIRECT("A1:A"&B8))-1))*(FACT(ROW(INDIRECT("A1:A"&B8))-1))^-4*(26390*(ROW(INDIRECT("A1:A"&B8))-1)+1103))*2^(3/2)*99^-2)^-1} (配列数式)

 d8= {=(SUM(FACT(4*(ROW(INDIRECT("A1:A"&B8))-1))*FACT(ROW(INDIRECT("A1:A"&B8))-1)^-4*(26390*(ROW(INDIRECT("A1:A"&B8))-1)+1103)*396^(-4*(ROW(INDIRECT("A1:A"&B8))-1)))*2^(3/2)*99^-2)^-1} (配列数式)

(式5)

 c9= {=(12*SERIESSUM(640320^-3,0,1,-1^(ROW(INDIRECT("A1:A"&B9))-1)*FACT(6*(ROW(INDIRECT("A1:A"&B9))-1))*FACT(3*(ROW(INDIRECT("A1:A"&B9))-1))^-1*FACT(ROW(INDIRECT("A1:A"&B9))-1)^-3*(545140134*(ROW(INDIRECT("A1:A"&B9))-1)+13591409)*640320^-(3/2)))^-1} (配列数式)

 d9= {=(12*SUM(-1^(ROW(INDIRECT("A1:A"&B9))-1)*FACT(6*(ROW(INDIRECT("A1:A"&B9))-1))*FACT(3*(ROW(INDIRECT("A1:A"&B9))-1))^-1*FACT(ROW(INDIRECT("A1:A"&B9))-1)^-3*(545140134*(ROW(INDIRECT("A1:A"&B9))-1)+13591409)*640320^-(3*(ROW(INDIRECT("A1:A"&B9))-1)+3/2)))^-1} (配列数式)

 f2= =PI()

 e5:e9= {=C5:C9-D5:D9} (配列数式)

 f5:g9= {=C5:D9-$F$2} (配列数式)

 

元頁(blogger)は2023.04.28 19:07公開

 

余談1
 n乗の部分が多いとseriessum関数が効率化に役立つ感じかな。

余談2 r070414 余談3にあわせて文頭を微修正
 表の最初の2行、個数が多くなると誤差も大きくなるのは仕方ない。200万にしても多分もっと増やしても正解には近づかない。あと関数で組み立てた式が本当に合っているのか検証できないのも困りもの(特に下の3つ)w 今回はよく知られた定数だから良いが、多分本来の使い方はもっと未知の数字を求めるのだと思う。色々と大変そうだ。

余談3 r070414追記
 表の下の3行はもう一つプラスするとpi()との誤差がゼロになる(この表の精度の限界)。リブレオフィスだけは近似が良くない。と思ってよく見たら定数pi()の精度が悪いだけだった。

 

余談4 r070414追記

 グーグルドライブで作った次の式を

  =arrayformula(<中略>)^-1

 エクセルやリブレオフィスのファイルとしてダウンロードすると

  ={<中略>^-1} (配列数式)

 となってしまいエラーだったり異なる結果になったりする場合がある。

  ={(<中略>)^-1} (配列数式)

 に修正することで正常化できた。arrayformula関数の()を頼ると失敗の元。次からは作成時に気を付けようと思う。

 

余談5 r070414追記

 また引っ越し先を考えなくてはならないようだ。

 

余談6 没画像 r070416

  

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする