この計算ツールでできること
このツールは、\(f = a_0/(b_0 + a_1/(b_1 + a_2/(b_2 + \dots)))\) という形の一般連分数(解析的連分数)を計算し、その近似値(収束値)\(f_0, f_1, f_2, \dots\) を指定した項数まで順番に一覧表示します。分子 \(a_n\) と分母 \(b_n\) は項番号 \(n\) を変数とする式で入力できるため、\(\pi\) や \(1/(e-1)\)、\(\sqrt{2}\) の自然対数、\(\sqrt{2}\) など、数多くの有名な連分数展開をそのまま再現できます。単位や特定の国の制度には依存しない、純粋な数学計算ツールです。
使い方
初項の分子 \(a_0\) と初項の分母 \(b_0\) は数値で入力します。第 \(n\) 項の分子 \(a_n\) と分母 \(b_n\) は、変数 \(n\) を含む式で入力してください。たとえば「\(n^2\)」「\(n+1\)」「\(-n^2\)」「\(3(2n+1)\)」「\(2\)」などです。\(n\) の直前に置く乗算記号の省略(暗黙の乗算)に対応しており、\(+\) \(-\) \(*\) \(/\) \(\char`\^\) や括弧、単項マイナス、\(\text{sqrt}\)・\(\text{exp}\)・\(\text{ln}\)・\(\text{sin}\)・\(\text{cos}\) といった関数も利用できます。計算する項数(1〜1000)と表示桁数を指定してください。大きく表示される数値が最後の近似値で、表では値がどのように収束していくかを確認できます。
計算式の解説
第 \(n\) 近似値 \(f_n\) を求めるには、保持する最も内側の項から外側へ向かって計算します。まず末尾項 \(t = 0\) とし、\(k = n, n-1, \dots, 1\) の順に \(t = a_k / (b_k + t)\) を更新していきます。最後に \(f_n = a_0 / (b_0 + t)\) で求められます。この内側から外側へ向かう方式は数値的に安定しており、分母がちょうど 0 になる場合には微小値 \(\varepsilon\) を代入する仕組み(修正 Lentz 法による保護)を採用しています。
計算例:円周率πの展開
\(a_0 = 4\)、\(b_0 = 1\)、\(a_n = n^2\)、\(b_n = 2n+1\)、項数 6 とすると、有名な \(\pi\) の連分数が得られます。\(n = 6\) のとき内側から計算すると、\(t\) は 0 から始まり、\(k=6\) で \(36/13 = 2.769231\)、\(k=5\) で \(25/13.769231 = 1.815651\)、\(k=4\) で \(1.479323\)、\(k=3\) で \(1.061407\)、\(k=2\) で \(0.659912\)、\(k=1\) で \(0.273156\) となります。最終的に $$f_6 = 4/(1 + 0.273156) = 3.141962$$ となり、すでに \(\pi = 3.141593\) にかなり近づいています。項数を増やせばさらに収束します。
よくある質問
定数とぴったり一致しないのはなぜ? 各近似値はあくまで途中で打ち切った値だからです。項数を増やすほど精度は高まりますが、倍精度演算の都合上、実用的な有効桁数は約 15 桁が限界です。
連分数が発散する場合は? 式によっては値が振動したり発散したりします。近似値の表でその挙動を観察し、極限が存在するかどうかを判断できます。
他に試せる例は? \(1/(e-1)\):\(a_0=1\), \(b_0=1\), \(a_n=n+1\), \(b_n=n+1\)。\(\sqrt{2}\):\(a_0=2\), \(b_0=1\), \(a_n=1\), \(b_n=2\)。\(\sqrt{2}\) の自然対数:\(a_0=1\), \(b_0=3\), \(a_n=-n^2\), \(b_n=3(2n+1)\)。