數值積分

在数值分析中，數值積分（英語：Numerical integration）是计算定積分数值的方法和理论。在数学分析中，给定函数的定積分的计算不总是可行的。许多定积分不能用已知的積分公式得到精确值。数值积分是利用黎曼积分等数学定义，用数值逼近的方法近似计算给定的定积分值。借助于电子计算设备，数值积分可以快速而有效地计算复杂的积分。 数值积分的必要性源自计算函数的原函数的困难性。利用原函数计算定积分的方法建立在牛顿-莱布尼兹公式之上。然而，原函数可以用初等函数表示的函数为数不多，大部分的可积函数的积分无法用初等函数表示，甚至无法有解析表达式。例如常见的正态分布函数： f ( x ) = e − x 2 2 {\displaystyle f(x)=e^{-{\frac {x^{2}}{2}}}} 的原函数就无法用初等函数表示。 不仅如此，在很多实际应用中，只能知道积分函数在某些特定点的取值，比如天气测量中的气温、湿度、气压等，医学测量中的血压、浓度等等。另外，积分函数有可能是某个微分方程的解。由于很多微分方程只能数值求解，因此只能知道函数在某些点上的取值。这时是无法用求原函数的方法计算函数的积分的。 另外，当积分区域是曲面、三维形体以至于高维流形时，牛顿-莱布尼兹公式不再适用，只能使用更广泛的格林公式或斯托克斯公式，以转化为较低维数上的积分，但只能用于少数情况。因此，只能使用数值积分计算函数的近似值。 矩形法是一种常见的数值积分方法，用来计算一维定积分的近似值。矩形法的主要思想是将积分区间 I = [ a , b ] {\displaystyle I=[a,b]} 分割成许多足够小的分区间的总和： I = [ x 0 , x 1 ) ∪ [ x 1 , x 2 ) ∪ ⋯ ∪ [ x n − 1 , x n ] {\displaystyle I=[x_{0},x_{1})\cup [x_{1},x_{2})\cup \cdots \cup [x_{n-1},x_{n}]} ， a = x 0 < x 1 < x 2 < ⋯ < x n − 1 < x n = b {\displaystyle a=x_{0}<x_{1}<x_{2}<\cdots <x_{n-1}<x_{n}=b} ，使得能够假设积分函数 f {\displaystyle f} 在各个小区间 [ x i , x i + 1 ) {\displaystyle [x_{i},x_{i+1})} 上的取值变化不大。这时，可以在每个分区间上取一个代表性的点 c i ∈ [ x i − 1 , x i ) {\displaystyle c_{i}\in [x_{i-1},x_{i})} （称为节点），并将分区间的长度乘以积分函数在这一点上的值，以近似得到函数在这一段小区间上的积分。直观上来看，就是取一个矩形，用它的面积来代替积分函数的曲线在这一小段区间上围出来的曲边梯形的面积。总体上，将所有这样的矩形面积加起来（这个和称为黎曼和），就近似地等于函数在这个区间上的定积分。 ∫ I f ( t ) d t ≈ I appr ( c 1 , x 1 , c 2 , x 2 , ⋯ , c n , x n ) = ∑ i = 0 n − 1 ( x i + 1 − x i ) f ( c i ) {\displaystyle \int _{I}f(t)dt\approx \mathbf {I} _{\mbox{appr}}(c_{1},x_{1},c_{2},x_{2},\cdots ,c_{n},x_{n})=\sum _{i=0}^{n-1}(x_{i+1}-x_{i})f(c_{i})} 根据黎曼积分的定义，只要区间被分得足够精细，那么这样的分割所得到的黎曼和会无限趋近于函数的积分。 根据每个小区间中节点的选取方式，可以得到不同的数值积分公式。 上矩形公式：取每个小区间中的“最高点”（ f {\displaystyle f} 的最大值或上确界）作为节点。 I appr ( c 1 , x 1 , c 2 , x 2 , ⋯ , c n , x n ) = ∑ i = 0 n − 1 ( x i + 1 − x i ) sup ( f [ x i − 1 , x i ) ) {\displaystyle \mathbf {I} _{\mbox{appr}}(c_{1},x_{1},c_{2},x_{2},\cdots ,c_{n},x_{n})=\sum _{i=0}^{n-1}(x_{i+1}-x_{i})\sup(f_{[x_{i-1},x_{i})})} 下矩形公式：取每个小区间中的“最低点”（ f {\displaystyle f} 的最小值或下确界）作为节点。 I appr ( c 1 , x 1 , c 2 , x 2 , ⋯ , c n , x n ) = ∑ i = 0 n − 1 ( x i + 1 − x i ) inf ( f [ x i − 1 , x i ) ) {\displaystyle \mathbf {I} _{\mbox{appr}}(c_{1},x_{1},c_{2},x_{2},\cdots ,c_{n},x_{n})=\sum _{i=0}^{n-1}(x_{i+1}-x_{i})\inf(f_{[x_{i-1},x_{i})})} 中矩形公式：取每个小区间中央的一点作为节点。 I appr ( c 1 , x 1 , c 2 , x 2 , ⋯ , c n , x n ) = ∑ i = 0 n − 1 ( x i + 1 − x i ) f ( x i − 1 + x i 2 ) {\displaystyle \mathbf {I} _{\mbox{appr}}(c_{1},x_{1},c_{2},x_{2},\cdots ,c_{n},x_{n})=\sum _{i=0}^{n-1}(x_{i+1}-x_{i})f({\frac {x_{i-1}+x_{i}}{2}})} 另一种数值积分的思路是用一个容易计算积分而又与原来的函数“相近”的函数来代替原来的函数。这里的“相近”是指两者在积分区间上定积分的值比较接近。最自然的想法是采用多项式函数。比如说，给定一个函数 f {\displaystyle f} 后，在积分区间 I = [ a , b ] {\displaystyle I=[a,b]} 中取 a = x 0 < x 1 < x 2 < ⋯ < x n − 1 < x n = b {\displaystyle a=x_{0}<x_{1}<x_{2}<\cdots <x_{n-1}<x_{n}=b} ，就可以对原来的函数进行拉格朗日插值。得到拉格朗日插值多项式以后，计算这个多项式的积分。 ∫ I f ( t ) d t ≈ I appr ( x 1 , x 2 , ⋯ , x n ) = ∑ i = 0 n f ( x i ) L i {\displaystyle \int _{I}f(t)dt\approx \mathbf {I} _{\mbox{appr}}(x_{1},x_{2},\cdots ,x_{n})=\sum _{i=0}^{n}f(x_{i})L_{i}} 其中 L i {\displaystyle L_{i}} 是拉格朗日插值的基本多项式。 牛頓-柯特斯公式是一种插值型公式。假设 I = [ a , b ] {\displaystyle I=[a,b]} 中取 x k = a + k b − a n {\displaystyle x_{k}=a+k{\frac {b-a}{n}}} ,可以写成： ∫ I f ( t ) d t ≈ I appr ( x 1 , x 2 , ⋯ , x n ) = ( b − a ) ∑ k = 0 n C k ( n ) f ( x k ) {\displaystyle \int _{I}f(t)dt\approx \mathbf {I} _{\mbox{appr}}(x_{1},x_{2},\cdots ,x_{n})=(b-a)\sum _{k=0}^{n}C_{k}^{(n)}f(x_{k})} 其中的   C k ( n ) = 1 n ∫ 0 n ∏ k ≠ j t − j k − j d t = ( − 1 ) n − k n ⋅ k ! ( n − k ) ! ∫ 0 n ∏ k ≠ j ( t − j ) d t {\displaystyle \ C_{k}^{(n)}={\frac {1}{n}}\int _{0}^{n}\prod _{k\neq j}{\frac {t-j}{k-j}}dt={\frac {(-1)^{n-k}}{n\cdot k!(n-k)!}}\int _{0}^{n}\prod _{k\neq j}(t-j)dt} 如果 n = 1 {\displaystyle n=1} ，那么牛顿-柯特斯公式就变成梯形公式（取每个小区间两端点，做成梯形，梯形的值也和矩形一样，趋于原来的函数的积分）。 I appr ( x 1 , x 2 , ⋯ , x n ) = ∑ i = 0 n − 1 ( x i + 1 − x i ) ( f ( x i + 1 ) + f ( x i ) 2 ) {\displaystyle \mathbf {I} _{\mbox{appr}}(x_{1},x_{2},\cdots ,x_{n})=\sum _{i=0}^{n-1}(x_{i+1}-x_{i})({\frac {f(x_{i+1})+f(x_{i})}{2}})} 插值法 牛頓-柯特斯公式 數值微分 维基共享资源上的相关多媒体资源：數值積分 李庆扬. 《数值分析（第四版）》. 华中科技大学出版社. 2006. ISBN 7-560-93742-X.