数値計算 誤差 刻み幅
このまとまりの方法は、一つの約束で束ねられます。誤差はおよそ C かける歩幅の p 乗、つまり error≈C·hᵖ です。ここで p はその方法の次数です。オイラーは 1 次、RK2 は 2 次、RK4 とシンプソンは 4 次です。対数と対数を軸に誤差と歩幅 h を打つと直線になり、その傾きが次数 p です。次数=傾き。歩幅を半分にすると、p 次の誤差は 2 の p 乗倍に縮みます。4 次の方法なら 16 倍です。h を果てしなく縮めれば終わり、ではありません。小さすぎると丸め誤差が床から湧き、陽的な方法は安定の限界を越えると爆発します。歩数は 1/h に比例して増え、計算費用が大きくなります。精度と費用のあいだの釣り合いが、数値解析が実際に選ぶ場所です。
横軸は log h、縦軸は log(誤差)です。error=C·hᵖ の両辺に対数を取ると直線になり、その傾きがちょうど次数 p です。三本の直線は、青い 1 次、橙色の 2 次、緑の 4 次です。ボタンで一つの次数を強調し、h のスライダーで直線上の点を動かします。同じだけ h を縮めても、4 次の線の点ははるかに急に下ります。次数が高いほど、同じ労力で誤差がより速く落ちます。この一枚が、まとまり全体の地図です。
次数だけを見れば、h を 0 へ送ると誤差も 0 になりそうです。現実は違います。全体の誤差は、打ち切り誤差 C·h² に丸め誤差 ε/h を足したものです。h を縮めると第一項は下り、第二項は上がります。だから曲線は U 字の谷を描きます。h のスライダーを谷の左端まで引くと、点は赤に変わり、丸めの床にぶつかって誤差が再び大きくなります。無限に精密な計算はありません。谷の底が、その機械の出せる最善です。
精度だけが壁ではありません。減衰 y'=−ky に k=5 を入れ、陽的オイラーで解きます。上の帯が歩幅の軸です。緑の区域は安定して正確、赤の区域は不安定です。境界は h = 2/k = 0.4 です。スライダーの点を緑の中で動かすと、小さいほど真の解に張り付きます。0.4 を越えて赤へ行くと、精度とは無関係に数値解は符号を跳ねながら爆発します。短い歩幅は精密さだけではなく、発散を止める線でもあります。
四つの方法を一つの平面に集めます。Euler(1 次)と RK2(2 次)、RK4(4 次)、シンプソン(4 次)の誤差直線がいっしょに描かれます。ボタンで方法を選ぶとその直線が強調され、h のスライダーがすべての直線上の点をいっしょに動かします。大きな h では差は小さいですが、h を縮めるほど高次の方法がより正確になります。同じ 4 次でもシンプソンの直線が RK4 より少し下なのは、係数 C が小さいからです。次数が傾きを決め、係数が高さを決めます。
最後は実務の綱引きです。二本の棒が見えます。誤差 = C·h² は h を縮めると小さくなり、費用、つまり歩数 ∝ 1/h は h を縮めると大きくなります。下の曲線は両者を足した総損失です。h のスライダーを両端へ引くと、一方は誤差が大きすぎ、反対は費用が大きすぎます。真ん中のどこかにいちばんよい場所があります。点が緑に変わるその場所が、精密さと費用をともに満たす歩幅です。両端の点は橙色のままです。まとまり全体が指していた結論が、この場所です。