数值积分

2018-09-29  本文已影响266人  TonnyYan

数值积分法是求定积分的近似值的数值方法。即用被积函数的有限个抽样值的离散或加权平均近似值代替定积分的值,是一种递推的方法。

数值积分法也是计算机仿真模拟中常用的一种方法。在已知函数的微分方程时,求解函数下一时刻的值,我们主要有欧拉法、梯形法龙格库塔法

欧拉积分

欧拉积分法是这些方法中精度最低的,但也是最容易编程实现的一种方法。欧拉法的表达式可以写成下面的形式:
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又被称为积分步长或采样周期

龙格-库塔积分

在工程中最常用的是四阶的龙格-库塔积分(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的取值有所变化请注意。

从公式中可以发现,此时的斜率已经变为了四个斜率的加权平均后的结果(这个6也可以理解为是归一化因子,但本质上就是加权后做平均),其中k_2k_3的权重较大。因此,采用龙格-库塔方法得到的斜率较欧拉法更精确,数值积分结果较真实积分误差更小。

上一篇 下一篇

猜你喜欢

热点阅读