數(shù)值積分

數(shù)值積分法是求定積分的近似值的數(shù)值方法。即用被積函數(shù)的有限個采樣值的離散或加權平均近似值代替定積分的值,是一種遞推的方法。

數(shù)值積分法也是計算機仿真模擬中常用的一種方法。在已知函數(shù)的微分方程時,求解函數(shù)下一時刻的值,我們主要有歐拉法、梯形法龍格庫塔法。

歐拉積分

歐拉積分法是這些方法中精度最低的,但也是最容易編程實現(xiàn)的一種方法。歐拉法的表達式可以寫成下面的形式:
y\left( {t_{n + 1}} \right) = \int_{0}^ {t_{n + 1}} {y'\left( t \right)dt}
微分方程:
y'\left( t \right) = f\left( {t,y\left( t \right)} \right)
\Delta t = {t_{n + 1}} - {t_n}
則歐拉積分定義為:
{y_{n + 1}} = {y_n} + \Delta t \cdot f\left( {t_{n},y_n} \right)
假設\Delta ty' \left({t}\right)的值保持不變,即y(t)斜率kf\left( {t_n,y_n} \right),因此歐拉積分又稱為一階近似\Delta t又被稱為積分步長或采樣周期。

龍格-庫塔積分

本質上是采用函數(shù)值f的線性組合來近似代替f泰勒展開后的高階導數(shù)項。在工程中最常用的是四階的龍格-庫塔積分(Runge-Kutta methods),也就是RK4積分,計算方式如下:
同樣設有如下微分方程:
y'\left( t \right) = f\left( {t,y\left( t \right)} \right)
則RK4積分定義為:
{y_{n + 1}} = {y_n} + \frac{{\Delta t}}{6} \cdot \left( {{k_1} + 2{k_2} + 2{k_3} + {k_4}} \right)
其中,{k_1} = f\left( {{t_n},{y_n}} \right),{k_2} = f\left( {{t_n} + \frac{{\Delta t}}{2},{y_n} + \frac{{\Delta t}}{2} \cdot k1} \right),{k_3} = f\left( {{t_n} + \frac{{\Delta t}}{2},{y_n} + \frac{{\Delta t}}{2} \cdot k2} \right),{k_4} = f\left( {{t_n} + {{\Delta t}},{y_n} + {{\Delta t}} \cdot k3} \right) ,y_n的取值有所變化請注意。

從公式中可以發(fā)現(xiàn),此時的斜率已經(jīng)變?yōu)榱?strong>四個斜率的加權平均后的結果(這個6也可以理解為是歸一化因子,但本質上就是加權后做平均),其中k_2、k_3的權重較大。因此,采用龍格-庫塔方法得到的斜率(速度)較歐拉法更精確,數(shù)值積分結果較真實積分誤差更小。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容