1 數值解法相關公式
1.1 爲什麼要研究數值解法?
所謂數值解法,就是設法將常微分方程離散化,建立差分方程,給出解在一些離散點上的近似值.
1.2 問題 7.1 一階常微分方程初值問題的一般形式
{y′=f(x,y),a⩽x⩽by(a)=α
其中
f(x,y) 是已知函數,
α 爲給定的初值.
若函數
f(x,y) 在區域
{a⩽x⩽b,−∞<y<+∞} 上連續且關於
y 滿足
Lipschitz 條件
|f(x,y)−f(x,y¯)|⩽L|y−y¯|,∀y,y¯
其中
L>0 爲
Lipschitz 常數,則初值問題(7.1)有唯一解。
1.3 構造數值解法的基本思想
假設初值問題(7.1)的解y=y(x) 唯一存在且足夠光滑.對求解區域[a,b] 做剖分
a=x0<x1<x2<...<xn<...<xN=b
其中剖分點
xn=a+nh,n=0,1,...,N ,
h 稱爲
剖分步長,數值解法就是求精確解
y(x) 在剖分節點
xn 上的近似值
yn≈y(xn),n=1,2,...,N .
我們採用數值積分方法來建立差分公式.
在區間
[xn,xn+1] 上對方程(7.1)做積分,則有
y(xn+1)−y(xn)=∫xn+1xnf(x,y(x))dx
對右側分別應用左矩形公式、梯形公式和中矩形公式,可分別得到
Euler 公式、梯形差分公式和
Euler 中點公式。
1.4 Euler 公式
{yn+1=yn+hf(xn,yn)y0=α,n=0,1,2,...,N−1
1.5 梯形差分公式
⎧⎩⎨yn+1=yn+h2[f(xn,yn)+f(xn+1,yn+1)]y0=α,n=0,1,2,...,N−1
1.6 Euler 中點公式(雙步Euler 公式)
{yn+1=yn−1+2hf(xn,yn)y0=α,n=0,1,2,...,N−1
在
Euler 公式和梯形公式中,爲求得
yn+1 ,只需用到前一步的值
yn ,這種差分方法稱爲
單步法,這是一種自開始方法.
Euler 中點公式則不然, 計算
yn+1 時需用到前兩步的值
yn ,
yn−1 ,稱其爲
兩步方法,兩步以上的方法統稱爲
多步法.在
Euler 公式和
Euler 中點公式中,需要計算的
yn+1 已被顯式表示出來,稱這類差分公式爲
顯式公式,而梯形公式中,需要計算的
yn+1 隱含在等式兩側,稱其爲
隱式公式.隱式公式中,每次計算
yn+1 都需解方程,要比顯式公式需要更多的計算量,但其計算穩定性較好.
1.7 改進的Euler 方法
從數值積分的角度來看,梯形差分公式計算數值解的精度要比Euler 公式好,但它屬於隱式公式,不便於計算.實際上,常將Euler 公式與梯形差分公式結合使用,通常採用只迭代一次的算法:
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪yn+1=yn+h2(K1+K2)K1=f(xn,yn)K2=f(xn+h,yn+hK1)y0=α,n=0,1,2,...,N−1
2 差分公式的誤差分析
在節點xn+1 的誤差y(xn+1−yn+1) ,不僅與yn+1 這一步計算有關,而且與前n 步計算值yn,yn−1,...,y1 都有關。
爲了簡化誤差分析,着重研究進行一步計算時產生的誤差,即假設yn=y(xn) ,求誤差y(xn+1)−yn+1 ,這時的誤差稱爲局部截斷誤差,它可以反映出差分公式的精度。
如果單步差分公式的局部截斷誤差爲O(hp+1) ,則稱該公式爲p 階方法.這裏p 爲非負整數.顯然,階數越高,方法的精度越高.
研究差分公式階的重要手段是Taylor 展開式,一元函數和二元函數的Taylor 展開式爲:
2.1 Taylor 一元展開式
y(xn+1)=y(xn+h)=y(xn)+y′(xn)h+y′′(xn)2!h2+y′′′(xn)3!h3+O(h4)
其中,
y′(xn)=f(xn,y(xn))=f(xn,yn)=fny′′(xn)=f′(xn,y(xn))=∂fn∂x+∂fn∂yfny′′′(xn)=f′′(xn,y(xn))=∂2fn∂x2+2∂2fn∂x∂yfn+∂2fn∂y2f2n+∂fn∂x∂fn∂y+(∂fn∂y)2fn
2.2 Taylor 二元展開式
f(xn+h,yn+k)=f(xn+yn)+∂f(xn,yn)∂xh+∂f(xn,yn)∂yk+12![∂2f(xn,yn)∂x2h2+2∂2f(xn,yn)∂x∂yhk+∂2f(xn,yn)∂y2k2]+O(h3)
對
Euler 方法,有
yn+1y(xn+1)=yn+hf(xn+yn)=y(xn+h)=y(xn)+y′(xn)h+y′′(xn)2!h2+y′′′(xn)3!h3+O(h4)=yn+f(xn,yn)h+O(h2)
從而
y(xn+1)−yn+1=O(h2) ,所以
Euler 是一階方法。
3 單步方法的收斂性與穩定性
3.1 單步方法的收斂性
對於給定的初值問題
{y′=f(x,y),a⩽x⩽by(a)=α
的單步顯示方法可以統一寫成如下形式:
yn+1=yn+hΦ(xn,yn,h)(7.1)
其中,
Φ(x,y,h) 稱爲
增量函數,對於
Euler 方法,有
Φ(x,y,h)=f(x,y) ,對於改進
Euler 方法,有
Φ(x,y,h)=12[f(x,y)+f(x+h,y+hf(x,y))]
定義7.1 單步法的收斂性
設y(x) 是初值問題(7.1)的解 ,yn 是單步法 (7.1)產生的近似解.如果對任意固定的點xn ,均有
limh→0yn=y(xn)
,則稱
單步法(7.1)是收斂的。
可見,若方法(8.5)是收斂的,則當
h→0 時,整體截斷誤差
en=y(xn)−yn 將趨於零.
定理7.1
設單步方法(7.1)是p⩾1 階方法, 增量函數Φ(x,y,h) 在區域{a⩽x⩽b,−∞<y<+∞,0⩽h⩽h0} 上連續,且關於y滿足Lipschitz 條件,初始近似y0=y(a)=α ,則方法(7.1)是收斂的,且存在與h無關的常數C ,使|y(xn)−yn|⩽Chp
3.2 單步方法的穩定性
定義7.2 單步方法的穩定性
對於初值問題(7.1),取定步長h ,用某個差分方法進行計算時,假設只在一個節點值yn 上產生計算誤差δ ,即計算值yn¯=yn+δ ,如果這個誤差引起以後各節點值ym(m>n) 的變化均不超過δ ,則稱此差分方法是絕對穩定的.討論數值方法的穩定性,通常僅限於典型的試驗方程y′=λy ,其中λ 是複數且Re(λ)<0 .在複平面上,當方法穩定時要求變量λh 的取值範圍稱爲方法的絕對穩定域,它與實軸的交集稱爲絕對穩定區間。
說明:單步顯式方法的穩定性與步長密切相關, 在一種步長下是穩定的差分公式,取大一點步長就可能是不穩定的.收斂性是反映差分公式本身的截斷誤差對數值解的影響;穩定性是反映計算過程中舍入誤差對數值解的影響.只有即收斂又穩定的差分公式纔有實用價值.