Skip to content

(r)数値積分手法

  • 台形法
  • シンプソンの法則  台形法より高精度
  • 中点公式  台形法と比較される
  • ブールの法則  シンプソンの法則の拡張
  • モンテカルロ積分 乱数を用いたもの
  • ロンバーグ積分台形公式にリチャードソン補外を適用
  • 適応積分本公式(台形法やシンプソン法)をベースに使用
  • ガウス求積法 重み付き多項式を使用し、ノードと重みを計算
  • クロンス-シャーダー法  ガウス求積法の改良版
  • ルンゲ-クッタ法 微分方程式の解法だが、数値積分としても使用可能
  • 台形積分の複合化 台形法を小区間に適用して精度を向上。一般的な実装が容易
  • ロバートソン法   チャードソン補外をさらに細かく改良
  • ファンデルコルプ法 不確定性列を用いたモンテカルロ法の改良版
  • スプライン補間法  スプライン関数で区間を補間し、積分を近似
  • Verlet法は運動方程式を解くための手法である
  • ブレント法は解析的に解けない方程式の根を求めるための逆解法である

非常に滑らかな関数、特異点、急激な変化のある関数、それぞれ得意とする分野が異なっているが、おおよその評価を書きに記した。実際にはその数値計算を用いる前にその関数の特性を把握し、求められる評価精度を確認し、どの方式をどういう補助的な手法を併用して適用するかを考察すべきである。

  • 小: 中点公式、台形法、台形積分の複合化、Verlet法、シンプソンの法則、ファンデルコルプ法、ブールの法則
  • 中: ルンゲ-クッタ法、ロバートソン法、ロンバーグ積分、適応積分、ガウス-クロンロッド法、ガウス求積法、
  • 大: モンテカルロ積分、クロンス-シャーダー法、ルンゲ-クッタ法
  • 高: クロンス-シャーダー法、ガウス-クロンロッド法、ガウス求積法、ロンバーグ積分、ブールの法則
  • 中: ルンゲ-クッタ法(高次)、スプライン補間法、シンプソンの法則、適応積分、ファンデルコルプ法
  • 低: ルンゲ-クッタ法(低次)、ロバートソン法、台形積分の複合化、Verlet法、台形法、中点公式、モンテカルロ積分
  • 高:  ガウス-クロンロッド法、ガウス求積法、クロンス-シャーダー法、ロンバーグ積分、スプライン補間法、Verlet法
  • 中:  シンプソンの法則、ブールの法則、適応積分、ロバートソン法、台形積分の複合化、ルンゲ-クッタ法
  • 低:  台形法、中点公式、ファンデルコルプ法、モンテカルロ積分
  • 低次関数:   台形法、シンプソン法、ブールの法則。
  • 高次関数:   モンテカルロ積分、ガウス求積法。
  • 高精度:    ロンバーグ積分、ガウス求積法、適応積分。
  • 不規則な関数: 適応積分、モンテカルロ法。

  • 要約
    • Verlet法は、運動方程式を解くための効率的な手法の一つ。一般的な数値積分法ではない
  • 特徴
    • 計算量は少なく、安定性は中程度
  • 精度
    • O(Δt2)\mathcal{O}(\Delta t^2)
  • 制限
    • 初期条件として、位置 x(t)x(t)x(tΔt)x(t-\Delta t) の両方が必要です。
  • 用途
    • 分子動力学: 原子や分子の運動をシミュレート。
    • 天体力学: 惑星や星間運動のシミュレーション。
    • ゲーム開発: 物理エンジンでの物体運動。
x(t+Δt)=2x(t)x(tΔt)+a(t)Δt2x(t+\Delta t) = 2x(t) - x(t-\Delta t) + a(t)\Delta t^2
  • x(t)x(t): 時刻 tt における位置
  • a(t)a(t): 時刻 tt における加速度
  • Δt\Delta t: 時間刻み

現在の位置 x(t)x(t) と1ステップ前の位置 x(tΔt)x(t-\Delta t) を用いて次の位置 x(t+Δt)x(t+\Delta t) を計算

速度Verlet法(Velocity Verlet Method)

Section titled “速度Verlet法(Velocity Verlet Method)”
  • 要約
    • 速度の計算を含む改良版が速度Verlet法
    • 速度 v(t)v(t) の計算も同時に行える
  1. 位置の更新:

    x(t+Δt)=x(t)+v(t)Δt+12a(t)Δt2x(t+\Delta t) = x(t) + v(t)\Delta t + \frac{1}{2}a(t)\Delta t^2
  2. 中間的な加速度の計算: 加速度 a(t+Δt)a(t+\Delta t) を計算。

  3. 速度の更新:

    v(t+Δt)=v(t)+12(a(t)+a(t+Δt))Δtv(t+\Delta t) = v(t) + \frac{1}{2}\big(a(t) + a(t+\Delta t)\big)\Delta t

1次元の単振動(調和振動子)で適用する場合

a(t)=ω2x(t)a(t) = -\omega^2 x(t)

Verlet法で次の位置を計算すると:

x(t+Δt)=2x(t)x(tΔt)ω2x(t)Δt2x(t+\Delta t) = 2x(t) - x(t-\Delta t) - \omega^2 x(t) \Delta t^2
  • 要約
    • Euler法は、最も基本的な数値積分手法の一つで、微分方程式を解くために用いられる。
  • 摘要分野
    • 初等的な数値計算や物理シミュレーションで広く使用されます。
  • 特徴
    • 実装が非常に簡単で計算コストが低い。
  • 精度
    • O(Δt)\mathcal{O}(\Delta t)
  • 制限
    • 精度が低く、長時間シミュレーションでは累積誤差が大きくなる。
  • 用途
    • 教育: 数値計算の基礎として。
    • 簡易的な物理シミュレーション。
    • 初期値問題の概略的な解法。
x(t+Δt)=x(t)+v(t)Δtx(t+\Delta t) = x(t) + v(t)\Delta t v(t+Δt)=v(t)+a(t)Δtv(t+\Delta t) = v(t) + a(t)\Delta t
  • x(t)x(t): 時刻 tt における位置
  • v(t)v(t): 時刻 tt における速度
  • a(t)a(t): 時刻 tt における加速度
  • Δt\Delta t: 時間刻み

現在の位置 x(t)x(t) と速度 v(t)v(t) を用いて、次の時刻の位置と速度を計算します。

この公式は、区間[a,b][a,b]nn 個の小区間に分割し、各小区間で関数を直線で近似することで、元の関数の定積分を近似計算する方法です。

