オイラー法 わかりやすく
微分方程式は、各点でどちらへどれだけ速く変わるか、つまり傾きを教えてくれます。方向場の、あの傾きの地図です。ほとんどの微分方程式には、きれいな公式の解がありません。オイラーの方法は単純です。いまの点で傾きを読み、その方向へ短く一歩 (h) まっすぐに進み、新しい点でまた傾きを読んで、もう一歩進みます。これを繰り返すと、解曲線が折れ線として描かれます。歩幅が短いほど真の解に近づきますが、歩数が増えて計算も増えます。精度と費用の綱引きです。この一行が、天気予報、ゲームの物理、ロケットの軌道まで、ほとんどすべてのシミュレーションの出発点です。図のスライダーが、その歩幅を選びます。
灰色の斜線が方向場です。各点で微分方程式が定める傾きです。ここでは y'=y、自分の値に比例して育つ式なので、上へ行くほど斜線は急です。オイラーは開始点で斜線に沿って直線で一歩、着いた点でまた斜線を読んでもう一歩、こうして折れ線を描きます。真の解は灰色の曲線 ex です。歩幅 h を縮めると点が密になり、折れ線が曲線に張り付きます。h を大きくすると点は減り、曲線の下へ垂れます。直線が、曲線の上へ曲がる様子についていけないからです。
同じ式の終点だけを見ます。灰色の点は真値 e³≈20.1、金色の点はオイラーが着いた値です。二つの間の橙色の棒が、積み上がった大域誤差です。h のスライダーを大きくすると、棒と数がすぐに跳ね上がります。これが打ち切り誤差の爆発です。一歩ごとに直線が曲線から少しそれる小さな誤差が積み重なり、終点で大きな差になります。h を半分にすると、誤差もおよそ半分になります。オイラーは 1 次精度なので、誤差が h に比例するからです。棒の下の帯がいっぱいになるほど、危険の合図です。
今回の式は y'=cos x、真の解は sin x です。振動する解なので、オイラーの弱点がよく出ます。大きな h では、金色の折れ線が灰色の sin 曲線より山を膨らませ、位相が少し遅れます。振動を一周期、二周期と追うほど、ずれが積み重なります。h を縮めると二つの曲線はだんだん重なります。同じ方法でも、解の性質によって誤差の出方が違います。滑らかに育つ解より、速く曲がって振動する解のほうが、短い歩幅をより必要とします。
今度はより厄介な場合です。式は y'=−ky、真の解は 0 へ穏やかに落ち着く減衰です。オイラーは一歩ごとに y に (1−hk) を掛けます。h·k が 2 を超えると、この倍率の絶対値が 1 より大きくなり、真の解は 0 へ行くのに数値解は符号を跳ねながら大きくなります。赤く爆発します。1 と 2 の間なら橙色で振動しながら落ち着き、1 より小さければ緑でおとなしく減衰します。これは精度の問題ではなく、安定の問題です。歩幅を縮めることは、精密さだけではなく、発散を止める安全装置でもあります。硬い (stiff) 方程式で特に重要です。
より小さい歩幅ではなく、よりよい歩幅もあります。オイラーは出発点の傾きだけを信じて直進します。RK2、つまり中点法は、まず半分だけ進んで中間の傾きをもう一度測り、その傾きで完全な一歩を踏みます。計算は二倍ですが、精度が上がります。金色のオイラーと青の RK2 を同じ h で比べると、青が真の解 ex にはるかに張り付きます。オイラーの誤差は h に比例する 1 次で、RK2 は h² に比例する 2 次なので、歩幅を半分にすると誤差は 1/4 になります。実務の標準である RK4 は、この考えを四回使って、より高い精度を出します。面積を断片で測る数値積分にも、同じ原理があります。