線型多段法

線型多段法



線型多段法(Linear multistep method)は、与えられた常微分方程式とその初期値問題を数値的に解くための強力な手法の一つです。

概要



常微分方程式の数値解法では、多くの場合、既知の初期値から出発し、時間の流れに沿って微小な刻み幅で解を逐次的に求めていくアプローチをとります。これにより、時間の経過に伴う解曲線の振る舞いを近似的に追跡します。

計算のステップを進めるにあたり、次の時刻における解の値を求めるために、直前の時刻だけでなく、それ以前の複数の時刻で得られた計算結果を利用する手法を「多段法」と呼びます。特に、過去s個の計算結果を利用する場合、「s段法」あるいは「s次多段法」と呼ばれます。これに対し、直前の時刻の計算結果のみ、あるいは途中で計算された一時的な値のみを利用し、過去の情報を保持しない手法は「単段法(1段法)」と呼ばれ、オイラー法やルンゲ=クッタ法などがこれにあたります。

単段法が過去の情報を限定的にしか活用しないのに対し、多段法、特に線型多段法は、過去の複数のステップで得られた解の値やそこでの導関数の値といった情報を積極的に保持し、それらの情報の線形結合を用いて次のステップの解を計算します。これにより、単段法よりも効率的に高い精度を達成できる場合があります。

定義



一般的な常微分方程式の初期値問題は、`y' = f(t, y)` という形で与えられます。ここで`y'`は`y`の`t`に関する導関数、`f(t, y)`は既知の関数、そして初期条件として `y(t_0) = y_0` が与えられます。

この問題を数値的に解くため、時間を離散的な点 `t_i = t_0 + ih` で考えます(`h`は時間の刻み幅)。そして、これらの時刻での厳密解 `y(t_i)` の近似値 `y_i` を求めます。また、`y_i`に対応する導関数の値として `y_i' = f(t_i, y_i)` を考えます。

線型s段法は、次の時刻 `t_{n+s}` における近似解 `y_{n+s}` を、過去s個の時刻 `t_n, t_{n+1}, ..., t_{n+s-1}` での解の近似値 `y_n, ..., y_{n+s-1}` と、対応する導関数の値 `y_n', ..., y_{n+s-1}'`、そして次の時刻 `t_{n+s}` での導関数値 `y_{n+s}'` を用いて、以下のような線形結合の形で表します。

`y_{n+s} + a_{s-1}y_{n+s-1} + ... + a_0y_n = h(b_s f(t_{n+s}, y_{n+s}) + b_{s-1} f(t_{n+s-1}, y_{n+s-1}) + ... + b_0 f(t_n, y_n))`

ここで、`a_0, ..., a_{s-1}` と `b_0, ..., b_s` はこの手法を定義する係数です。これらの係数は、使用者によって決定されますが、多くは特定の精度条件を満たすように、あるいは解が特定の多項式である場合に厳密解を与えるように選ばれます。多くの係数はゼロになることも一般的です。

特徴



計算開始時の準備


s段法では、計算を進めるために過去s個の計算結果 `y_n, ..., y_{n+s-1}` が必要となります。しかし、初期値問題では通常、最初の値 `y_0` のみが与えられています。したがって、計算を開始するためには、別途、単段法(例えばルンゲ=クッタ法など)を用いて `y_1, y_2, ..., y_{s-1}` の値を計算しておく必要があります。

陽公式と陰公式


線型多段法の式において、次の時刻での導関数値 `f(t_{n+s}, y_{n+s})` に対応する係数 `b_s` がゼロ(`b_s = 0`)である場合、その手法は「陽公式」と呼ばれます。陽公式では、未知数である `y_{n+s}` が式の左辺にのみ現れるため、直接計算によって値を求めることができます。

一方、係数 `b_s` がゼロでない(`b_s ≠ 0`)場合、その手法は「陰公式」と呼ばれます。陰公式では、`y_{n+s}` が式の両辺、特に右辺の `f(t_{n+s}, y_{n+s})` の中に現れるため、`y_{n+s}` を求めるためには一般に非線形方程式を解く必要があります。このため、ニュートン法のような反復的な数値計算法が必要となることが一般的です。

陰公式は陽公式に比べて計算コストが高くなる傾向がありますが、通常、より安定で高い精度が得られるという利点があります。陽公式で得られた `y_{n+s}` の予測値を陰公式に代入して修正計算を行う「予測子・修正子法」も広く用いられています。

収束性


線型多段法は、適切に設計され、出発値を十分な精度で計算していれば、収束性が保証されるものが多く存在します。解法の次数mと安定性に関連して、特定の条件下での収束次数が理論的に示されています(例えば、m次の安定な線型多段法はm次収束することが知られています)。

Dahlquist barrier


線型多段法には、その精度と安定性に関する理論的な限界が存在します。Dahlquist barrierとして知られる定理は、安定なN段法の次数mは、Nが偶数ならN+2以下、Nが奇数ならN+1以下であることを示しており、これより高次の安定な線型N段法は存在しないことを意味します。



簡単な線型多段法の例として、2次のアダムス・バッシュフォース法があります。これは線型2段法であり、次の式で表されます。

`y_{n+2} = y_{n+1} + (3/2)h f(t_{n+1}, y_{n+1}) - (1/2)h f(t_n, y_n)`

この式を見るとわかるように、`y_{n+2}` を計算するためには、過去2点での情報 `y_{n+1}, f(t_{n+1}, y_{n+1}), y_n, f(t_n, y_n)` が必要です。しかし、初期値問題では `y_0` しか与えられていないため、計算を開始するには `y_1` の値が別途必要になります。この `y_1` は、例えば2次のルンゲ=クッタ法のような単段法で計算されるのが一般的です。

線型多段法は、過去の情報を組織的に利用することで、効率的かつ安定した常微分方程式の数値解法を提供する重要な手法です。その設計や応用には、安定性や収束性といった理論的な背景の理解が不可欠となります。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。