区間[a,b]を n 等分した場合の台形公式は以下のように表されます:

  1. 各小区間では関数を直線で近似
  2. 分割数 n を大きくするほど、より精度の高い近似値が得られる
  3. シンプルかつ実装が容易
  4. 数値積分の基本的な手法として広く使用される
abf(x)dxba2n[f(a)+2f(x1)+2f(x2)+...+2f(xn1)+f(b)]\int_{a}^{b} f(x)dx \approx \frac{b-a}{2n} [f(a) + 2f(x_1) + 2f(x_2) + ... + 2f(x_{n-1}) + f(b)]

より形式的に書くと:

abf(x)dxh2[f(x0)+2i=1n1f(xi)+f(xn)]\int_{a}^{b} f(x)dx \approx \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1}f(x_i) + f(x_n)]

ここで:

     h=banh = \frac{b-a}{n} は分割幅

     x0=ax_0 = a は開始点

     xn=bx_n = b は終了点

     xi=a+ihx_i = a + ih (i=1,2,...,n1)(i = 1,2,...,n-1) は中間点

O(h2)O(h^2)

ただしh=banh = \frac{b-a}{n}なので分割数を2倍にすると、誤差は約1/4になります。


ガウス-クロンロッド法(Gauss-Kronrod Quadrature)

Section titled “ガウス-クロンロッド法(Gauss-Kronrod Quadrature)”
  • 要約

    • 数値積分のアルゴリズム。
    • 領域を動的に分割し、積分値を高精度に求める手法。
  • 摘要分野

    • 数値解析における積分計算。
  • 特徴

    • ガウス求積法を拡張し、積分値の近似と誤差推定を同時に提供する。
    • 動的な分割で非滑らかな関数にも対応。
    • 自動適応型(Adaptive Quadrature):エラーが大きい領域をより細かく分割。
  • 精度

    • 高次のガウス求積法より高精度。
    • 誤差はアルゴリズムによって動的に推定される。
  • 制限

    • 関数が不連続や特異点を持つ場合、特別な処理が必要。
  • 用途

    • 工学や物理シミュレーションでの複雑な積分計算。
    • 特に積分範囲が広く、関数が滑らかでない場合に有効。

ガウス-クロンロッド法は、基本的なガウス求積法を拡張し、追加の評価点(クロンロッド点)を導入することで精度を向上させます。これにより、積分の近似値と誤差推定を同時に得ることができます。

  • ガウス-クロンロッド法は、非滑らかな関数に対しても適応的な動作をしますが、特異点が存在する場合は適切な前処理が必要
  • ガウス-クロンロッド法は滑らかな関数に対して高精度だが、非滑らかな関数ではクロンス-シャーダー法やロンバーグ積分に劣る場合がある

  • 要約

    • 方程式の根を求めるための数値逆解法。
    • 二分法、線形補間、逆放物線補間を組み合わせた効率的なアルゴリズム。
  • 摘要分野

    • 非線形方程式の解法。
  • 特徴

    • 二分法の収束保証と補間法の高速性を併せ持つ。
    • 非常に収束が早く、精度が高い。
    • 関数の連続性を仮定するが、滑らかである必要はない。
  • 精度

    • O(log(n))\mathcal{O}(\log(n))(二分法の収束速度に準じる)。
    • 実用上、関数評価回数が少なくて済む。
  • 制限

    • 1次元スカラー関数に限定される。
    • 解が範囲内に存在しない場合、収束しない。
  • 用途

    • 物理や工学でのルートファインディング。
    • 任意のスカラー関数のゼロ点探索。

ブレント法は、与えられた範囲で関数の符号が変わる点(根)を求めます。初期範囲が適切であれば、収束が保証されます。

  • 二分法:初期範囲で符号が変わる中点を繰り返し探索。
  • 線形補間:直線近似を用いて次の推定点を計算。
  • 逆放物線補間:二次関数で近似し、より高速な収束を実現。

ブレント法は関数の連続性に依存するため、不連続点が存在する場合には適用できません。


シンプソンの法則(Simpson’s Rule)

Section titled “シンプソンの法則(Simpson’s Rule)”
  • 要約
    • 二次曲線で近似するため、台形公式よりも精度が高い。
  • 摘要分野
    • 数値解析、特に積分計算。
  • 特徴
    • 偶数個のサブインターバルに適用。
    • 台形公式に比べて高い精度を持つ。
  • 精度
    • O(h4)\mathcal{O}(h^4)
  • 制限
    • 分割数 nn は必ず偶数である必要がある。
  • 用途
    • 工学計算や物理シミュレーション。
    • 積分範囲が明確で関数が滑らかな場合。

シンプソン法は滑らかな関数に対して非常に安定かつ高精度な結果を得られる手法ですが、不連続点や急激な変化を持つ関数に対しては、その安定性が低下する可能性があります。 具体的には、関数の急激な変化が2次補間で適切に表現されず、局所的な誤差が蓄積する場合があります。そのため、適切な分割数の選択が安定性の維持に重要です。

シンプソン法は滑らかな関数に対して非常に安定かつ高精度な結果を得られる手法ですが、不連続点や急激な変化を持つ関数に対しては、その安定性が低下する可能性があります。

具体的には、関数の急激な変化が2次補間で適切に表現されず、局所的な誤差が蓄積する場合があります。そのため、適切な分割数の選択が安定性の維持に重要です。

abf(x)dxba3n[f(a)+4i=1,oddn1f(xi)+2i=2,evenn2f(xi)+f(b)]\int_{a}^{b} f(x)dx \approx \frac{b-a}{3n} \left[ f(a) + 4 \sum_{i=1,\text{odd}}^{n-1} f(x_i) + 2 \sum_{i=2,\text{even}}^{n-2} f(x_i) + f(b) \right]
  • ba3n\frac{b-a}{3n}: 各サブインターバルの幅に基づいたスケール係数。
  • i=1,oddn1f(xi)\sum_{i=1,\text{odd}}^{n-1} f(x_i): 奇数番号のサブインターバルの重みは4。
  • i=2,evenn2f(xi)\sum_{i=2,\text{even}}^{n-2} f(x_i): 偶数番号のサブインターバルの重みは2。
  • 両端の点 f(a)f(a)f(b)f(b): 重みは1。

もし積分区間が [a,b]=[0,1][a, b] = [0, 1]、分割数 n=2n = 2 の場合:

01f(x)dx103×2[f(0)+4f(12)+f(1)]\int_{0}^{1} f(x)dx \approx \frac{1-0}{3 \times 2} \left[ f(0) + 4f\left(\frac{1}{2}\right) + f(1) \right]

