閆述濤
(中國傳媒大學理工學部,北京 100024)
在一階微分方程的求解當中,穩(wěn)定性是一個必須要考慮的問題,它對最終初值問題的解產(chǎn)生直接的影響。求解微分方程的初值問題所用的Euler法、后退的Euler法、梯形法、Runge-Kutta法,通常采用差分格式進行求解,這樣就不可避免的在計算的過程中產(chǎn)生誤差,隨著計算過程的不斷進行,誤差可能就會逐漸累積,影響最后結(jié)果的精確性。因此我們要對數(shù)值解法進行穩(wěn)定性分析。
當在第i個點上xi的yi值存在值為δ的誤差時,如果在第i個點后的各個點xj(j>i)上的值yi存在的誤差都小于等于δ,則稱該方法是穩(wěn)定的。
穩(wěn)定性不僅跟算法相關(guān),也跟步長的大小相關(guān),同時也跟方程中的函數(shù)f(x,y)相關(guān),為了簡便分析過程,構(gòu)建一個模型方程,利用解模型方程的穩(wěn)定性來確定方法的穩(wěn)定性。
設(shè)模型方程為
y′=λy
(1)
其中λ為復數(shù)。同時為保證微分方程本身的穩(wěn)定性,我們假設(shè)Re(λ)<0。對方程y進行局部線性化變換,例如在區(qū)間(a,b)上,方程可以改寫為
(2)
省略高階項,再次進行變換,就可得到(1)式。
Euler法的公式為yn+1=yn+hf(xn,yn),h是步長,我們現(xiàn)在通過模型方程來考慮Euler法的穩(wěn)定性。我們有
(3)
合并之后有
yn+1=yn+hλyn
(4)
εn+1=(1+hλ)εn
(5)
要保證方程是穩(wěn)定的,就要求誤差是不增長的,即
(6)
整理得-2 后退Euler法,其計算公式為yn+1=yn+hf(xn+1,yn+1)(7),將模型方程帶入公式,我們有 (8) Runge-Kutta法有很多不同形式的計算公式,我們在這取最常用的四級四階Runge-Kutta公式,它的計算公式為 (11) 將模型方程帶入(11)中,我們有 可得,Runge-Kutta公式的穩(wěn)定區(qū)域為(-2.785,0) 計算方法表達式穩(wěn)定區(qū)間Euler法1+hλ(-2,0)后退Euler法11-hλ(-∞,0)梯形法1+hλ21-hλ2(-∞,0)四級四階Runge-Kutta法1+hλ+(hλ)22+(hλ)36+(hλ)424(-2.785,0) 由對比我們可以清楚的看到,四種常見的微分方程求解方法當中,后退Euler法和梯形法的穩(wěn)定性較好,并且隱式方法比顯示方法在穩(wěn)定性方面要好。 Euler法、后退Euler法、梯形法以及四級四階Runge-Kutta法都是微分方程的最常見的求解方法,四種方法的收斂性、穩(wěn)定區(qū)間不同,因此在求解方程時,可以依據(jù)不同的方程結(jié)構(gòu)選擇合適的求解方法。4 后退Euler法的穩(wěn)定性分析
5 梯形法的穩(wěn)定性分析
6 Runge-Kutta法的穩(wěn)定性分析
7 四種方法的穩(wěn)定性對照
8 總結(jié)