JP / EN
Tools / Numerical Analysis

Differential Equation Visualizer

一階常微分方程式を時間方向へ解き、計算法による精度と安定性の違いを可視化します。

Step 1

方程式と計算条件

dy/dt =

変数は t と y。使用可能:+ − * / ^ ( )、pi、e、sin、cos、tan、exp、log、sqrt、abs など。終点に合わせて刻み幅をわずかに調整する場合があります。

プリセット
Guide

搭載した5つの方法

Euler法

現在の傾きだけで次の値を予測する最も基本的な陽解法です。

改良Euler法

区間の始点と予測した終点の傾きを平均して精度を改善します。

4次Runge–Kutta法

1ステップ内で4回傾きを評価し、滑らかな問題で高い精度を得ます。

Backward Euler(BDF1)

次時刻の傾きを使う陰解法です。各ステップの未知数をNewton法で解きます。

Gear 2次法(BDF2)

直前2点を使う2次の後退差分法です。最初の1ステップはBackward Eulerで開始します。

Equations

計算方法の数式

ここで \(f_n=f(t_n,y_n)\)、\(h=t_{n+1}-t_n\) とします。

Euler法

\[y_{n+1}=y_n+h f(t_n,y_n)\]

改良Euler法(Heun)

\[\tilde y_{n+1}=y_n+h f_n\]\[y_{n+1}=y_n+\frac{h}{2}\{f_n+f(t_{n+1},\tilde y_{n+1})\}\]

4次Runge–Kutta法

\[k_1=f(t_n,y_n),\quad k_2=f(t_n+\tfrac h2,y_n+\tfrac h2k_1)\]\[k_3=f(t_n+\tfrac h2,y_n+\tfrac h2k_2),\quad k_4=f(t_n+h,y_n+hk_3)\]\[y_{n+1}=y_n+\frac h6(k_1+2k_2+2k_3+k_4)\]

Backward Euler(BDF1)

\[y_{n+1}=y_n+h f(t_{n+1},y_{n+1})\]\[R(z)=z-y_n-hf(t_{n+1},z)=0\]

未知の \(z=y_{n+1}\) をNewton法で求めます。

Gear 2次法(BDF2)

\[\frac{3y_{n+1}-4y_n+y_{n-1}}{2h}=f(t_{n+1},y_{n+1})\]\[R(z)=\tfrac32z-2y_n+\tfrac12y_{n-1}-hf(t_{n+1},z)=0\]

最初の1点はBackward Eulerで作り、その後は残差 \(R(z)\) をNewton法で解きます。

初版は一階のスカラー方程式 dy/dt = f(t,y) と固定刻み幅を対象にしています。高精度参考解は細かい刻みのRK4による数値解です。Gear法を含む陰解法はNewton反復を使うため、式や条件によっては収束しません。研究・設計用途では専門ソフトでも再確認してください。