前回、私たちはランベルトが導いた驚異的な論理によって、\(\pi\) が無理数であることを確認しました。しかし、ランベルトの功績は「証明して終わり」ではありません。
彼が微分方程式から「皮を剥ぐ」ようにして取り出したあの連分数の構造は、現代のコンピュータが三角関数を計算する際の「アルゴリズムの最適解」の一つとして、今もなお息づいています。
今回は、数理から実学へと進んだ、連分数展開の現代的な価値を整理します。
ランベルトの連分数展開
\[\tan x = \cfrac{x}{1 – \cfrac{x^2}{3 – \cfrac{x^2}{5 – \cfrac{x^2}{7 – \dots}}}}\]
関連記事:ランベルトの連分数展開
歴史と概要:πが無理数であることの証明:ランベルトの功績と連分数展開の歴史【ランベルトの連分数展開 #1】
理論編(その1)理論と数式:tan x の連分数展開の導出:微分方程式を用いた数理的アプローチ【ランベルトの連分数展開 #2】
理論編(その2)無理性の証明:πが無理数であることの証明:ランベルトの定理と論理【ランベルトの連分数展開 #3】
現代での活用:←今ここ
自作電卓に組み込んでみた : (記事は現在利用できません: ID 7438)
1. なぜ現代のライブラリは連分数を用いる場合があるのか
マクローリン展開より安定した収束
現代の数値計算ライブラリ(C言語の libm や Rust の数値演算など)の内部では、特定の条件下において、マクローリン展開(多項式)よりも連分数展開、あるいはそれを発展させた近似手法が優先的に採用されています。
コンピュータならではの理由
コンピュータのリソースは有限です。より「速く」「正確に」値を出すためには、以下の2点がエンジニアリング上の課題となります。
- 収束の速さ: 少ないループ回数で有効数字を満たすこと。
- 精度の安定性: 入力値 \(x\) が大きくなっても、誤差が爆発しないこと。
マクローリン展開は \(x=0\) 付近では最強ですが、そこから離れると急激に精度が落ちる弱点があります。一方、ランベルトの連分数展開は、より広い範囲で「粘り強く」精度を維持する特性を持っています。
2. 【比較】テイラー展開 vs 連分数展開
実際に \(\tan x\) を計算する場面をシミュレーションしてみましょう。
| 比較項目 | マクローリン(多項式)展開 | ランベルトの連分数展開 |
| 構造 | 足し算の積み上げ | 割り算の入れ子 |
| 収束特性 | \(x=0\) 遠方で収束が遅い | 比較的広い範囲で一様に収束 |
| 計算の壁 | 係数(ベルヌーイ数)が爆発する | 係数は「1, 3, 5, 7…」とシンプル |
| 特異点 | \(\pi/2\) (極)の扱いに弱い | 分母が 0 に近づくことで極を自然に表現可能 |
例えば、自作電卓で \(\tan(1.5)\) のような \(\pi/2\) に近い値を計算しようとしたとき、多項式近似では膨大な項数が必要になりますが、連分数展開であれば驚くほど少ないステップで近似が完了します。
3. 【発展】パデ近似(Padé Approximant)への継承
ランベルトが切り拓いた「関数を分数の形で表す」という手法は、現代では「パデ近似」という強力なツールに進化しています。
パデ近似は、関数を「多項式 \(\div\) 多項式」の形(最良の有理関数)で近似する手法です。これはランベルトの連分数を有限の項で打ち切った形そのものであり、現代の工学(制御理論、信号処理、物理シミュレーション)において、複号的な現象を安定して計算するための標準的な手段となっています。
ランベルトが追い求めた「連分数による表現」は、現代の「数値計算の安定性」を支える背骨となっているのです。

