markdown
常微分方程式の数値解法-基本演習md 3ea48fc
exercise/math/differential-equations/numerical-ode-methods.exercise.n.md
常微分方程式の数値解法-基本演習
mathdifferential-equationsexercisenumerical-methodsstability
data/lecture/math/differential-equations/beyond-euler-runge-kutta-and-implicit-methods.lecture.n.md
1演習方針
この演習では、精度、安定性、1 歩ごとの方程式を解く負担を分けて評価する。高次精度であることだけでは、硬い問題を大きい刻みで安定に解けるとは限らない。
2問題 1
4 次 Runge-Kutta 法で
y'=y,\qquad y(0)=1
を刻み幅 h=0.1 で 1 歩だけ計算せよ。
2.1解答例
○
k_1=1,\quad k_2=1.05,\quad k_3=1.0525,\quad k_4=1.10525
なので、
y_1=1+\frac{0.1}{6}(k_1+2k_2+2k_3+k_4)
=1.105170833\ldots
である。
2.2解説
正確値は e^{0.1}=1.105170918\ldots である。1 歩の計算だけでも、区間の途中の傾きを組み合わせる効果を確認できる。
3問題 2
十分に滑らかな問題を 4 次 Runge-Kutta 法で解き、固定した終点で刻み幅 h と h/2 の誤差を比較する。漸近収束域では、その比をどのように予想するか。また、この比較だけで厳密誤差保証になるか。
3.1解答例
○
大域誤差が C h^4+o(h^4) と表される範囲では、h/2 の誤差は h の誤差の約 1/16 になる。ただし、刻みがまだ十分に小さくない場合や、丸め誤差・不安定性が支配的な場合にはこの比は現れない。半減比較だけは厳密な上界の証明ではない。
4問題 3
Forward Euler 法と Backward Euler 法を
y'=-20y
へ刻み幅 h=0.2 で適用し、それぞれの増幅率を求めよ。真の解の減衰と整合するのはどちらか。
4.1解答例
○
Forward Euler 法の増幅率は
1-20h=-3
で、絶対値が 1 を超えるため不安定である。Backward Euler 法の増幅率は
\frac{1}{1+20h}=\frac15
であり、減衰と整合する。
4.2解説
この比較は Backward Euler 法の線型減衰問題に対する安定性を示す。陰的方法ならすべての問題で無条件に安定、という主張ではない。
5問題 4
Backward Euler 法を
y'=-y^3
へ適用する。z=y_{n+1} が満たす方程式を書き、h>0 のとき実数解が一意であることを説明せよ。また、反復計算をどの量で停止すべきか。
5.1解答例
○
方程式は
F(z)=z+h z^3-y_n=0
である。F'(z)=1+3hz^2\ge1 なので F は狭義単調増加であり、さらに z\to\pm\infty で F(z)\to\pm\infty だから、実数解はちょうど 1 つある。真の根を z_* とすると、平均値の定理から |z-z_*|\le|F(z)| である。この問題では残差の許容値が根の誤差も直接抑える。反復は |F(z)| と更新量を確認し、反復上限も設ける。
6問題 5
y'=-1000(y-\cos t)-\sin t,\qquad y(0)=1
を考える。正確解が y(t)=\cos t であることを確認し、Forward Euler 法では解の時間尺度に比べて非常に小さい刻みが必要になる理由を述べよ。方法選択の候補も挙げよ。
6.1解答例
○
y=\cos t を代入すると、両辺はともに -\sin t になる。解からの微小なずれ e は e'=-1000e に従い、Forward Euler 法の増幅率は 1-1000h である。減衰には 0<h<0.002 が必要になる。解 \cos t 自体は時間尺度 1 で変化するのに、陽的方法の安定性が刻みを制限するため、この問題は硬い。候補として Backward Euler 法など、負の実軸方向に広い安定領域をもつ陰的方法を検討する。