Copyright © Cengage Learning. All rights reserved.
9 微分方程式
9.2 方向場與歐拉法
方向場與歐拉法
很不幸的是,若給定任意的微分方程式,我們通常沒辦法解 或者給出解的實際表示式。
在這一節裡會提到,即使沒辦法解得實際的解函數,我們也 可以利用方程式藉由圖形(方向場)或者數值上的計算(歐拉法) 來得到逼近的解。
方向場
方向場
假設我們想知道以下這個初始值問題的解圖形:
y
= x + y y(0) = 1目前我們仍不知道方程式解的函數或者公式是什麼,我們怎 麼從方程式來描述解的行為?
前面章節中我們曾有這樣的經驗,例如族群成長模型中 P’(t) = k P(t)
我們可以從觀察方程式,得知 P’ 是否為遞增或者遞減,來 預測短時間內的行為。
方向場
在這個例子中,方程式 y
= x + y 告訴我們若有解,則在解 的圖形上的 (x,y) 點,解的函數圖形在該點的斜率必定要等 於 x 與 y 的座標值相加的和,如下圖所示圖一
y = x + y 的某個解函數曲線
在 (x
1,y
1) 的斜率 為 x
1+y
1在 (x
2,y
2)
的斜率
為 x
2+y
2方向場
由初始條件我們知道解函數必定會通過 (0, 1) ,而從方程式 我們知道解函數曲線在此點的斜率為 0 + 1 = 1 。因此在這 個點附近,一小部分的解會很靠近通過 (0, 1) ,以 1 為斜率 的直線,如下圖所示
圖二
從 (0, 1) 附近開始的解函數曲線
在 (0, 1) 的斜率為
0 + 1 = 1
方向場
作為描述解函數曲線的方向指引,我們在 x-y 平面上的點 (x,y) 都劃上直線段,其斜率均為 x + y。
這樣的圖形我們稱為方向場 (direction field) ,如下圖三所示
y = x + y 的方向場
方向場
利用方程式我們可以繪製出平面上的各個位置的「解的方 向」,例如在 (1, 2) 上,斜率為1 + 2 = 3 。
方向場可以提供我們對解函數曲線走向的趨勢。當我們觀察 解函數若通過某個點,我們便可以透過方向場得知函數接下 來變化的方向。
現在我們便可以從 (0,1) 開始,藉由 方向場刻劃出小部分函數的圖形,
再慢慢沿著方向場擴張,試圖逼進 真正的解圖形,如右圖四。
圖四
經過 (0, 1) 的解函數圖形
方向場
注意到我們在刻劃曲線時,就是大致上按照著方向場的方向 移動,在極小部分的線段看起來像是平行在周遭的方向場線 段。
若假設我們有這樣的一階微分方程
y
= F(x, y)其中 F(x,y) 式給定的 x, y 雙變數函數表示式。
此時方程式便給了我們線索:解的函數曲線在 (x,y) 點上的 斜率為F(x,y) 。我們可以繪製在 x-y 平面上通過若干點 (x,y) 以 F(x,y) 為斜率的短直線,此時我們便可以得到這個微分方 程式的方向場。
範例一
(a) 劃出方程式 y
= x2
+ y2
– 1 的方向場(b) 利用 (a) 的結果劃出該方程式通過原點的解函數曲線
解:
(a) 我們先挑出幾點來計算 y’ ,如下:
範例一 / 解
接著開始描繪出 0 附近 x-y 平面的方向場
cont’d
圖五
(b) 從原點開始,沿著方向場的短線方向畫出曲線如下。
並左右延伸得到整條曲線。
範例一 / 解
圖六
cont’d
方向場
在介紹歐拉法之前,我們再舉一個物理上的例子。
下圖是一個簡單的迴路,包含了一個電源 E ,電阻 R 以及 電感 L 。假設電源產生的電動勢為 E 伏特,產生的電流大小 為 I(t) 安培。
圖九
開關
方向場
同時假設電阻為 R 歐姆,電感為 L 亨利
。
由歐姆定律,電阻兩邊的電位差為 RI 。而電感兩邊的電位 差為 L(dI/dt)。整個迴路的電位差剛好要等於電動勢 E 。於 是我們有
這是一個 I(t) 的一階微分方程式。
方向場
觀察到方程式表示式中,沒有時間變數 t 直接參與其中,電 流的變化主要只跟電流與電壓本身有關。這類的方程式
y
= f(y)方程表示式中只與 y, y’ 有關,與變數 t 無關的方程式,我們 稱為自守方程式 (autonomous equation) 。
這種方程式的特性便是其方向場只跟 y 座標有關。
也因此若我們知道一個自守型方程的解,由於方向場只跟 y 座標有關,所以將解函數圖形左右平移後得到的圖形,所代 表的函數也還會是解。
歐拉法
歐拉法
有了方向場之後,除了圖形上的解之外,我們更進一步想要 得到數值上的結果。
在上一節中,我們應用方向場在初始值問題:
y
= x + y y(0) =1方程式告訴我們在初始點 (0,1) ,有 y
(0) = 0 + 1 = 1 ,因此
解曲線在 (0,1) 時的斜率為 1 。於是我們在 x = 0 的附近,有一個初步的線性逼近:
L(x) = x + 1
19 19
歐拉法
如下圖所示,我們利用在 (0,1) 的切線來逼近解函數曲線。
歐拉法的想法便是類似利用方向場決定函數曲線的方向一樣,
第一步利用切線逼近解函數曲線,延伸後到了新的點,便藉 由方向場得到新的切線方向,再做延伸。依此類推。
歐拉法的第一步逼近
解曲線
歐拉法
下圖十三是當我們從 (0,1) 沿著切線方向延伸,但在 x = 0.5 處停止。(從 x = 0 走到 x = 0.5 的設定距離,我們稱為步距 stepsize)
由於 L(0.5) = 1.5 ,我們有 y(0.5) 1.5 。因此 L(x) 從 x = 0 到 x = 0.5 的部分,就是歐拉法的第一步逼近。接著我們以 (0.5, 1.5) 做為新的起始點。
以 0.5 為步距的歐拉法逼近
歐拉法
接著由方程式 y
(0.5) = 0.5 + 1.5 = 2 ,於是第二步我們可以
用y = L
2(x) = 1.5 + 2(x
– 0.5) = 2x + 0.5 在 x > 0.5 的地方,做線性逼近。另外當我們縮小步距為 0.25 ,第二步以後的逼 近也較步距為 0.5 時更 貼近解函數圖形,如右 圖所示。
圖十四
以 0.25 為步距的歐拉法逼近解
歐拉法
一般來說,歐拉法是這樣做的:
從給定初始值出發,沿著方向場延伸。
接著在給定步距之處停止,沿著方向場的新方向再延伸。
再依此類推。
歐拉法實際上並沒有辦法得到精確的解,但可以縮小步距得 到足夠逼近的解。
歐拉法
以下為前幾張使用不同步距歐拉法得到的圖形,與實際解圖 形的比較。
對一個一階初始值問題 y
= F(x, y), y(x0
) = y0
,我們的目標 便是算初經過每個步距之後得到的 y 值。假設步距為 h ,則 我們便是要利用方程式與線性逼近計算在x
1
= x0
+ h , x2
= x1
+ h 等等點上的逼近值。歐拉法
接下來,我們進行實際的計算。
由方程式,在 (x
0
, y0
) 的斜率為 y
= F(x0
, y0
) ,因此下圖十 五劃出了在 x = x1
的逼近值:y 1
= y0
+ hF(x0
, y0
)同樣下一個在 x = x
2
的逼近值為y 2
= y1
+ hF(x1
, y1
)因此我們得到一個迭代式
y
n = yn–1 + hF(xn–1, yn–1) 圖十五斜率 F(x
0,y
0)
歐拉法
範例三
利用歐拉法,在設定步距為 0.1 的情況下,記算以下初始值 問題的逼近值
y
= x + yy(0) = 1
解:考率 h = 0.1 , x
0
= 0 , y0
= 1 ,以及 F(x, y) = x + y。我們 直接計算y 1
= y0
+ hF(x0
, y0
) = 1 + 0.1(0 + 1) = 1.1y 2
= y1
+ hF(x1
, y1
) = 1.1 + 0.1(0.1 + 1.1) = 1.22y 3
= y2
+ hF(x2
, y2
) = 1.22 + 0.1(0.2 + 1.22) = 1.362範例三 / 解
持續計算我們可以得到下列表的數值
cont’d
歐拉法
若我們想得到更精確的結果,我們可以考慮縮小步距。
注意到歐拉法的逼近值在步距縮小時,似乎會收斂到某些值。
步距 y(0.5) 的逼近值 y(1) 的逼近值
歐拉法
下圖畫出了歐拉法在步距分別為 0.5, 0.25, 0.1, 0.05, 0.02, 0.01, 0.005 時的逼近曲線。
我們可以看出來當步距縮小,曲線會越來越往上方移動貼近 解函數曲線。
圖十六
歐拉法得到的解逼近