数值积分

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

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

欧拉积分

欧拉积分法是这些方法中精度最低的,但也是最容易编程实现的一种方法。欧拉法的表达式可以写成下面的形式:
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的权重较大。因此,采用龙格-库塔方法得到的斜率较欧拉法更精确,数值积分结果较真实积分误差更小。

转至:https://www.jianshu.com/p/70d43e507623

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值