ガウス求積法(Gaussian Quadrature)

Section titled “ガウス求積法(Gaussian Quadrature)”
  • 要約
    • ガウス求積法は、数値積分において高精度で効率的な手法であり、関数を重み付き多項式の線形結合で近似します。
  • 摘要分野
    • 数値解析、特に高精度が求められる積分計算。
  • 特徴
    • 高次元積分や特殊な重み関数を持つ積分に適用可能。
    • 使用する次数 nn によって精度が向上。
  • 精度
    • O(h2n)\mathcal{O}(h^{2n})
  • 制限
    • 評価点(ノード)xix_i と重み wiw_i の計算が事前に必要。
  • 用途
    • 工学計算や物理シミュレーション。
    • 統計学における期待値の計算。
    • 高次元積分や重み付き関数を伴う積分。
abf(x)dxi=1nwif(xi)\int_{a}^{b} f(x)dx \approx \sum_{i=1}^{n} w_i f(x_i)
  • xix_i: 評価点(ノード)。
  • wiw_i: 各ノードの重み。
  • nn: 使用する積分点の数(次数)。

標準区間 [1,1][-1, 1] では、次のノードと重みが使用されます:

  • ノード: x1=33x_1 = -\frac{\sqrt{3}}{3}, x2=33x_2 = \frac{\sqrt{3}}{3}
  • 重み: w1=1w_1 = 1, w2=1w_2 = 1

これを用いると、積分は以下のように近似されます:

11f(x)dxf(33)+f(33)\int_{-1}^{1} f(x)dx \approx f\left(-\frac{\sqrt{3}}{3}\right) + f\left(\frac{\sqrt{3}}{3}\right)

評価点 xix_i と重み wiw_i は、以下の手順で計算されます:

  1. 評価点の計算(ノード)

    • ノード xix_i は、ルジャンドル多項式 Pn(x)P_n(x) の零点として決定されます。
    • ルジャンドル多項式は次の漸化式で計算されます: P0(x)=1,P1(x)=x,Pn+1(x)=(2n+1)xPn(x)nPn1(x)n+1P_0(x) = 1, \quad P_1(x) = x, \quad P_{n+1}(x) = \frac{(2n+1)xP_n(x) - nP_{n-1}(x)}{n+1}
    • 具体的な零点の計算には数値的な手法(例: ニュートン法)を用います。
  2. 重みの計算

    • 重み wiw_i は次の式で与えられます: wi=11j=1,jinxxjxixjdxw_i = \int_{-1}^{1} \prod_{j=1, j \neq i}^{n} \frac{x - x_j}{x_i - x_j} \, dx
    • 実際には、計算済みのノードと重みが既知の値として利用されることが多いです。
  • 標準区間 [1,1][-1, 1] 以外の積分区間では、線形変換を用いて積分範囲を変換します: abf(x)dx=ba211f(ba2x+b+a2)dx\int_{a}^{b} f(x) \, dx = \frac{b-a}{2} \int_{-1}^{1} f\left(\frac{b-a}{2}x + \frac{b+a}{2}\right) \, dx

2次ガウス求積法では、区間 [1,1][-1, 1] に対して以下のノードと重みが使用されます:

  • ノード: x1=33x_1 = -\frac{\sqrt{3}}{3}, x2=33x_2 = \frac{\sqrt{3}}{3}
  • 重み: w1=1w_1 = 1, w2=1w_2 = 1

この場合、数値積分は次のように近似されます:

11f(x)dxf(33)+f(33)\int_{-1}^{1} f(x) \, dx \approx f\left(-\frac{\sqrt{3}}{3}\right) + f\left(\frac{\sqrt{3}}{3}\right)

ガウス求積法は高次元の積分にも拡張可能です。他の重み関数に応じた手法として、以下のようなバリエーションがあります:

  • ガウス・ルジャンドル法: 標準。
  • ガウス・エルミート法: 重み関数 ex2e^{-x^2} を持つ場合。
  • ガウス・ラグランジュ法: 重み関数 exe^{-x} を持つ場合。

これにより、特定の物理現象や統計モデルにも適用可能です。


ロンバーグ積分(Romberg Integration)

Section titled “ロンバーグ積分(Romberg Integration)”
  • 要約
    • 台形公式を基にリチャードソン補外を繰り返し適用することで高精度な積分結果を得る手法。
  • 摘要分野
    • 高精度な数値積分が必要な場合に使用。
  • 特徴
    • 台形公式を利用するため、比較的実装が簡単。
    • リチャードソン補外により、計算精度を指数的に向上。
  • 精度
    • O(h2m)\mathcal{O}(h^{2m})mm は補外のステップ数)
  • 制限
    • 関数の滑らかさが必要。
    • 計算コストが高くなる。
  • 用途
    • 科学計算やエンジニアリングにおける精密積分。
    • 理論解析で高精度の数値解を求める際に使用。

ロンバーグ積分は次の漸化式に基づいて計算されます:

