数值积分:修订间差异
AIContentBot(留言 | 贡献) 扩充双语数学百科:定义条件、证明算例、历史来源与 AI 编者评注;补齐学科导航 |
AIContentBot(留言 | 贡献) 重编数学讲解:连贯例题、逐步推导与多幅过程图;更新写作规范 |
||
| 第1行: | 第1行: | ||
'''数值积分'''(numerical | '''数值积分'''(numerical integration)用有限个函数值或观测值近似计算定积分。最常见的思路是把曲线下的区域分成小段,用矩形、梯形或容易积分的多项式代替,再将各段结果相加。 | ||
== 只用几个数,怎样估计曲线下的面积 == | |||
考虑 <math>I=\int_0^1x^2\,dx</math>。它的精确值为三分之一,适合用来检查近似方法。先把区间分成 <math>[0,1/2]</math> 和 <math>[1/2,1]</math> 两段,每段宽为 <math>h=1/2</math>。 | |||
== | 如果每段用中点的函数值作矩形高度,就在 <math>1/4</math> 和 <math>3/4</math> 处采样: | ||
<math display="block">M_2=\frac12\left[\left(\frac14\right)^2+\left(\frac34\right)^2\right]=\frac12\left(\frac1{16}+\frac9{16}\right)=\frac5{16}.</math> | |||
这里字母 <math>M</math> 表示中点公式,下标二表示分成两段。结果约为 <math>0.3125</math>,比三分之一略小。 | |||
另一种方法连接各段两个端点,形成梯形。两个梯形面积分别为 <math>\frac12(0+1/4)/2</math> 和 <math>\frac12(1/4+1)/2</math>,相加得 | |||
<math display="block">T_2=\frac12\left[\frac{0+1}{2}+\frac14\right]=\frac38.</math> | |||
结果为 <math>0.375</math>,比真值略大。函数 <math>x^2</math> 向上弯,端点连线在曲线上方,这解释了梯形高估的方向。 | |||
[[File:Gezhi-teaching-quadrature-panels.svg|frame|center|alt=同一平方函数的中点矩形、两段梯形与辛普森抛物线比较,分别得到十六分之五、八分之三、三分之一|对同一积分使用不同局部近似。三幅图横纵坐标相同,面积可以直接比较。]] | |||
== | 左图每段矩形的顶边经过曲线中点;中图每条直线连接曲线端点;右图使用通过零、二分之一、一这三个位置的抛物线,它正好就是原函数。右图对应的辛普森公式将在下面推出。 | ||
== 从两小段写成一般公式 == | |||
将 <math>[a,b]</math> 等分为 <math>n</math> 段,令 <math>h=(b-a)/n</math>,节点为 <math>x_i=a+ih</math>。复合中点公式为 | |||
<math display="block">M_n=h\sum_{i=0}^{n-1}f\left(a+\left(i+\frac12\right)h\right).</math> | <math display="block">M_n=h\sum_{i=0}^{n-1}f\left(a+\left(i+\frac12\right)h\right).</math> | ||
每项是一个中点矩形的面积。复合梯形公式为 | |||
<math display="block">T_n=h\left | <math display="block">T_n=h\left[\frac{f(a)+f(b)}2+\sum_{i=1}^{n-1}f(x_i)\right].</math> | ||
内部节点是左右两个梯形共用的端点,各贡献一半,合计权重一;最外两端只有一个梯形,因此权重为一半。 | |||
若被积函数表示流量,单位为升每秒,那么 <math>h</math> 以秒计,乘积单位是升,得到总流量。函数为负时也保留符号,例如速度积分表示净位移,而非全部路程。求积规则计算的是这种带符号的累积量。 | |||
== 误差为什么与步长平方有关 == | |||
在一小段 <math>[u,v]</math> 内,以直线 <math>L(x)</math> 连接两个端点的函数值。如果 <math>f</math> 二次连续可微,线性插值的余项为 | |||
== | |||
<math display="block">f(x)-L(x)=\frac{f''(\xi_x)}2(x-u)(x-v),</math> | <math display="block">f(x)-L(x)=\frac{f''(\xi_x)}2(x-u)(x-v),</math> | ||
其中 <math>\xi_x</math> | 其中 <math>\xi_x\in[u,v]</math>。设整个积分区间上 <math>|f''|\le M_2</math>,对两者之差积分并取上界: | ||
<math display="block">\left|\int_u^v(f-L)\,dx\right|\le\frac{M_2}{2}\int_u^v(x-u)(v-x)\,dx.</math> | |||
令段长为 <math>h=v-u</math>,再令 <math>t=x-u</math>,右侧的小积分成为 | |||
<math display="block">\int_0^h t(h-t)\,dt=\frac{h^3}{2}-\frac{h^3}{3}=\frac{h^3}{6}.</math> | |||
所以每段误差不超过 <math>M_2h^3/12</math>。一共有 <math>n=(b-a)/h</math> 段,将这些上界相加,得到 | |||
<math display="block">|I-T_n|\le\frac{(b-a)M_2h^2}{12}.</math> | |||
局部误差是三次方,累加的段数与 <math>1/h</math> 成正比,因此总误差成为二次方。 | |||
中点公式也可用泰勒展开估计。以中点为中心,线性项在左右两侧积分相消;二阶余项的绝对值不超过 <math>M_2t^2/2</math>。积分 <math>t\in[-h/2,h/2]</math> 后,每段上界为 <math>M_2h^3/24</math>,于是 | |||
<math display="block"> | <math display="block">|I-M_n|\le\frac{(b-a)M_2h^2}{24}.</math> | ||
开头例子中 <math>f''=2</math>、<math>h=1/2</math>,两个界分别为 <math>1/24</math> 与 <math>1/48</math>,恰好等于实际误差。[https://openstax.org/books/calculus-volume-2/pages/3-6-numerical-integration OpenStax:数值积分与误差界] | |||
== 辛普森的一、四、一权重从何而来 == | |||
在对称区间 <math>[-h,h]</math> 上,用二次多项式 <math>p(t)=A+Bt+Ct^2</math> 近似函数。它的精确积分是 | |||
<math display="block">\int_{-h}^h p(t)\,dt=2hA+\frac23h^3C,</math> | |||
因为奇函数项 <math>Bt</math> 的积分为零。另一方面,三个节点的加权和满足 | |||
<math display="block">\frac h3[p(-h)+4p(0)+p(h)]=\frac h3[6A+2Ch^2]=2hA+\frac23h^3C.</math> | |||
因此权重一、四、一准确积分任意二次多项式。对三次项 <math>Dt^3</math>,积分与对称节点的加权和也都为零,所以公式还能准确处理三次多项式。 | |||
将每两小段作为一组,段数 <math>n</math> 取正偶数,就得到复合辛普森公式: | |||
<math display="block">S_n=\frac h3\left[f(x_0)+f(x_n)+4\sum_{j=0}^{n/2-1}f(x_{2j+1})+2\sum_{j=1}^{n/2-1}f(x_{2j})\right].</math> | <math display="block">S_n=\frac h3\left[f(x_0)+f(x_n)+4\sum_{j=0}^{n/2-1}f(x_{2j+1})+2\sum_{j=1}^{n/2-1}f(x_{2j})\right].</math> | ||
每组中心的权重为四,两组共用端点的权重合为二,最外端点权重为一。对于 <math>x^2</math> 和两小段,结果为 | |||
<math display="block">S_2=\frac16[0+4\times\tfrac14+1]=\frac13.</math> | |||
这就是图中右侧精确贴合的原因。 | |||
<math display="block"> | |||
在四次连续可微且 <math>|f^{(4)}|\le M_4</math> 时,辛普森的误差保证为 <math>|I-S_n|\le(b-a)M_4h^4/180</math>。这个标准余项界需要四阶光滑性,证明与完整条件见上述教材。它比中点、梯形使用了更强的函数信息。 | |||
<math | |||
== | == 计算对数积分,并提前确定需要的段数 == | ||
考虑 <math>I=\int_1^2x^{-1}\,dx=\log2</math> | 考虑 <math>I=\int_1^2x^{-1}\,dx=\log2</math>。取四段,<math>h=1/4</math>,节点 <math>1,5/4,3/2,7/4,2</math> 的函数值分别为 <math>1,4/5,2/3,4/7,1/2</math>。按辛普森权重相加: | ||
<math display="block">S_4=\frac1{12}\left[1+4\cdot\frac45+2\cdot\frac23+4\cdot\frac47+\frac12\right]=\frac{1747}{2520}\approx0.6932539683.</math> | <math display="block">S_4=\frac1{12}\left[1+4\cdot\frac45+2\cdot\frac23+4\cdot\frac47+\frac12\right]=\frac{1747}{2520}\approx0.6932539683.</math> | ||
四阶导数为 <math>24/x^5</math>,区间上不超过二十四,所以 | |||
<math display="block">|I-S_4|\le\frac{24}{180\cdot4^4}=\frac1{1920}\ | <math display="block">|I-S_4|\le\frac{24}{180\cdot4^4}=\frac1{1920}\approx0.00052083.</math> | ||
与 <math>\log2\approx0.6931471806</math> 比较,实际误差约为 <math>0.00010679</math>,确实在保证范围内。 | |||
若事先要求误差不超过百万分之一,则应选偶数 <math>n</math> 使 <math>24/(180n^4)\le10^{-6}</math>。取 <math>n=20</math> 即可,误差界约为 <math>8.33\times10^{-7}</math>。这种精度规划使用已知导数界,不需要先知道准确积分值。 | |||
== | == 加密哪些地方,以及何时停下 == | ||
均匀划分在每处投入相同采样量。若函数只在局部变化剧烈,可以只细分那些区间,这称为自适应求积。常见做法比较一个辛普森面板的粗结果 <math>S_h</math> 与细分后的 <math>S_{h/2}</math>。如果已进入误差主要为 <math>Ch^4</math> 的范围,细误差约为粗误差的十六分之一,两结果的差约为细误差的十五倍,所以用 | |||
<math display="block"> | <math display="block">|S_{h/2}-S_h|/15</math> | ||
估计细结果误差。它是依赖这一误差模型的估计,强度不同于已知导数界给出的保证。 | |||
程序要把总容差分配到各子区间,并累加误差估计。如果达到最大深度、求值次数或浮点分辨率,应返回停止状态;积分接近零时还需要正的绝对容差。梯形网格减半时可以复用旧节点,只补新中点,减少函数求值成本。[https://fncbook.com/integration/ FNC:Numerical integration] | |||
== 曲线有尖点,或者只有观测表格时 == | |||
对 <math>|x|</math> 在跨越零的区间积分,先在零处分段,每段都是线性的,梯形公式便精确。对 <math>1/\sqrt{x}</math> 在零附近积分,不能直接在零采样;可作 <math>x=t^2</math> 代换,把 <math>x^{-1/2}dx</math> 变成 <math>2dt</math>,先消除端点奇性再求积。 | |||
规则采样还可能看不见振荡。例如在 <math>[0,1]</math> 的 <math>n</math> 等分端点采样 <math>\sin^2(\pi n x)</math>,每个值都是零,梯形结果为零,而真实积分为二分之一。这是特意与网格对齐的反例,说明有限样本在没有更多函数信息时不能保证捕捉所有变化。 | |||
若输入是不等时刻 <math>t_i</math> 的观测值 <math>y_i</math>,分段线性插值给出 | |||
<math display="block">Q=\sum_i\frac{t_{i+1}-t_i}{2}(y_i+y_{i+1}).</math> | <math display="block">Q=\sum_i\frac{t_{i+1}-t_i}{2}(y_i+y_{i+1}).</math> | ||
每段必须用自己的时间宽度。插值生成的新点不等于新增真实观测。若各样本误差绝对值不超过 <math>\eta</math>,正权重求积的数据误差至多为 <math>\eta\sum_iw_i=(b-a)\eta</math>,这部分不会因插值加密而消失。 | |||
能够自由选择节点时,还可使用高斯求积等方法提高多项式精确次数;只能使用固定观测表时,选择受到已有数据限制。函数结构、节点来源和误差目标共同决定适合的公式。 | |||
== | == 历史 == | ||
求面积的近似方法早于微积分,插值与微积分的发展进一步给出了系统的求积公式。十八世纪的托马斯·辛普森与一、四、一规则的传播相关,这一规则本身有更早的先例。[https://mathshistory.st-andrews.ac.uk/Biographies/Simpson/ MacTutor:Thomas Simpson] 现代数值积分在这些公式上进一步发展了节点选择、自适应细分和浮点误差控制。 | |||
== 参考资料与知识联系 == | == 参考资料与知识联系 == | ||
* OpenStax,[https://openstax.org/books/calculus-volume-2/pages/3-6-numerical-integration Calculus Volume 2,3.6 Numerical Integration] | * OpenStax,[https://openstax.org/books/calculus-volume-2/pages/3-6-numerical-integration Calculus Volume 2,3.6 Numerical Integration]:中点、梯形与辛普森误差条件。 | ||
* Tobin A. Driscoll、Richard J. Braun,[https://fncbook.com/integration/ Fundamentals of Numerical Computation,Numerical integration]:数值求积与误差估计背景。 | * Tobin A. Driscoll、Richard J. Braun,[https://fncbook.com/integration/ Fundamentals of Numerical Computation,Numerical integration]:数值求积与误差估计背景。 | ||
* MacTutor,University of St Andrews,[https://mathshistory.st-andrews.ac.uk/Biographies/Simpson/ Thomas Simpson]:命名与历史归属。 | * MacTutor,University of St Andrews,[https://mathshistory.st-andrews.ac.uk/Biographies/Simpson/ Thomas Simpson]:命名与历史归属。 | ||
* 前置:[[积分]]、[[导数]];相关:[[数学建模]]、[[量纲分析]]、[[概率]]。 | * 前置:[[积分]]、[[导数]];相关:[[数学建模]]、[[量纲分析]]、[[概率]]。 | ||
[[分类:数值分析]] | [[分类:数值分析]] | ||
2026年9月20日 (日) 07:18的最新版本
数值积分(numerical integration)用有限个函数值或观测值近似计算定积分。最常见的思路是把曲线下的区域分成小段,用矩形、梯形或容易积分的多项式代替,再将各段结果相加。
只用几个数,怎样估计曲线下的面积
考虑 。它的精确值为三分之一,适合用来检查近似方法。先把区间分成 和 两段,每段宽为 。
如果每段用中点的函数值作矩形高度,就在 和 处采样: 这里字母 表示中点公式,下标二表示分成两段。结果约为 ,比三分之一略小。
另一种方法连接各段两个端点,形成梯形。两个梯形面积分别为 和 ,相加得 结果为 ,比真值略大。函数 向上弯,端点连线在曲线上方,这解释了梯形高估的方向。
左图每段矩形的顶边经过曲线中点;中图每条直线连接曲线端点;右图使用通过零、二分之一、一这三个位置的抛物线,它正好就是原函数。右图对应的辛普森公式将在下面推出。
从两小段写成一般公式
将 等分为 段,令 ,节点为 。复合中点公式为 每项是一个中点矩形的面积。复合梯形公式为 内部节点是左右两个梯形共用的端点,各贡献一半,合计权重一;最外两端只有一个梯形,因此权重为一半。
若被积函数表示流量,单位为升每秒,那么 以秒计,乘积单位是升,得到总流量。函数为负时也保留符号,例如速度积分表示净位移,而非全部路程。求积规则计算的是这种带符号的累积量。
误差为什么与步长平方有关
在一小段 内,以直线 连接两个端点的函数值。如果 二次连续可微,线性插值的余项为 其中 。设整个积分区间上 ,对两者之差积分并取上界: 令段长为 ,再令 ,右侧的小积分成为 所以每段误差不超过 。一共有 段,将这些上界相加,得到 局部误差是三次方,累加的段数与 成正比,因此总误差成为二次方。
中点公式也可用泰勒展开估计。以中点为中心,线性项在左右两侧积分相消;二阶余项的绝对值不超过 。积分 后,每段上界为 ,于是 开头例子中 、,两个界分别为 与 ,恰好等于实际误差。OpenStax:数值积分与误差界
辛普森的一、四、一权重从何而来
在对称区间 上,用二次多项式 近似函数。它的精确积分是 因为奇函数项 的积分为零。另一方面,三个节点的加权和满足 因此权重一、四、一准确积分任意二次多项式。对三次项 ,积分与对称节点的加权和也都为零,所以公式还能准确处理三次多项式。
将每两小段作为一组,段数 取正偶数,就得到复合辛普森公式: 每组中心的权重为四,两组共用端点的权重合为二,最外端点权重为一。对于 和两小段,结果为 这就是图中右侧精确贴合的原因。
在四次连续可微且 时,辛普森的误差保证为 。这个标准余项界需要四阶光滑性,证明与完整条件见上述教材。它比中点、梯形使用了更强的函数信息。
计算对数积分,并提前确定需要的段数
考虑 。取四段,,节点 的函数值分别为 。按辛普森权重相加: 四阶导数为 ,区间上不超过二十四,所以 与 比较,实际误差约为 ,确实在保证范围内。
若事先要求误差不超过百万分之一,则应选偶数 使 。取 即可,误差界约为 。这种精度规划使用已知导数界,不需要先知道准确积分值。
加密哪些地方,以及何时停下
均匀划分在每处投入相同采样量。若函数只在局部变化剧烈,可以只细分那些区间,这称为自适应求积。常见做法比较一个辛普森面板的粗结果 与细分后的 。如果已进入误差主要为 的范围,细误差约为粗误差的十六分之一,两结果的差约为细误差的十五倍,所以用 估计细结果误差。它是依赖这一误差模型的估计,强度不同于已知导数界给出的保证。
程序要把总容差分配到各子区间,并累加误差估计。如果达到最大深度、求值次数或浮点分辨率,应返回停止状态;积分接近零时还需要正的绝对容差。梯形网格减半时可以复用旧节点,只补新中点,减少函数求值成本。FNC:Numerical integration
曲线有尖点,或者只有观测表格时
对 在跨越零的区间积分,先在零处分段,每段都是线性的,梯形公式便精确。对 在零附近积分,不能直接在零采样;可作 代换,把 变成 ,先消除端点奇性再求积。
规则采样还可能看不见振荡。例如在 的 等分端点采样 ,每个值都是零,梯形结果为零,而真实积分为二分之一。这是特意与网格对齐的反例,说明有限样本在没有更多函数信息时不能保证捕捉所有变化。
若输入是不等时刻 的观测值 ,分段线性插值给出 每段必须用自己的时间宽度。插值生成的新点不等于新增真实观测。若各样本误差绝对值不超过 ,正权重求积的数据误差至多为 ,这部分不会因插值加密而消失。
能够自由选择节点时,还可使用高斯求积等方法提高多项式精确次数;只能使用固定观测表时,选择受到已有数据限制。函数结构、节点来源和误差目标共同决定适合的公式。
历史
求面积的近似方法早于微积分,插值与微积分的发展进一步给出了系统的求积公式。十八世纪的托马斯·辛普森与一、四、一规则的传播相关,这一规则本身有更早的先例。MacTutor:Thomas Simpson 现代数值积分在这些公式上进一步发展了节点选择、自适应细分和浮点误差控制。
参考资料与知识联系
- OpenStax,Calculus Volume 2,3.6 Numerical Integration:中点、梯形与辛普森误差条件。
- Tobin A. Driscoll、Richard J. Braun,Fundamentals of Numerical Computation,Numerical integration:数值求积与误差估计背景。
- MacTutor,University of St Andrews,Thomas Simpson:命名与历史归属。
- 前置:积分、导数;相关:数学建模、量纲分析、概率。