seegongsik
工業数学 わかりやすく

オイラー法 わかりやすく

微分方程式の傾きに沿って直線で一歩ずつ、歩みが大きいと誤差が爆発する

微分方程式は、各点でどちらへどれだけ速く変わるか、つまり傾きを教えてくれます。方向場の、あの傾きの地図です。ほとんどの微分方程式には、きれいな公式の解がありません。オイラーの方法は単純です。いまの点で傾きを読み、その方向へ短く一歩 (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 は、この考えを四回使って、より高い精度を出します。面積を断片で測る数値積分にも、同じ原理があります。

実際に使うオイラー法は、微分方程式の傾きを受け取って直線で一歩 (h) ずつ進み、解曲線を折れ線で描く方法です。一歩の誤差は 1 次テイラーの剰余項で、それが歩みごとに積み重なって大域誤差になります。オイラーは 1 次精度なので、誤差は h に比例します。歩幅を縮めるとより正確ですが、計算は増えます。h·k が大きすぎると、減衰の問題でも数値解が発散します。精度とは別の、安定の問題です。よりよい RK2、RK4 は途中の傾きをさらに測って、より高い次数の精度を出します。方向場が傾きの地図を渡せば、オイラーがその上を歩き、テイラーがその一歩の誤差を説明します。
← 工業数学 わかりやすく
このページがお役に立ったなら支援する