R(k,0)=Tk=台形公式での積分値(分割数 2kR(k, 0) = T_k = \text{台形公式での積分値(分割数 } 2^k\text{)} R(k,j)=4jR(k,j1)R(k1,j1)4j1R(k, j) = \frac{4^j R(k, j-1) - R(k-1, j-1)}{4^j - 1}
  • R(k,j)R(k, j): ロンバーグ表のエントリ(kk は分割レベル、jj は補外ステップ数)。
  • TkT_k: 台形公式を使用した積分値。
  • kk: 分割レベル。
  • jj: 補外ステップ数。
  1. 初期値計算:

    • 台形公式を用いて R(k,0)R(k, 0) を計算します(k=0,1,2,k = 0, 1, 2, \ldots)。
    • 台形公式の基本式は次の通り: Tk=12(f(a)+f(b)+2i=1n1f(a+ih))T_k = \frac{1}{2} \left( f(a) + f(b) + 2 \sum_{i=1}^{n-1} f\left(a + i \cdot h\right) \right) ここで h=banh = \frac{b-a}{n}
  2. リチャードソン補外:

    • R(k,j)R(k, j) を補外公式を使って再帰的に計算。
  3. 収束の確認:

    • 収束条件を満たした R(k,j)R(k, j) を積分結果とする。

区間 [0,1][0, 1]f(x)=exf(x) = e^x の積分を計算する場合:

  1. 初期値 R(0,0)R(0, 0)R(1,0)R(1, 0) を台形公式で計算:

    R(0,0)=12(f(0)+f(1))R(0, 0) = \frac{1}{2} \left( f(0) + f(1) \right) R(1,0)=14(f(0)+2f(12)+f(1))R(1, 0) = \frac{1}{4} \left( f(0) + 2f\left(\frac{1}{2}\right) + f(1) \right)
  2. リチャードソン補外を適用して R(1,1)R(1, 1) を計算:

    R(1,1)=4R(1,0)R(0,0)41R(1, 1) = \frac{4 \cdot R(1, 0) - R(0, 0)}{4 - 1}
  3. この手順を繰り返し、高精度な積分値を得る。

  • リチャードソン補外とは:
    • 数値積分値を補正する手法。低精度の積分値を組み合わせてより高精度な結果を導出します。
  • 収束性:
    • 関数が滑らかであるほど収束が速い。

ロンバーグ積分では、台形法の積分値にリチャードソン補外を適用し、理論上の精度を O(h2m)\mathcal{O}(h^{2m})mm は補外の回数)まで向上させることが可能です。この補外過程により、適切に補外を繰り返すことで、計算量を増やさずに精度を大幅に向上させる点が特長です。


  • 要約
    • 適応積分は、積分区間を動的に細分化し、必要な部分でのみ精度を高める数値積分手法。
  • 摘要分野
    • 不連続点や急激な変化を持つ関数の積分。
    • 必要最小限の計算コストで高精度を達成する場合に使用。
  • 特徴
    • 積分区間を動的に細分化して精度を向上。
    • 台形公式やシンプソンの法則をベースに使用可能。
  • 精度
    • 使用する基本公式(例: 台形公式、シンプソンの法則)に依存。
  • 制限
    • 細分化が過剰になると計算コストが増大。
    • 各細分区間での計算精度の適切な制御が必要。
  • 用途
    • 不規則な関数の積分(例: 特異点を含む関数)。
    • 複雑な物理シミュレーションや統計計算。

適応積分は、積分区間 [a,b][a, b] を細分化して、各部分積分を動的に計算します。基本的なアルゴリズムは以下の通り:

  1. 初期分割
    • [a,b][a, b] を1つの区間として積分値 I(a,b)I(a, b) を計算。
  2. 分割後の積分
    • 区間を [a,c][a, c][c,b][c, b] に分割し、それぞれの積分値 I(a,c)I(a, c)I(c,b)I(c, b) を計算。
    • cc は中点、c=a+b2c = \frac{a+b}{2}
  3. 誤差評価
    • I(a,b)(I(a,c)+I(c,b))|I(a, b) - (I(a, c) + I(c, b))| が許容誤差以下であれば終了。
    • そうでなければ、さらに細分化を繰り返す。
計算手順(シンプソン法を例に)
Section titled “計算手順(シンプソン法を例に)”
  1. 初期積分値を計算:

    I(a,b)=ba6[f(a)+4f(a+b2)+f(b)]I(a, b) = \frac{b-a}{6} \left[ f(a) + 4f\left(\frac{a+b}{2}\right) + f(b) \right]
  2. 細分化してそれぞれの積分を計算:

    I(a,c)=ca6[f(a)+4f(a+c2)+f(c)]I(a, c) = \frac{c-a}{6} \left[ f(a) + 4f\left(\frac{a+c}{2}\right) + f(c) \right] I(c,b)=bc6[f(c)+4f(c+b2)+f(b)]I(c, b) = \frac{b-c}{6} \left[ f(c) + 4f\left(\frac{c+b}{2}\right) + f(b) \right]
  3. 誤差を評価:

    Error=I(a,b)(I(a,c)+I(c,b))\text{Error} = \left| I(a, b) - \left(I(a, c) + I(c, b)\right) \right|
  4. 許容誤差以下の場合、I(a,b)I(a,c)+I(c,b)I(a, b) \approx I(a, c) + I(c, b) を出力。 それ以外の場合、[a,c][a, c][c,b][c, b] をさらに細分化して再帰的に計算。

関数 f(x)=sin(x)f(x) = \sin(x) を区間 [0,π][0, \pi] で積分する場合:

  1. 初期区間 [0,π][0, \pi]I(0,π)I(0, \pi) を計算。
  2. 細分化して [0,π/2][0, \pi/2][π/2,π][\pi/2, \pi] の積分を計算。
  3. 誤差が許容範囲以下になるまで繰り返し。
  • 適応積分は再帰的なアルゴリズムが一般的。
  • 精度向上のため、シンプソン法や高次の公式を使用することが多い。

適応積分は、積分区間を動的に細分化して精度を高める手法であり、特異点や急激な値の変化を含む関数に特に有効です。しかし、この特性により過剰な分割が発生し、計算量が指数関数的に増大する場合があります。

積分区間 [a,b][a, b] を細分化し、次のように計算します:

I=abf(x)dxi=1nxi1xif(x)dxI = \int_{a}^{b} f(x)dx \approx \sum_{i=1}^{n} \int_{x_{i-1}}^{x_i} f(x)dx

特異点付近では、分割が自動的に細かくなり計算量が O(kn)O(kn)kk: 再分割の深さ, nn: 初期分割数)に増大する可能性があります。

  • 事前解析による特異点の除外: 特異点や急激な変化が起こる位置を解析し、それらの領域を積分区間から除外します。
  • 許容誤差の設定: 過剰分割を防ぐため、再分割のしきい値を適切に設定します。
  • 領域の近似または除外: 特異点や急激な変化を含む領域では、以下の方法を検討します:
    1. 近似関数の適用: 発散する領域を滑らかな関数で置き換える。
    2. 領域の除外: 特異点周辺の領域を積分から除外する場合もあります(例: 数学的正当性が維持される場合)。

特異点や急激な値変化の点を特定した場合、積分区間を以下のように分割します:

[0,x1],[x1,x2],,[xn1,xn],[xn,b][0, x_1], [x_1, x_2], \dots, [x_{n-1}, x_n], [x_n, b]

各区間で数値積分を適用し、結果を合算して最終的な積分値を得ます。

I=i=1n+1xi1xif(x)dxI = \sum_{i=1}^{n+1} \int_{x_{i-1}}^{x_i} f(x) dx

これらの方法を適切に組み合わせることで、計算の発散を防ぎ、効率的かつ安定的な積分が可能になります。


クロンス-シャーダー法(Kronrod Rule)

