MCPで接続 →

計算を入力してください

公式

広告

結果

連分数の値 f
3.1415926535898
最後の近似値 f_n(n=項数)
n 近似値 f_n
0 4.0
1 3.0
2 3.1666666666667
3 3.1372549019608
4 3.1423423423423
5 3.1414634146341
6 3.1416149068323
7 3.1415888250921
8 3.1415933118799
9 3.1415925404465
10 3.1415926730303
11 3.1415926502502
12 3.1415926541634
13 3.1415926534913
14 3.1415926536067
15 3.1415926535869
16 3.1415926535903
17 3.1415926535897
18 3.1415926535898
19 3.1415926535898
20 3.1415926535898

この計算ツールでできること

このツールは、\(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 法による保護)を採用しています。

Recurrence diagram showing numerator and denominator A_n and B_n built from previous terms
Convergents are computed by the recurrence A_n = b_n A_(n-1) + a_n A_(n-2) (and likewise for B_n).
Nested fraction structure of a generalized continued fraction with terms a0, b0, a1, b1, a2, b2
The nested structure of a generalized continued fraction: each level adds a new a_n over b_n.

計算例:円周率πの展開

\(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\) にかなり近づいています。項数を増やせばさらに収束します。

Sequence of convergents approaching the value pi on a number line
Successive convergents f_n oscillate and close in on the true value (here pi).

よくある質問

定数とぴったり一致しないのはなぜ? 各近似値はあくまで途中で打ち切った値だからです。項数を増やすほど精度は高まりますが、倍精度演算の都合上、実用的な有効桁数は約 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)\)。

最終更新: