9 微分方程
9.1 微分方程建模
微分方程建模
數學模型常利用方程式描述變量間的關係,尤其是微分方程 式,即包含變量與變量導數的方程式。
我們會希望以觀察現在某些數值變化的方式來預測某些數值、
物體未來的行為。
一開始我們先來看看一些微分方程的例子。
族群成長模型
族群成長模型
一個最常見的族群成長模型,我們會假設其數量成長的速度 會正比於其整體數量。
畢竟族群規模越大,擴張的速度也就越快,在理想的環境條 件下(若無空間限制、養分充足、更高級掠食者存在),這 是一個很合理的假設。
我們定義這個模型中的變數:
t = 時間變數
P = 族群個體數 (應變數)
族群成長模型
族群數量的成長率便是 P 對 t 的變化率 dP/dt 。於是我們的 假設,成長率正比於族群數量,便可以寫成如下的方程式一
其中 k 為一常數。
被稱為微分方程式是因為這個方程式包含了一個變數跟它的 導數(微分)。
族群成長模型
建立模型以後,我們可以來試驗看看結果。
首先我們不考慮族群數量低於 0 的情況,也就是 P(t) > 0 。 從方程式來看,若 k > 0 ,則恆有 P
(t) > 0 。也就是說族群
數量會持續的增加。而同時,當 P(t) 增加,從方程式也能夠 知道 P(t) 會跟著增加。另外,方程式的解函數,滿足其導數恰好是自己的常數倍。
而我們已經在前面的章節知道,指數函數滿足這樣的特性。
族群成長模型
例如我們假設 P(t) = Cekt ,此時則有 P(t) = C(kekt) = k(Cekt) = kP(t) 為方程式一的解。
在給定不同的常數 C 時,我們可得到 一整組的解 P(t) = Cekt 如右圖所示。
dP/dt = kP 的解
族群成長模型
不過族群數量只會有非負值,因此我們只考慮 C > 0 的情況。
下圖二為初始狀態為不同 C 值時的解。
幾組不同的 P(t) = Cekt , C > 0, t 0
族群成長模型
當 t = 0,有 P(0) = Cek(0) = C
,
因此事實上 C 的值便是族 群數量的初始值 P(0) 。方程式一是在理想情況下模擬族群生長的模型。但我們還需 要考慮更實際的情況,例如生長環境有資源上的限制。
許多生物族群初成長是的確是如指數函數般的成長,但當它 越接近環境可容納的數量上限時,它生長的速度便會減慢。
(也或者是初始時便超過上限,便會開始減少。)
族群成長模型
為了在模型中考慮這樣的趨勢,我們便新加入兩個假設:
當 P 很小時,成長率與 P 大小成正比。
當 P 超過環境容納量 M 時,族群數量會遞減 於是我們稍為改動了一下方程式,考量 了上面兩個假設
族群成長模型
觀察方程式二,若 P 跟 M 相比很小,則 P/M 的值接近 0 。 則此時 dP/dt
kP ,若 P > M ,1 – P/M 為負,因此 dP/dt< 0 。
方程式二稱為 logistic differential equation 是由荷蘭生物學 家 Pierre-François Verhulst 在 1840 年左右所提出。
首先我們可以觀察出 P(t) = 0 以及 P(t) = M 都是常數解,當 P = 0 或者 P = M 時,我們可以看出 P’(t) = 0 。因此這樣的 解我們稱為平衡態解 (equilibrium solutions) 。
族群成長模型
其次,若初始值 P(0) 落在 0 跟 M 之間,此時方程式二右邊 為正,可知 dP/dt > 0 ,因此 P(t) 為遞增。但若當 P > M 時,
則 1 – P/M 為負,因此 dP/dt < 0 ,且 P(t) 為遞減。
另外,在兩種情況下,當 P 遞增或者遞減接近 M 時,變化 率 dP/dt 也就接近 0 ,因此數量也會趨於平緩。
族群成長模型
可預期的,我們可以知道解的圖形大概如下圖三所示。
另外可注意到,解的圖形會遠離平衡態 P = 0 ,但會往 P = M 接近。
Logistic 方程式的解
平衡態解
彈簧的振動模型
彈簧振動模型
我們先來看一個物理實驗的例子。我們考慮一個質量為 m 的 物體,繫在垂直的彈簧上如下圖四
圖四
平衡點
彈簧振動模型
虎克定律告訴我們:彈簧伸長量正比於其所受重力,也等於 使其恢復的拉彈力。
彈簧恢復力 F = –kx
其中 k 為正的常數 (稱為彈性係數) 。若我們可以忽略其他的 外在阻力,則由牛頓第二運動定律,可以得到
彈簧振動模型
這是一個二階微分方程 (second-order differential equation) 的例子,因為裡面包含了二階導數。
同樣,我們可以先從方程式來分析解的特性,稍微改寫方程 式三可以得到如下的形式
也就是說, x 的二階導數是他自己的倍數(但是是負的倍 數)。但實際上我們還沒有實際看過滿足這樣方程式的解的 經驗,我們將在下節中做進一步的討論。
一般的微分方程式
一般的微分方程
這裡我們便開始實際的定義「微分方程」:包含一個未知函 數與其各階導數的方程式。
微分方程的階數即最高次的導數是幾階導數所決定。在前面 的例子中我們有三個微分方程式,方程式一、二均為一階微 分方程,方程式三為二階微分方程。
附帶說明,前述三個方程式的函數都是應變量與時間的關係,
一般的微分方程式便不一定以時間為變數。
一般的微分方程
舉例說明我們考慮這樣的微分方程 y
= xy 其中 y = y(x) 是未知函數。函數 f(x) 稱為解,表示 y = f(x) 可以代入並且滿足方程式,
也就是說,若 f(x) 是方程式四的解,表示 f
(x) = xf(x)
滿足,在 x 的某個區間上。
一般的微分方程
當我們要「解」一個微分方程,是希望我們可以找出滿足一 個問題所有條件的、任意的、有可能的解。
例如給定這樣的方程式
y = x3
由微積分基本定理,這個方程式的所有形式的解,可以由不 定積分所給出
其中 C 任一常數。
範例一
以常數 c 為參數,證明這一組函數
是微分方程式 的解。
範例一 – 解
直接對 y 微分:
範例一 / 解
代入微分方程式的右式
cont’d
一般的微分方程
當然在應用微分方程式時,我們通常不會希望得到一組這麼 多個解,而是針對問題,需要更多的條件來決定某一個解。
許多情況下,一個常見的條件便是在特定的點滿足某個值:
y(t0) = y0.
例如方程式一,我們可以決定在 t = 0 時, P(0) 的初始值,
便可以決定解函數中的常數 C 。
這樣的條件稱為初始條件(initial condition),而一個微分方程 式若附帶有初始條件的話,我們會稱為初始值問題(initial- value problem) 。