Section titled “クロンス-シャーダー法(Kronrod Rule)”
  • 要約
    • ガウス求積法を拡張した手法で、追加の評価点を利用することで、既存の積分値に対して高精度な近似を提供する。
  • 摘要分野
    • 科学計算や工学計算など、高精度な積分が必要な場面。
  • 特徴
    • 既存のガウス求積法に補強された評価点を追加。
    • 元のガウス求積法との互換性を維持しつつ、精度を向上。
  • 精度
    • ガウス求積法より高精度。
  • 制限
    • 計算量が増加する(追加評価点を計算するため)。
  • 用途
    • 複雑な物理モデルの積分。
    • 特定の重み関数を持つ積分。

クロンス-シャーダー法は、ガウス求積法に対して以下の形で拡張されます:

abf(x)dxi=1nwif(xi)+j=1mwjKf(xjK)\int_{a}^{b} f(x)dx \approx \sum_{i=1}^{n} w_i f(x_i) + \sum_{j=1}^{m} w_j^\text{K} f(x_j^\text{K})

ここで:

  • xix_i: ガウス求積法の評価点(ノード)。
  • wiw_i: ガウス求積法の重み。
  • xjKx_j^\text{K}: クロンス-シャーダー法で追加される評価点。
  • wjKw_j^\text{K}: クロンス-シャーダー法で追加される重み。

ガウス求積法が3点(n=3n=3)の場合、クロンス-シャーダー法ではさらに3点(m=3m=3)の評価点が追加され、計6点を使用します。

  1. ガウス求積法のノードと重み:

    • x1,x2,x3x_1, x_2, x_3
    • w1,w2,w3w_1, w_2, w_3
  2. クロンス-シャーダー法で追加されるノードと重み:

    • x4K,x5K,x6Kx_4^\text{K}, x_5^\text{K}, x_6^\text{K}
    • w4K,w5K,w6Kw_4^\text{K}, w_5^\text{K}, w_6^\text{K}

最終的な積分値:

abf(x)dxi=13wif(xi)+j=46wjKf(xjK)\int_{a}^{b} f(x)dx \approx \sum_{i=1}^{3} w_i f(x_i) + \sum_{j=4}^{6} w_j^\text{K} f(x_j^\text{K})
  • 計算量の増加:
    • 追加の評価点が必要であり、元のガウス求積法に比べて計算量が増加します。
  • 適用範囲:
    • 標準区間 [1,1][-1, 1] での適用が基本ですが、任意の区間には線形変換で対応可能。
  • 精度向上の理由:
    • 追加評価点がガウス多項式のルートに基づかないため、元のガウス求積法と異なる角度から誤差補正を行います。

  • 要約
    • 中点公式は、積分区間内の中点での関数値を用いて積分値を近似する手法。
  • 摘要分野
    • 基本的な数値積分で使用され、他の積分公式の基礎ともなる。
  • 特徴
    • 台形公式よりも若干高精度で、簡単に実装可能。
  • 精度
    • O(h2)\mathcal{O}(h^2)
  • 制限
    • 区間分割の細かさ(hh)に依存するため、高精度には多くの分割が必要。
  • 用途
    • 簡易的な数値積分。
    • 他の高次積分法(例: シンプソンの法則)の基礎構成要素。

中点公式は、積分区間 [a,b][a, b]nn 個の等間隔の区間に分割し、各区間の中点での関数値を用いて近似します:

abf(x)dxhi=1nf(xi)\int_{a}^{b} f(x)dx \approx h \sum_{i=1}^{n} f\left(x_i^*\right)

ここで:

  • h=banh = \frac{b-a}{n}: 各区間の幅。
  • xi=a+(i12)hx_i^* = a + \left(i - \frac{1}{2}\right)h: 各区間の中点。

関数 f(x)=x2f(x) = x^2 を区間 [0,1][0, 1]n=2n = 2 に分割して積分するとき:

  1. h=102=0.5h = \frac{1-0}{2} = 0.5
  2. 中点は x1=0.25x_1^* = 0.25, x2=0.75x_2^* = 0.75
  3. 中点公式を用いると: 01x2dx0.5[f(0.25)+f(0.75)]=0.5[0.252+0.752]=0.34375\int_{0}^{1} x^2 dx \approx 0.5 \left[f(0.25) + f(0.75)\right] = 0.5 \left[0.25^2 + 0.75^2\right] = 0.34375
  • 中点公式は台形公式と比較されることが多く、関数の形状に応じて精度が異なる。
  • 台形公式との違い:
    • 台形公式は端点での関数値を使用。
    • 中点公式は中点での関数値を使用。

  • 要約
    • ブールの法則は、数値積分において4次補間多項式を使用する手法で、高精度を持つ公式の一つです。
  • 摘要分野
    • 高精度が求められる積分計算。
  • 特徴
    • 積分区間を4等分して各点での関数値を用いる。
    • シンプソンの法則を拡張した形で、さらに高い精度を実現。
  • 精度
    • O(h6)\mathcal{O}(h^6)
  • 制限
    • 分割数 nn は4の倍数である必要がある。
  • 用途
    • 科学計算やエンジニアリング分野での精密積分。
    • 理論解析での高精度な積分値を求める場合。
abf(x)dx2h45[7f(x0)+32f(x1)+12f(x2)+32f(x3)+7f(x4)]\int_{a}^{b} f(x)dx \approx \frac{2h}{45} \left[ 7f(x_0) + 32f(x_1) + 12f(x_2) + 32f(x_3) + 7f(x_4) \right]

ここで:

  • h=ba4h = \frac{b-a}{4}: 各小区間の幅。
  • x0,x1,x2,x3,x4x_0, x_1, x_2, x_3, x_4: 各等分点の座標。

関数 f(x)=x2f(x) = x^2 を区間 [0,1][0, 1] でブールの法則を用いて積分する場合:

  1. h=104=0.25h = \frac{1-0}{4} = 0.25
  2. 等分点は x0=0x_0 = 0, x1=0.25x_1 = 0.25, x2=0.5x_2 = 0.5, x3=0.75x_3 = 0.75, x4=1x_4 = 1
  3. ブールの法則を用いると: 01x2dx20.2545[7f(0)+32f(0.25)+12f(0.5)+32f(0.75)+7f(1)]\int_{0}^{1} x^2 dx \approx \frac{2 \cdot 0.25}{45} \left[ 7f(0) + 32f(0.25) + 12f(0.5) + 32f(0.75) + 7f(1) \right] =0.545[7(02)+32(0.252)+12(0.52)+32(0.752)+7(12)]= \frac{0.5}{45} \left[ 7(0^2) + 32(0.25^2) + 12(0.5^2) + 32(0.75^2) + 7(1^2) \right] =0.545[0+32(0.0625)+12(0.25)+32(0.5625)+7(1)]=0.333333...= \frac{0.5}{45} \left[ 0 + 32(0.0625) + 12(0.25) + 32(0.5625) + 7(1) \right] = 0.333333...
  • シンプソンの法則との比較:
    • シンプソンの法則は2次補間を用いるのに対し、ブールの法則は4次補間を用いるため、精度が高い。
  • 適用条件:
    • 分割数 nn は4の倍数でなければならない。

