給定 初始值問題(Initial Value Problem, IVP) \[ y'(t) = f(t,y(t)),\;\;\;\; y(0) = y_0 \] 一般而言,上述 一般的 IVP 問題並沒有辦法寫下解析解,但我們可以退而求其次詢問是否有合適的數值方法求解上述 初始值問題,最為基本的想法是利用所謂的 Forward Euler method: Forward Euler Method: \[ y_{n+1} = y_n + h \cdot f(t_n, y_n) \]其中 $t_n = n h$。令終止時間 $T$ 在 $n$ 步之後到達,則 $T = n h$。 Comment: 1. 上式中 $h$ 稱為 迭代步長 (step size) 。 2. $t_{n+1} = t_n + h$ 3. 儘管 Forward Euler Method 非常簡便,但其數值誤差相當大,以下我們看個實際例子: Example: 考慮 IVP $ y'=t-y $ 且 $ y(0) = 0 $ , (a) 試求解上述 IVP (b) 現在令 $h := 0.1$ ,試求用 Forward Euler Method 求解 $y_2$ (Note: $y_2 = y(t_2) = y(2h)$) (c) 比較 (a) 與 (b) Solution (a): 首先改寫原式: \[y'\left( t \right) = - y\left( t \right) + t \]由上式可知此為線性常係數 ODE 其解可立即求得 \[\begin{array}{l} y\left( t \right) = {e^{ - 1}}y\left( 0 \right) + \int_0^t {{e^{ - 1\left( {t - s} \right)}}sds} \\ \Rightarrow y\left( t \right) = 0 + \underbrace {{e^{ - t}}\int_0^t {{e^s}sds} }_{ = {e^{ - t}}\left( {{e^t}(t - 1) + 1} \right)}\\ \Rightarrow y\left( t \right) = (t -
If you can’t solve a problem, then there is an easier problem you can solve: find it. -George Polya