この図で見る数値積分
原始関数を使って計算できない積分はたくさんあります。の原始関数は存在しますが初等関数では表せず、測定データにはそもそも式がありません。数値積分はfの値だけからを近似します。[a, b]を幅のn個の小区間に分け、各区間でfをいくつかの値を通る簡単な曲線pに置き換え、その下の符号付き面積を足します。
中点則Mはを通る水平線、台形則Tは両端を結ぶ弦、シンプソン則Sは両端と中点を通る放物線を使います。したがってSが使うfの値は2n + 1個です。図のpは黄色です。下の細い図は差を拡大したもので、その符号付き面積が誤差、つまり近似和から積分値を引いた値です。教科書ではこれを「2n個の小区間でのシンプソン則」と呼ぶこともありますが、同じ和を計算しています。
幅hの小区間で、fを中点のまわりに展開します。中点則の誤差は約、台形則は約なので、小区間が十分小さければ前者は後者の約−½です。sin x、n = 4では+0.0523と−0.1039になります。2 : 1で重み付けするとこの主要項が消え、実際にが厳密に成り立ちます。残る誤差は、小区間ごとにの項から始まります。下の図でも、このページのどの関数でも台形の差は同じ符号を保つ一方、シンプソン則の正と負の部分はほぼ打ち消し合っています。
シンプソン則は二次関数だけでなく三次関数にも厳密です。中点を基準にするとは奇関数なので、小区間上の積分は0です。重み1, 4, 1が対称なため、シンプソン則の和も0になります。[0, 2]上のx³を一つの小区間で扱うと、放物線はで、明らかにx³とは違います。それでも差の二つの部分の面積は−1/4と+1/4なので、となり積分値に厳密に一致します。の項は偶関数で打ち消し合いません。x⁴では一つの放物線による値が32/5ではなく20/3となり、4/15ずれます。
小区間を足し合わせた誤差は、1/nのべきに比例して減ります。fが滑らかで主要な誤差項が0でなければ、nを2倍にしたとき中点則と台形則の誤差はやがて約1/4(誤差 ∝ 1/n²)、シンプソン則では約1/16(∝ 1/n⁴)になります。eˣではn = 1, 2, 4に対してシンプソン則の誤差は5.8 × 10⁻⁴、3.7 × 10⁻⁵、2.3 × 10⁻⁶です。この展開にはfの滑らかさが必要です。√xは0から垂直に立ち上がり、その無限大の傾きを放物線では再現できません。分割数を2倍にしても誤差は約分の1にしかならず、ほとんどが最初の小区間から生じます。
注目する点
- 表示される積分値は原始関数から求めた値(2, e − 1, ln 2, 2/3, 4, 32/5)です。したがって誤差も推定ではなく真の誤差です。
- 同じ9個のsin xの値を使う場合、∫₀^π sin x dxに対する誤差は、四つの小区間でのシンプソン則が0.00027、八つの小区間での台形則が0.026です。
操作
- nを回したり公式を切り替えたりして、差の変化を見てください。下の図はそのつど縮尺が変わるので、左の目盛りを確認します。
- n → ∞を押すと、nを64まで2倍ずつ増やします。各行には誤差と、前の行に比べて何分の1になったかが記録されます。
関連項目
さらに読む: ウィキペディア: Simpson's rule (英語); OpenStax, Calculus Volume 2, 3.6 Numerical Integration (英語).