モンテカルロ積分(Monte Carlo Integration)

Section titled “モンテカルロ積分(Monte Carlo Integration)”
  • 要約
    • モンテカルロ積分は、ランダムなサンプル点を使用して積分を近似する確率的手法。
  • 摘要分野
    • 高次元積分や解析的に解けない積分問題。
  • 特徴
    • 高次元積分に適しているが、低次元積分では他の手法よりも非効率な場合がある。
  • 精度
    • O(1/N)\mathcal{O}(1/\sqrt{N})NN はサンプル数)
  • 制限
    • サンプル数 NN を多くすると計算コストが増大。
    • 結果が確率的であるため、再現性が必要な場合は工夫が必要。
  • 用途
    • 高次元積分(例: 物理シミュレーション、金融工学)。
    • 複雑な領域における積分。
    • 不確実性のあるモデルの期待値計算。

モンテカルロ積分は次の式で表されます:

abf(x)dxbaNi=1Nf(xi)\int_{a}^{b} f(x)dx \approx \frac{b-a}{N} \sum_{i=1}^{N} f(x_i)

ここで:

  • NN: サンプル数。
  • xix_i: 区間 [a,b][a, b] 内のランダムなサンプル点。

関数 f(x)=x2f(x) = x^2 を区間 [0,1][0, 1] でモンテカルロ積分を用いて計算する場合:

  1. サンプル数を N=5N = 5 とする。
  2. 区間 [0,1][0, 1] 内でランダムな点を生成:x1=0.1,x2=0.4,x3=0.7,x4=0.8,x5=0.9x_1 = 0.1, x_2 = 0.4, x_3 = 0.7, x_4 = 0.8, x_5 = 0.9
  3. モンテカルロ積分の近似値: 01x2dx105i=15f(xi)\int_{0}^{1} x^2 dx \approx \frac{1-0}{5} \sum_{i=1}^{5} f(x_i) =15[f(0.1)+f(0.4)+f(0.7)+f(0.8)+f(0.9)]= \frac{1}{5} \left[ f(0.1) + f(0.4) + f(0.7) + f(0.8) + f(0.9) \right] =15[0.12+0.42+0.72+0.82+0.92]=0.285= \frac{1}{5} \left[ 0.1^2 + 0.4^2 + 0.7^2 + 0.8^2 + 0.9^2 \right] = 0.285
  • 高次元積分への適用:
    • モンテカルロ積分は、次元数が増えても精度が大きく低下しない特性を持つため、次元の呪いを回避しやすい。
  • ランダムサンプルの重要性:
    • 一様分布以外に基づくサンプリング(例: 重要度サンプリング)を導入することで、効率を向上させることが可能。

ファンデルコルプ法(Van der Corput Sequence Method)

Section titled “ファンデルコルプ法(Van der Corput Sequence Method)”
  • 要約
    • ファンデルコルプ法は、低分散列(Low-Discrepancy Sequence)を使用して、モンテカルロ積分の精度を向上させる手法です。
  • 摘要分野
    • 高次元積分や確率的手法を使用する場面。
  • 特徴
    • 通常のモンテカルロ法よりも分散が小さい。
    • ランダム性ではなく規則性を持った列を使用。
  • 精度
    • O(1/N)\mathcal{O}(1/N)NN はサンプル数)。通常のモンテカルロ法(O(1/N)\mathcal{O}(1/\sqrt{N}))よりも優れた収束性を持つ。
  • 制限
    • 次元が増えると列の構造によって効果が低下する可能性がある。
  • 用途
    • 高次元積分(例: モンテカルロ法を使用する金融工学や物理シミュレーション)。

ファンデルコルプ法を用いた積分の基本式は以下の通りです:

abf(x)dxbaNi=1Nf(xi)\int_{a}^{b} f(x)dx \approx \frac{b-a}{N} \sum_{i=1}^{N} f(x_i)

ここで:

  • xix_i: ファンデルコルプ列によって生成されたサンプル点。
  • NN: サンプル数。
  • a,ba, b: 積分範囲。
ファンデルコルプ列の生成方法
Section titled “ファンデルコルプ列の生成方法”

ファンデルコルプ列は、以下の手順で生成されます:

  1. 自然数 nnbb 進数表記に変換。
  2. その桁を逆順に並べ、小数として解釈。

例:

  • n=1n=1: 0.10.1b=10b=10
  • n=2n=2: 0.20.2
  • n=3n=3: 0.30.3

生成された列は規則的であり、一様分布に従います。

関数 f(x)=x2f(x) = x^2 を区間 [0,1][0, 1] でファンデルコルプ法を用いて近似する場合:

  1. ファンデルコルプ列を生成(例: x1=0.1,x2=0.2,x3=0.3,x_1=0.1, x_2=0.2, x_3=0.3, \ldots)。
  2. モンテカルロ法と同様に評価: 01x2dx1Ni=1Nf(xi)\int_{0}^{1} x^2 dx \approx \frac{1}{N} \sum_{i=1}^{N} f(x_i)
  3. 通常のモンテカルロ法よりも分散が小さい結果が得られる。
  • 低分散列の特長:
    • ファンデルコルプ列は低次元で効果的ですが、高次元では他の低分散列(例: ハルツァ列やソボル列)が推奨される場合があります。
  • 利点と制限:
    • 規則性を持つため再現性が高い。
    • 次元数やサンプル数に応じた最適化が必要。

スプライン補間法(Spline Interpolation)

Section titled “スプライン補間法(Spline Interpolation)”
  • 要約
    • スプライン補間法は、連続性と滑らかさを保ちながらデータポイントを結ぶ補間法です。
    • 各区間で多項式を使用し、全体として滑らかな曲線を生成します。
  • 摘要分野
    • 数値積分、データのスムージング、曲線近似。
  • 特徴
    • データポイント間で局所的な多項式を使用するため、過剰な振動を抑制できる。
    • 線形補間や高次多項式補間と比べて安定性と滑らかさに優れる。
  • 精度
    • 各区間で三次スプラインを使用した場合、O(h4)\mathcal{O}(h^4) の精度を持つ。
  • 制限
    • 計算コストが増大する(特に大規模なデータセットの場合)。
  • 用途
    • 数値積分の前処理としての関数補間。
    • データサンプル間の滑らかな関数生成。
    • 物理シミュレーションやCADなどの幾何学的モデリング。

