一、什么是数值积分?

数值积分是计算定积分数值的方法和理论。在数学分析中,给定函数的定积分的计算不总是可行的。许多定积分不能用已知的积分公式得到精确值。数值积分是利用黎曼积分等数学定义,用数值逼近的方法近似计算给定的定积分值。借助于电子计算设备,数值积分可以快速而有效地计算复杂的积分。

数值积分的必要性源自计算函数的原函数的困难性。利用原函数计算定积分的方法建立在牛顿-莱布尼兹公式之上。然而,原函数可以用初等函数表示的函数为数不多,大部分的可积函数的积分无法用初等函数表示,甚至无法有解析表达式。例如常见的正态分布函数:

正态分布函数

的原函数就无法用初等函数表示。

不仅如此,在很多实际应用中,只能知道积分函数在某些特定点的取值,比如天气测量中的气温、湿度、气压等,医学测量中的血压、浓度等等。另外,积分函数有可能是某个微分方程的解。由于很多微分方程只能数值求解,因此只能知道函数在某些点上的取值。这时是无法用求原函数的方法计算函数的积分的。

另外,当积分区域是曲面、三维形体以至于高维流形时,牛顿-莱布尼兹公式不再适用,只能使用更广泛的格林公式或斯托克斯公式,以转化为较低维数上的积分,但只能用于少数情况。因此,只能使用数值积分计算函数的近似值。


二、数值积分的常见公式

1. 矩形公式

就是常见的黎曼和,在切割小矩形时,可选择使用左矩形或右矩形。

左矩形公式:

左矩形公式

右矩形公式:

右矩形公式

左右矩形公式的区别如下图所示:

左矩形公式

左矩形公式

右矩形公式

右矩形公式

2. 梯形公式 

与矩形公式不同,梯形公式直接将点连接,当Δx→∞时,这看起来更接近于与真实面积:

梯形公式

梯形公式

3. 辛普森公式

辛普森公式是更高级并且在实际中精确度更高的公式,它的核心思想是面积≈ 底边长×平均高度。高度是有权重的,为了计算平均高度,试图将点用抛物线相连,每个抛物线连接三个相邻的点:

辛普森公式

这里直接给出结果。上图从x0到x2的面积可计为:

辛普森公式

总面积:

总面积


三、数值积分的应用

示例1

计算y = 1/x在x = 1和 x = 2之间与x轴围成的面积:

数值积分的应用

下面是不同计算方法的对比。

实际面积:

实际面积

梯形公式:

梯形公式

辛普森公式:

辛普森公式

这个例子中,辛普森公式远比梯形公式精确,实际上,|真实值 – 辛普森值| ≈ (Δx)4,如果Δx = 0.1,辛普森值将非常接近真实值。


示例2

用梯形公式和辛普森公式估算梯形公式和辛普森公式

梯形公式:

梯形公式

辛普森公式:

辛普森公式

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)