ランベルトの連分数展開とマクローリン展開でtanを近似した例が上のグラフです。0付近だとマクローリン展開でも精度がいいですが、極(\(\pi/2\)に近づくほど誤差が大きくなっていることが確認できます。
補足:パデ近似とランベルトの連分数展開の数理的関係
パデ近似 \([M/N]\) とは、ある関数 \(f(x)\) を \(M\) 次多項式
\(P(x)\) と \(N\) 次多項式 \(Q(x)\) の比(有理関数)で近似する手法です。
\(f(x) \approx [M/N] = \frac{P_M(x)}{Q_N(x)} \)
ランベルトの連分数展開を途中の第 \(k\) 項で打ち切ったもの
(これを近似分数または遠近数:Convergentと呼びます)は、
実はパデ近似の対角線成分(またはその近傍)と完全に一致します。
\(\tan x\) における具体例
\(\tan x\) のパデ近似 \([3/2]\) を計算する
\(\tan x\) のテイラー展開(マクローリン展開)は以下の通りです。
\(\tan x = x + \frac{1}{3}x^3 + \frac{2}{15}x^5 + O(x^7)\)
ここで、\([3/2]\) 次のパデ近似(分子3次、分母2次)を求めてみます。\(\tan x\) は奇関数なので、分母には偶数次、分子には奇数次のみが現れます。
\(R_{3/2}(x) = \frac{a_1 x + a_3 x^3}{1 + b_2 x^2}\)
これがテイラー展開と \(x^5\) の項まで一致するように解くと、以下の式が得られます(係数比較法による)。
\(R_{3/2}(x) = \frac{x – \frac{1}{15}x^3}{1 – \frac{2}{5}x^2} = \frac{x(15 – x^2)}{15 – 6x^2} = \frac{15x – x^3}{15 – 6x^2}\)
ランベルトの連分数展開で求めた場合
ランベルトの公式を\(n=3\) までで打ち切ってみます。
\( C_3 = \cfrac{x}{1 – \cfrac{x^2}{3 – \cfrac{x^2}{5}}} \)
これを整理すると、
下部の分母を払う: \(3 – \frac{x^2}{5} = \frac{15 – x^2}{5} \)
さらに上の階層へ: \(1 – \frac{5x^2}{15 – x^2} = \frac{15 – x^2 – 5x^2}{15 – x^2} = \frac{15 – 6x^2}{15 – x^2} \)
全体: \(C_3 = \frac{x(15 – x^2)}{15 – 6x^2} = \frac{15x – x^3}{15 – 6x^2} \)
このように\(n=3\)で打ち切ったランベルトの連分数展開は、パデ近似の\([3/2]\)と一致することが確認できます。
本来のtanとの比較
計算が大変なので、n=2までで打ち切ったランベルトの連分数展開を考えます。
\( C_2 = \cfrac{x}{1 – \cfrac{x^2}{3}} = \frac{3x}{3 – x^2} \)
この有理関数をマクローリン展開(テイラー展開)してみると、以下のようになります。
\( \frac{3x}{3 – x^2} = x + \frac{1}{3}x^3 + \frac{1}{9}x^5 + \dots \)
本物の \(\tan x\) の展開式と比較してみましょう。
- 本物の \(\tan x = x + \frac{1}{3}x^3 + \frac{2}{15}x^5 + \dots\)
- パデ近似 \([3/2] = x + \frac{1}{3}x^3 + \frac{1}{9}x^5 + \dots\) (※係数 \(2/15 \approx 0.133\) に対し \(1/9 \approx 0.111\))
このように、\(x^3\) の項までの係数が完全に一致しています。連分数をより深く打ち切るほど、一致する次数が \(x^5, x^7 \dots\) と増えていき、パデ近似としての精度が向上します。つまり、「連分数を計算すること」と「最適な有理関数(パデ近似)を評価すること」は、実質的に同じ作業をしているといえます。
さいごに
18世紀にランベルトが紙とペンで導き出した連分数の性質は、今やシリコンチップの中で高速演算され、暗号のテストに用いられています。私たちが普段何気なく使っている tan() という関数一つにも、先人の執念が宿っていることが見えてきます。
全4回にわたる「ランベルトの連分数」シリーズは、今回で一区切りです。
次回(番外編・未定(本編(自作電卓)で書ききれたら書きません))では、この理論を実際にRustプログラムに落とし込む際、浮動小数点の精度や収束判定でどのような工夫が必要だったか、今回この連分数に触れるきっかけとなった自作電卓の実装からまとめてみようと思います。
ここまで読んでいただきありがとうございます。
では、次の記事で。 lumenHero
関連記事:ランベルトの連分数展開
歴史と概要:πが無理数であることの証明:ランベルトの功績と連分数展開の歴史【ランベルトの連分数展開 #1】
理論と数式:tan x の連分数展開の導出:微分方程式を用いた数理的アプローチ【ランベルトの連分数展開 #2】
無理性の証明:πが無理数であることの証明:ランベルトの定理と論理【ランベルトの連分数展開 #3】
現代での活用:←今ここ
自作電卓に組み込んでみた : (記事は現在利用できません: ID 7438)