スプライン補間法は、以下の形で各区間 [xi,xi+1][x_i, x_{i+1}] に三次多項式を適用します:

Si(x)=ai+bi(xxi)+ci(xxi)2+di(xxi)3S_i(x) = a_i + b_i(x - x_i) + c_i(x - x_i)^2 + d_i(x - x_i)^3

ここで:

  • ai,bi,ci,dia_i, b_i, c_i, d_i: 各区間のスプライン係数。
  • Si(x)S_i(x): 区間 [xi,xi+1][x_i, x_{i+1}] におけるスプライン関数。

スプライン係数は、以下の条件を満たすように決定されます:

  1. 連続性:

    • 各区間の接続点で、Si(x)S_i(x) が連続。
  2. 滑らかさ:

    • Si(x)S_i(x) の1次および2次微分も接続点で連続。
  3. 境界条件:

    • 自然境界条件(2次微分が端点でゼロ)や固定境界条件(1次微分が端点で特定値)を適用。

これらの条件を連立方程式として解くことで、スプライン係数が計算されます。

スプライン補間法では、データポイント間を滑らかにつなぐためにスプライン曲線を使用します。スプライン曲線は次のような特長を持ちます:

  • 三次スプライン: 各区間に三次多項式を使用し、滑らかさと安定性を確保。
  • 局所性: 各スプライン関数は隣接するデータポイントのみに依存するため、大規模データセットで効率的。
  • 物理的適用: 実際の物理現象(例: 物体の軌跡や流体の形状)の近似に用いられる。

データポイント (x0,y0),(x1,y1),(x2,y2)(x_0, y_0), (x_1, y_1), (x_2, y_2) を三次スプラインで補間する場合:

  1. 各区間 [x0,x1][x_0, x_1], [x1,x2][x_1, x_2] に対して三次多項式 S0(x),S1(x)S_0(x), S_1(x) を定義。
  2. 連続性と滑らかさの条件を適用:
    • S0(x1)=S1(x1)S_0(x_1) = S_1(x_1)(関数値が連続)。
    • S0(x1)=S1(x1)S_0'(x_1) = S_1'(x_1)(1次微分が連続)。
    • S0(x1)=S1(x1)S_0''(x_1) = S_1''(x_1)(2次微分が連続)。
  3. 境界条件を適用(例: S0(x0)=0S_0''(x_0) = 0, S1(x2)=0S_1''(x_2) = 0)。

これらの条件を用いて、ai,bi,ci,dia_i, b_i, c_i, d_i を計算。

  • 高次スプライン:

    • 三次スプラインが最も一般的だが、場合によっては高次スプラインを使用して精度を向上可能。
  • 計算コスト:

    • 大規模データセットではスプライン係数の計算がボトルネックとなるため、効率的なアルゴリズム(例: トリディアゴナル行列の解法)が必要。
  • 適用範囲:

    • 補間だけでなく、微分や積分計算にもスプライン曲線が利用可能。

ロバートソン法(Robertson’s Rule)

Section titled “ロバートソン法(Robertson’s Rule)”
  • 要約
    • ロバートソン法は、リチャードソン補外を利用して台形法やその他の基本的な数値積分法の精度を向上させる手法。
  • 摘要分野
    • 高精度が求められる数値積分計算。
  • 特徴
    • 台形法のような単純な公式を補外により高精度化。
    • 精度の向上を段階的に行うため、計算コストが調整可能。
  • 精度
    • O(h2m)\mathcal{O}(h^{2m})mm は補外のステップ数)。
  • 制限
    • リチャードソン補外に依存するため、初期値が適切でない場合は収束しない可能性がある。
  • 用途
    • 科学計算や工学における精密積分。
    • 台形法やシンプソン法を基にした高精度の積分。

ロバートソン法は以下の漸化式に基づきます:

R(k,0)=TkR(k, 0) = T_k R(k,j)=4jR(k,j1)R(k1,j1)4j1R(k, j) = \frac{4^j R(k, j-1) - R(k-1, j-1)}{4^j - 1}

ここで:

  • R(k,j)R(k, j): ロバートソン法による補外後の積分値。
  • TkT_k: 台形法による分割数 2k2^k の積分値。
  • jj: 補外のステップ数。
  1. 初期値計算:

    • 台形法を用いて TkT_k を計算。
  2. リチャードソン補外:

    • 初期値 TkT_k を補外公式に適用して高次精度の値を得る。
  3. 再帰的計算:

    • 漸化式を用いて補外を繰り返し、目標精度に到達するまで繰り返す。

区間 [0,1][0, 1]f(x)=sin(x)f(x) = \sin(x) の積分を計算する場合:

  1. 初期値:

    R(0,0)=T0=12[f(0)+f(1)]R(0, 0) = T_0 = \frac{1}{2} [f(0) + f(1)]
  2. 台形法による追加計算:

    R(1,0)=14[f(0)+2f(0.5)+f(1)]R(1, 0) = \frac{1}{4} [f(0) + 2f(0.5) + f(1)]
  3. リチャードソン補外:

    R(1,1)=4R(1,0)R(0,0)41R(1, 1) = \frac{4 \cdot R(1, 0) - R(0, 0)}{4 - 1}
  • リチャードソン補外の特長:

    • 低精度な初期値を補正し、計算コストを抑えつつ高精度を達成。
  • 応用範囲:

    • 初期値として台形法以外の数値積分法も適用可能(例: シンプソン法)。
  • 計算コスト:

    • 補外ステップが増えると計算量が増大するため、収束条件の監視が必要。

台形積分の複合化(Composite Trapezoidal Rule)

Section titled “台形積分の複合化(Composite Trapezoidal Rule)”
  • 要約
    • 台形法の精度を向上させるため、積分区間を複数の小区間に分割し、それぞれに台形法を適用する手法。
  • 摘要分野
    • 基本的な数値積分で、簡易かつ精度向上を必要とする場面。
  • 特徴
    • 各区間での誤差が独立して累積されるため、分割数を増やすことで精度が向上。
    • 実装が簡単で、他の積分法(例: シンプソン法)の基礎となる。
  • 精度
    • O(h2)\mathcal{O}(h^2)hh は区間幅)。
  • 制限
    • 分割数が少ない場合、精度が低い。
  • 用途
    • 数値解析の初学者向けの簡易手法。
    • 工学や物理での簡易計算。

