4/03/2010

[微分方程] 積分因子法求解線性 ODE

這次要介紹的是一個重要的方法求解 基本線性微分方程(Ordinary Differential Equation, ODE)。亦即所謂的 積分因子法 (Integration Factor Method)

想法:透過構造出積分因子 (Integrating Faction) 使得我們可以透過 微分鏈鎖律(chain rule) 將 微分方程 改寫為 兩個函數的乘積取導數 的形式以方便求解。

首先考慮一個 線性ODE 具有如下形式 (如果可以湊成如下形式則即可使用 積分因子法進行求解)
\[
y'(t) + a(t) y(t) = g(t) \ \ \ \ (*)
\]解:

定義積分因子:
\[
e^{\int_0^t a(s)ds}
\] 對 $(*)$ 兩邊同乘積分因子我們得到
\[\begin{array}{l}
y'(t) \cdot {e^{\int_0^t a (s)ds}} + y(t)a(t) \cdot {e^{\int_0^t a (s)ds}} = g(t) \cdot {e^{\int_0^t a (s)ds}}\\
 \Rightarrow \frac{d}{{dt}}\left( {y(t) \cdot {e^{\int_0^t a (s)ds}}} \right) = g(t) \cdot {e^{\int_0^t a (s)ds}}
\end{array}
\]
對兩邊同取積分可得
\[\begin{array}{l}
\int_0^t {\frac{d}{{dt}}\left( {y(t) \cdot {e^{\int_0^t a (s)ds}}} \right)} ds = \int_0^t {g(t) \cdot {e^{\int_0^t a (s)ds}}} ds\\
 \Rightarrow y(t) \cdot {e^{\int_0^t a (s)ds}} - y\left( 0 \right) = \int_0^t {g(t) \cdot {e^{\int_0^t a (s)ds}}} ds\\
 \Rightarrow y(t) = y\left( 0 \right){e^{ - \int_0^t a (s)ds}} + {e^{ - \int_0^t a (s)ds}} \cdot \left( {\int_0^t {g(t) \cdot {e^{\int_0^t a (s)ds}}} ds} \right) \ \ \ \ (\star)
\end{array}\]
現在我們得到了一個解,故此需回頭確認 其確實為滿足 ODE $(*)$的解。故對其微分,由chain rule我們得到
\[\begin{array}{l}
y'(t) =  - a\left( t \right)y\left( 0 \right){e^{ - \int_0^t a (s)ds}} + \left( { - a\left( t \right)} \right){e^{ - \int_0^t a (s)ds}} \cdot \left( {\int_0^t {g(t) \cdot {e^{\int_0^t a (s)ds}}} ds} \right)\\
 \ \ \ \ \ \ \ \ \ \  + {e^{ - \int_0^t a (s)ds}} \cdot \left( {g(t) \cdot {e^{\int_0^t a (s)ds}}} \right)\\
 \Rightarrow y'(t) =  - a\left( t \right)y\left( t \right) + g(t)
\end{array}\]
故 $(\star)$確實為我們 的 線性ODE
\[
y'(t) + a(t) y(t) = g(t)
\]
的解。

此法即為積分因子法。


沒有留言:

張貼留言

[最佳化] C^2 函數一階逼近的餘項積分表示

令 $f: \mathbb{R}^m \to \mathbb{R}$ 為 $C^2$-函數。對 $f$ 在 $y$ 附近使用一階泰勒展開: \[ T_y(x) := f(y) + \nabla f(y)^\top (x - y) \] 則其餘項 $R(x,y)$ 訂為 $$R(...