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)
\]
的解。

此法即為積分因子法。


沒有留言:

張貼留言

[人工智慧] 本地端 DeepSeek R1 快速安裝:以 Macbook Pro M4 Chip為例

最近火熱的 DeepSeek R1 模型由於採用了 distill 技術,可以大幅降低計算成本,使得一般人有機會在自家筆電上跑性能逼近 Open AI ChatGPT o1的大語言模型。本文簡單介紹一步安裝在 Macbook Pro 的方法以及使用方法,以下測試採用 Macboo...