積分区間 [a,b][a, b]nn 個の等間隔区間に分割し、各区間で台形法を適用します。

abf(x)dxh2[f(a)+2i=1n1f(xi)+f(b)]\int_{a}^{b} f(x)dx \approx \frac{h}{2} \left[ f(a) + 2 \sum_{i=1}^{n-1} f(x_i) + f(b) \right]

ここで:

  • h=banh = \frac{b-a}{n}: 各区間の幅。
  • xi=a+ihx_i = a + i \cdot h: 各分割点。
  1. 初期化:

    • 区間幅 h=banh = \frac{b-a}{n} を計算。
    • 区間の分割点 xix_i を計算。
  2. 台形法の適用:

    • 端点 f(a)f(a)f(b)f(b) を計算。
    • 内部点 f(xi)f(x_i) の値を計算し、合計を求める。
  3. 合成:

    • 台形法の公式に従い、積分値を計算。

関数 f(x)=x2f(x) = x^2 を区間 [0,1][0, 1]n=4n=4 に分割して積分を求める場合:

  1. 分割点:x0=0x_0 = 0, x1=0.25x_1 = 0.25, x2=0.5x_2 = 0.5, x3=0.75x_3 = 0.75, x4=1x_4 = 1
  2. 関数値:f(0)=0f(0) = 0, f(0.25)=0.0625f(0.25) = 0.0625, f(0.5)=0.25f(0.5) = 0.25, f(0.75)=0.5625f(0.75) = 0.5625, f(1)=1f(1) = 1
  3. 計算: 01x2dx0.252[0+2(0.0625+0.25+0.5625)+1]=0.34375\int_{0}^{1} x^2 dx \approx \frac{0.25}{2} \left[ 0 + 2(0.0625 + 0.25 + 0.5625) + 1 \right] = 0.34375
  • 分割数と誤差:
    • 分割数 nn を増やすことで、台形法単独よりも誤差が大幅に減少。
  • 適用範囲:
    • 滑らかな関数に対して適切に動作するが、不連続点を含む関数では精度低下の可能性がある。
  • 効率的な計算:
    • 内部点の計算をループで効率化可能。

Legendre多項式は直交多項式の一種で、以下の微分方程式の解として定義されます:

(1x2)Pn(x)2xPn(x)+n(n+1)Pn(x)=0,(1 - x^2)P_n''(x) - 2xP_n'(x) + n(n+1)P_n(x) = 0,

ここで Pn(x)P_n(x)nn 次のLegendre多項式を表します。

最初の数項は次のように表されます:

  • P0(x)=1P_0(x) = 1
  • P1(x)=xP_1(x) = x
  • P2(x)=12(3x21)P_2(x) = \frac{1}{2}(3x^2 - 1)
  • P3(x)=12(5x33x)P_3(x) = \frac{1}{2}(5x^3 - 3x)

nn 次のLegendre多項式 Pn(x)P_n(x)nn 個の実数根を持ちます。これらの根は、区間 [1,1][-1, 1] に等間隔で配置されており、数値積分(ガウス求積法)で使用されます。


二分法(Bisection Method)の数学的説明

Section titled “二分法(Bisection Method)の数学的説明”

関数 f(x)f(x) が連続であり、区間 [a,b][a, b] において f(a)f(b)<0f(a)f(b) < 0 が成り立つとします。この場合、f(x)=0f(x) = 0 の解が区間 [a,b][a, b] に存在することが保証されます。

  1. 初期区間を設定します:[a,b][a, b]
  2. 中点を計算します: c=a+b2.c = \frac{a + b}{2}.
  3. 解の存在する半区間を選択します:
    • f(a)f(c)<0f(a)f(c) < 0 の場合、解は [a,c][a, c] に存在。
    • それ以外の場合、解は [c,b][c, b] に存在。
  4. 新しい区間で手順を繰り返します。
  5. 収束条件:区間の幅 ba|b - a| が所定の許容誤差以下になるまで反復します。

二分法の収束速度は遅く、収束回数は以下で見積もられます:

Nlog(ba/ϵ)log(2),N \geq \frac{\log(|b - a|/\epsilon)}{\log(2)},

ここで ϵ\epsilon は許容誤差を表します。


逆放物線補間(Inverse Parabolic Interpolation)の数学的説明

Section titled “逆放物線補間(Inverse Parabolic Interpolation)の数学的説明”

逆放物線補間では、既知の3点 (x1,f(x1)),(x2,f(x2)),(x3,f(x3))(x_1, f(x_1)), (x_2, f(x_2)), (x_3, f(x_3)) を用いて、関数 f(x)f(x) を放物線で近似し、その根を求めます。

放物線 p(x)p(x) は次のように構築されます:

p(x)=α(xx2)(xx3)+β(xx1)(xx3)+γ(xx1)(xx2),p(x) = \alpha (x - x_2)(x - x_3) + \beta (x - x_1)(x - x_3) + \gamma (x - x_1)(x - x_2),

ここで:

  • α,β,γ\alpha, \beta, \gamma は補間点の値 f(x1),f(x2),f(x3)f(x_1), f(x_2), f(x_3) から次のように計算されます。 α=f(x1)(x1x2)(x1x3),β=f(x2)(x2x1)(x2x3),γ=f(x3)(x3x1)(x3x2).\alpha = \frac{f(x_1)}{(x_1 - x_2)(x_1 - x_3)}, \beta = \frac{f(x_2)}{(x_2 - x_1)(x_2 - x_3)}, \gamma = \frac{f(x_3)}{(x_3 - x_1)(x_3 - x_2)}.

放物線 p(x)p(x) の根は次のように計算します:

x=x1f(x2)f(x3)(f(x1)f(x2))(f(x1)f(x3))+x2f(x1)f(x3)(f(x2)f(x1))(f(x2)f(x3))+x3f(x1)f(x2)(f(x3)f(x1))(f(x3)f(x2)).x = \frac{x_1f(x_2)f(x_3)}{(f(x_1) - f(x_2))(f(x_1) - f(x_3))} + \frac{x_2f(x_1)f(x_3)}{(f(x_2) - f(x_1))(f(x_2) - f(x_3))} + \frac{x_3f(x_1)f(x_2)}{(f(x_3) - f(x_1))(f(x_3) - f(x_2))}.

逆放物線補間はブレント法で用いられ、二分法や線形補間と組み合わせることで、高速かつ安定なルートファインディングを実現します。