オイラー法ビジュアライザー

ステップ幅を変えて、大域誤差が蓄積していく様子を観察しよう

インタラクティブシミュレーションを読み込んでいます...

刻み幅を半分にしても、誤差は半分にしかならない 🖖

オイラー法では、接線に沿って yn+1 = yn + h · f(xn, yn) と進みます。一回のステップで生じる誤差は、およそ解の二階導関数の h²/2 倍。これは小さな値です。しかし、hを小さくするとステップ数は増え、一定の区間では 1/h 回になります。そのため、各ステップの h² の誤差が積み重なり、全体の誤差は h² ではなく h に比例します。これが一次精度の意味です。正しい小数桁をさらに一桁得るには、計算量が10倍かかります。

傾きに従って一歩ずつ進む 🖖

オイラー法は、最も素朴で筋の通った近似法です。今いる点から、微分方程式が示す曲線の向きへ短い距離 h だけ進み、そこで傾きを求め直します。厳密解の曲線は絶えず曲がりますが、直線で進む一歩はその曲がりを考慮しないため、少しずつずれていきます。しかも、上に凸の曲線では下側へ、下に凸の曲線では上側へと、ずれる向きは一貫しています。ここにある七つの設定も、すべて同じ性質を示します。パネルには h と h/2 における終点誤差が表示されるので、その比を直接確かめられます。

オイラー法に潜む数 e 🖖

方程式 y' = y に初期値 y = 1 でオイラー法を適用すると、各ステップは単に (1 + h) を掛けるだけになります。区間 [0, 1] を刻み幅 h = 1/N で N 歩進むと、結果はちょうど (1 + 1/N)N — まさに複利の式になります。N を大きくするとこれは e ≈ 2.71828 に収束し、オイラー法の粗い直線的なステップが、連続複利と指数関数の定義を静かに再現しているのです。

オイラー法 — 刻み幅が、答えに意味があるかどうかを決める

あなたはどの刻み幅の型か

オイラー法は、いま立っている場所の傾きを取り、h だけ直進してからまた周りを見ます:yₙ₊₁ = yₙ + h·f(xₙ, yₙ)。うまくいかない原因はすべて h にあります。十分小さければ誤差は比例して縮み、大きすぎれば答えは振動するか発散します。そしてどんな h も、画面の数字が落ち着いたまま解が無限へ走り去る事態からは守ってくれません。

妥当な刻み — 誤差はあるが小さい yn+1 = yn + h f(xn, yn)
刻みが大きすぎる — 答えが真値のまわりで振動する |1 + hλ| > 1
細かい刻み — 支払うのは手間であって精度ではない ε ∝ h
厳密解は無限へ逃げる — そしてオイラー法は気づかない y′ = y² ⇒ y → ∞, x < ∞

01

妥当な刻み — 誤差はあるが小さい

わかっていること: 滑らかで安定な方程式に、安定限界より十分小さい刻み幅。数値解は厳密解をたどり、わずかに遅れる。

刻み: yn+1 = yn + h f(xn, yn)

計算例: y′ = x − y、y(0) = 1、h = 0.2 → x = 2 でオイラーは 1.2147、厳密値は 1.2707、誤差 0.056

この型を開く: 線形・安定
妥当な刻み — 誤差はあるが小さい. 直線の刻みは真の曲線の近くにとどまり、つねに同じ側へずれる。 滑らかで安定な方程式に、安定限界より十分小さい刻み幅。数値解は厳密解をたどり、わずかに遅れる。
直線の刻みは真の曲線の近くにとどまり、つねに同じ側へずれる。

02

刻みが大きすぎる — 答えが真値のまわりで振動する

わかっていること: 減衰する方程式で、h が「1 歩で平衡を通り越す」点を超えている。厳密解は決して符号を変えないが、数値解は変える。

刻み: |1 + hλ| > 1

計算例: y′ = −2y、h = 0.6 → 1、次に −0.2、0.04、−0.008:最初の 1 歩ですでに 0 を飛び越すが、x = 0.6 の厳密値は 0.301

この型を開く: 減衰・粗いh
刻みが大きすぎる — 答えが真値のまわりで振動する. 1 歩が軸を飛び越すので数値の符号が反転する。真の解は決して反転しない。 減衰する方程式で、h が「1 歩で平衡を通り越す」点を超えている。厳密解は決して符号を変えないが、数値解は変える。
1 歩が軸を飛び越すので数値の符号が反転する。真の解は決して反転しない。

03

細かい刻み — 支払うのは手間であって精度ではない

わかっていること: 同じ方程式をずっと小さな刻みで解く。誤差は h に比例して減り、歩数は反比例して増える。

刻み: ε ∝ h

計算例: y′ = −2y の x = 0.6:h = 0.1 なら誤差 0.039、h = 0.05 なら 0.019 — 刻み半分、誤差半分、歩数 2 倍

この型を開く: 減衰・細かいh
細かい刻み — 支払うのは手間であって精度ではない. 刻みを半分にすると厳密な曲線との差も半分になり、歩数は倍になる。 同じ方程式をずっと小さな刻みで解く。誤差は h に比例して減り、歩数は反比例して増える。
刻みを半分にすると厳密な曲線との差も半分になり、歩数は倍になる。

04

厳密解は無限へ逃げる — そしてオイラー法は気づかない

わかっていること: 真の解が有限の x で垂直漸近線をもつ非線形方程式。数値解はそこを素通りし、その後も普通の数を返し続ける。

