前言
這章主要介紹解決常微分方程,微分方程組合和邊值問題的方法。
學習過程
<1>初值問題 initial value problem
常微分方程的一般形式:
方程會因為初值不同有變化。
<2>Lipschitz條件
給出矩形區(qū)域,假設(shè)
在
上連續(xù),且存在一個常量
滿足性質(zhì)
,其中任意
,那么
可以說是在
上滿足
條件。而
也可以叫作
常量。
為了更好的判斷,我們一般使用下面的方法。
在
上定義,如果這里存在常量
使得所有
,則
在
上滿足
條件。
如果滿足
條件且有初值,那么
在子區(qū)間
上有唯一解
。
<3>Euler法
微分方程不總是那么容易求解的,為此,我們會在接下來提出很多方法來求解,其中之一就是Euler法。但是Euler法實際上使用是有限的因為它有很大誤差,但它具有教育意義。
我們提出一個函數(shù)滿足初值問題,即在區(qū)間
下 ,
。在我們無法找出函數(shù)
的情況下,我們可以找出一系列點來逼近函數(shù)。
設(shè),我們將區(qū)間分為
個子區(qū)間,并假設(shè)
,
,
在區(qū)域連續(xù),然后使用泰勒定理,我們可以得到以下公式:
把代入,且
十分小時,二次項可以忽略不計,公式就會變?yōu)椋?br>
遞推下去就是:
這就是Euler法。
我們把微分方程求解的方法叫做微分方法或者是離散變量方法。這些方法都是找出一系列逼近函數(shù)的離散點集。其中一步法有這種形式,
叫做增量函數(shù)。
當使用這種離散變量方法來求解初值問題時,誤差會有兩種來源:離散化,四舍五入。
假設(shè)點集,初值問題有唯一解
。
全局離散誤差:
局部離散誤差:
Euler法中,在滿足以上初值問題條件,且時,有:
最終全局誤差
<4>Heun法
我們使用積分的方法來解決初值問題。一開始有。于是我們利用梯形規(guī)則假設(shè)
。再結(jié)合Euler法。
即Heun法為:
Heun法中,在滿足以上初值問題條件,且時,有:
最終全局誤差
<5>泰勒序列方法
假設(shè),并且
在
上有
階展開:
泰勒序列法中,在滿足以上初值問題條件,且時,有:
最終全局誤差
<6>Runge-Kutta法
在該方法中,我們假設(shè)一個區(qū)間內(nèi)再取出多個點,計算它們的加權(quán)平均斜率。并且使得它們精度和泰勒序列 前幾項一致。這個方法的好處就是不需要計算更高階的導數(shù)。
階通式:
之和為1,
等于
之和。
Runge-Kutta法中,在滿足以上初值問題條件,且時,即4階,有:
最終全局誤差
例子:
RK4:模仿了四階泰勒
RKF45:可以知道步長越小,誤差會越小,但是這會導致大量的計算。因此我們提出了RKF45,它是找到一個恰當步長的程序。在每步中,對解的兩種不同逼近會用來比較,如果兩個解答案很近,則步長是可以接受的。如果兩個解答案準確率不太一致,則繼續(xù)縮小步長。當需要更多有效位數(shù)的解時,則增加步長。
上述的方法都是一步法。
<7>Adams-Bashforth-Moulton 法
該方法是基于積分公式來推的:
在內(nèi)積分。
先使用Adams-Bashforth預(yù)測,在內(nèi)積分:
再用Adams-Moulton矯正,在內(nèi)積分:
其中預(yù)測和矯正的誤差都是。
當需要更精確時,就縮小步長,而縮小步長,就需要新的初始值。
<8>Milne-Simpson法
該方法是基于積分公式來推的:
在內(nèi)積分。
先使用Milne預(yù)測,在內(nèi)積分:
再用Simpson矯正,在內(nèi)積分:
其中預(yù)測和矯正的誤差都是。
<9>微分方程組
在本小節(jié),我們考慮到以下的初值問題:
如果使用Euler法來解決這個問題的話,有:
其中
于是,
分為步長為的
個子區(qū)間后,
遇到更高階的微分方程組時,我們可以設(shè)置多個未知量對應(yīng)不同階的導數(shù),相當于n維求歐拉公式。在這里,龍格庫塔公式也是可以的,一般4階的效果比較好。
<10>邊值問題
<11>初值問題
詞匯學習
modification 修改
trajectory 彈道
conjecture 推測
interpretation 解釋
mesh 網(wǎng)眼
discrete 離散的
increment 增量
predominate 占主導地位
trapezoidal 梯形的
trade-off 交易
elaborate 詳盡的
omit 忽略