seegongsik
工程数学

数值积分

用矩形、梯形、辛普森量曲线下面积,条越多越精确

定积分是曲线下方的面积。很多函数没有能用手积出来的公式解。像实验那样,只有点、没有式子的时候也有。想法很单纯。把区间 [a,b] 切成细的竖条,用简单的图形估计每一条的面积,再加起来。用矩形填比较粗,把上边斜着连成梯形就更好,两格两格地配成抛物线就准确得多。切得越细,也就是把 n 调大,越接近真值,而接近的速度随规则而不同。拿一个真值已知的积分,f=1+sin x,答案是 π+2,下面的图比较三种规则在同样的力气下精度差多少。金色的条是那些小块,灰色曲线是被积分的函数。

灰色曲线是 f(x)=1+sin x,要求的面积是它在 [0,π] 下面的那一块。真值恰好是 π+2≈5.1416,所以误差可以照实来量。金色的条是把区间切成 n 块的矩形。上面的按钮选择条的高度取左端、右端还是中点。把 n 滑块调大,条变细,估计值走向真值。左端和右端会偏向一侧,中点让上下的误差抵消,通常最准。

同一个积分,同一个真值 π+2。这一次不把条的上边放平,而是用直线连起两端,填成梯形。矩形在曲线和条之间留下空的三角形,梯形顺着那道斜坡用直线走,把空隙大大缩小。移动 n 滑块,在同样的 n 上,误差比前一张图的 1 次估计更小。梯形误差与 h² 成正比,所以把 n 加倍,误差大约落到 1/4。矩形只落到 1/2,比起来这是快一阶的收敛。

梯形用直线估计曲线。如果用曲线来估计曲线呢。辛普森规则把区间两格两格地捆起来,用经过那三个点的抛物线去配曲线。直线漏掉的弯曲也被抓住了。虚线是真曲线,几乎叠在上面的金色是抛物线估计。把 n 按偶数移动,误差的数字比梯形小整整若干位。辛普森误差与 h⁴ 成正比,所以把 n 加倍,误差落到 1/16。同样的块数,精度好了一大截。

一张图把三种规则的面目放在一起。纵轴是 log10(误差),横轴是块数 n。选定规则扫过 n,就画出误差下降的曲线。下降的斜率是精度的阶 p,读数给出这个估计。矩形下降得缓 (p≈1),梯形更陡 (p≈2),辛普森像悬崖 (p≈4)。曲线越陡,同样的 n 增加削掉的误差越多。辛普森一旦碰到机器还能分辨的最小数,就不再往下走。

最后把三个放在同样的条件下并排比较。三根条是同样的 n,也就是同样的计算量下,中点、梯形和辛普森的误差。纵轴是对数刻度,条的长度就是误差的位数。移动 n,三根都变短,但辛普森的条把另外两根压在下面。同样的力气,选哪一个公式把精度按位数分开。数值分析里要紧的不是盲目把 n 调大,而是选一个更好的规则。用同样的块数把三种规则并排放着比,就是这一讲的比较。

实际应用数值积分,也就是求积,把曲线下的面积在 [a,b] 上切成小块来估计。矩形比较粗,误差与 h 成正比,是 1 次。梯形用直线连上边,是 2 次。辛普森两格两格配成抛物线,是 4 次。把块数 n 调大,误差会减小,减小的速度由规则的阶决定。把 log(误差)对 n 画出来,斜率就是阶。所以在同样的计算量、同样的 n 下,辛普森按位数领先其他规则。与其一味增加块数,不如选一个更聪明的规则。泰勒把函数展成多项式,求积则是把那些多项式小块原样积出来。
← 工程数学
如果有帮助,请支持我们