刻み: y′ = y² ⇒ y → ∞, x < ∞

計算例: y′ = y²、y(0) = 0.18 は x = 1/0.18 = 5.56 で発散する。それでも h = 0.18 のオイラー法は x = 4.32 で 0.68 という落ち着いた値を報告する。真の値はすでに 0.81

この型を開く: 二次関数的増大
厳密解は無限へ逃げる — そしてオイラー法は気づかない. 真の曲線は有限の x で垂直になるが、数値解は平然とその前を通り過ぎる。 真の解が有限の x で垂直漸近線をもつ非線形方程式。数値解はそこを素通りし、その後も普通の数を返し続ける。
真の曲線は有限の x で垂直になるが、数値解は平然とその前を通り過ぎる。
参考文献 (1)
  • The method, as Euler set it out: L. Euler, Institutiones calculi integralis, Volume I. Academia Imperialis Scientiarum, Saint Petersburg, 1768.
よくある誤解

ステップ数を増やすだけでは精度は保証されません。曲率に対してhがまだ大きすぎる場合、オイラー法には偏りが残ります。

全プロセスの詳細解説

  1. y′ = x − y の x = 8 におけるオイラー法の解 5 ステップ

    1ステップも計算を進めることなく、x = 8 におけるオイラー法の解を閉形式で書き下し、次になぜ h を半減させても誤差が半減しないのかを説明せよ。 これは (0, 1) から開始し h = 0.2、40 ステップで行う y′ = x − y の問題である。

    1. オイラー法が目指している真の解から始める。この方程式は線形であり、x − 1 は特殊解であり、初期条件によって減衰項の係数は 2 に決定される。

    2. この方程式に対するオイラー法の公式は、複雑な一般の非線形表現ではなく、アフィン漸化式である。そして、微分方程式を解いた同じ x − 1 が、各ステップにおいてこの漸化式を正確に満たす。

    3. したがって、誤差のすべては残りの部分に存在し、その残りの部分は公比 1 − h の等比数列である。ステップ計算を一切行わなくても、0.8 を40回掛け合わせることでパネルの終点に到達する。

    4. ここで2つの減衰部分を並べて比較する。真の項は e−x であり、オイラー法の項は (1 − h)x/h である。どちらも x の指数関数であり、δ はそれらの変化率の差全体である。その級数は xh/2 から始まり、この先頭の h こそが「1次」という言葉のすべての内容である。

    5. 誤差とは、2つの指数関数を引き算したときに残るものである。1次精度では、h を半分にすると誤差も半分になると予測されるため、比率は 2 になるはずである。

    解答

    オイラー法による終点での値は、真の値 7.000671 に対して 7.000266 であり、大域誤差は 0.000405 である。ステップ幅を半分にしても誤差は 0.000234 にしか下がらず、1次精度が約束する比率 2 に対して現実は 1.731285 となる。その約束が破られているわけではなく、まだ有効な領域に達していないのである。そのためには δ ≈ xh/2 が十分に小さい必要があり、x = 8、h = 0.2 ではその値は 0.8 となるため、誤差の1次の項は依然として後続のすべての項と競合している。観察される比率を 1.9933 まで引き上げるには h = 0.005(同じ8単位の区間で1600ステップ)が必要となる。閉形式はより鋭い解釈を明らかにする。オイラー法はこの解を近似しているのではなく、別の方程式を正確に解いており、e−x の代わりに等比減衰 0.8n が入っているのである。そして 0.8 はパネルに表示されている乗数 1 + hλ そのものである。その減衰部分だけで測定すると、オイラー法の誤差は 60% に達する。大域誤差がごく小さく見えるのは、誤っている部分が x が 8 に達するまでにほぼ減衰しきっているからにすぎない。

学習の道すじ

三つの数値計算法と、それぞれの限界

例題

  • 線形・安定 - ここでオイラー近似を閉じた形で表せる唯一の方程式です。答えは 7 + 2(0.8)⁴⁰。逐次計算なしで、末尾の桁まで誤差を検算できます。
  • 減衰・粗いh - h = 0.6 ではオイラー法の増幅因子が -0.2 になるため、近似値の符号はステップごとに反転します。厳密解は常に正のままです。
  • ロジスティック・中程度のh - 0.2 から始まるロジスティック成長です。傾きは増加して最大となり、その後しだいに0へ近づきます。曲線が下向きに曲がっても接線は曲がらないため、厳密値 0.9987 に対してオイラー法は 0.9993 と過大評価します。
  • 減衰・細かいh - 同じ減衰方程式で h = 0.05 とすると、増幅因子は 0.9 になり、符号の反転は止まります。ステップ数を12倍にすることで、精度だけでなく安定性も得られます。
  • 冷却曲線 - 90度のコーヒーが、20度の室温へ近づきながら冷めていきます。計算終了時、厳密値は 20.12 ですが、オイラー法では 20.06。70度低下した後の差は 0.06度です。
  • 正弦波外力 - y' = cos(x) の右辺には y がありません。したがって、ここでのオイラー法は余弦関数の左リーマン和そのものです。厳密な積分値が 0.970 であるのに対し、近似値は 1.079 になります。
  • 二次関数的増大 - y' = y² の解は x = 5.56 で無限大へ発散します。パネルは 4.32 で止まり、厳密値 0.81 に対して 0.68 と表示します。穏やかに見えるこの区間こそ、近似を最も信用しにくいところです。