有理近似・連分数展開

実数を入力してください

簡単な例:

計算結果

数値を入力したら、「計算開始」をクリックします。

アルゴリズムの説明:

1. 継続分数:
任意の実数 x は連分数として表現できます。
x = a₀ + 1/(a₁ + 1/(a₂ + 1/(a₃ + ...)))
略称: x = [a₀; a₁、a₂、a₃、...]
  • a₀ = ⌊x⌋ (x の整数部分)
  • x が整数でない場合は、x₁ = 1/(x - a₀) とし、a₁ = ⌊x₁⌋ と続けます。
  • このプロセスを繰り返して、a₂、a₃、...を取得します。
  • 有理数の連分数展開は有限です
  • 無理数の連分数展開は無限です
2. 収束者:
連続分数の最初の n 項を切片することによって得られる分数は、n 番目の漸近分数と呼ばれ、pn/qn として記録されます。
  • p-1 = 1、q-1 = 0
  • p0 = a₀、q0 = 1
  • 漸化式:pn = an・p(n-1) + p(n-2)
  • 漸化式:qn = an・q(n-1) + q(n-2)
  • 漸近分数は、元の数値に対する最良の有理近似です。
3. 最良の有理近似:
  • 与えられた実数 x と分母の上限 Q に対して、|x - p/q| が最小化されるような分数 p/q (q ≤ Q) を求めます。
  • 連続分数の漸近分数は、すべての最良の有理近似を与えます。
  • p/q が x の漸近分数である場合、すべての q' < q について、|x - p/q| < |x - p'/q'| となります。
4. 特殊な数の連分数:
  • 黄金比 φ:[1; 1, 1, 1, 1, ...] (すべて 1、最も遅い収束)
  • √2:[1; 2, 2, 2, 2, ...] (周期連分数)
  • e:[2; 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, ...] (定期的に)
  • π:[3; 7, 15, 1, 292, 1, ...] (明らかなパターンがない)

アルゴリズムの複雑さ:

  • 時間計算量:O(n),ここで、n は展開する項の数です
  • 空間の複雑さ:O(n),すべての係数と漸近分数を保存する必要がある
  • 数値安定性:精度の低下を避けるために、高精度の浮動小数点数または大きな整数を使用してください。

アプリケーションシナリオ:

  • 数値計算:単純な分数を使用して複雑な無理数を近似します (例: π ≈ 22/7、355/113)
  • 音楽理論:音程調和は連分数展開の単純さに関係します
  • 天文学:惑星運動の周期を計算するための有理近似
  • 数論:ディオファントス近似、ペル方程式の解
  • コンピュータグラフィックス:ブレゼンハム直線アルゴリズムなど