MCPで接続 →

計算を入力してください

変数には x を使用してください。演算子:+ - * / ^。関数:sin, cos, tan, exp, ln, log, sqrt, abs。

公式

広告

結果

積分の近似値(シンプソン公式)
2.666667
≈ ∫ f(x) dx
刻み幅 Δx 0.5
f(a) = f₀ 0
f(b) = fₙ 4
奇数番目の f の合計 2.5
偶数番目の f の合計 1
分割数 (n) 4

シンプソン公式とは?

シンプソン公式は、曲線の下の面積を近似するための数値積分の手法です。3点ずつのグループに放物線を当てはめて面積を求めるのが特徴で、直線で近似する台形公式と比べて、なめらかな関数に対してははるかに高い精度が得られます。これは、直線では捉えきれない曲がり具合(曲率)まで反映できるためです。本ツールでは、1変数関数 \(f(x)\) を区間 \([a, b]\) で積分する際に、複合シンプソン公式(1/3則)を用いて計算します。

シンプソン則で対の小区間ごとに放物線の弧で近似された曲線
シンプソン則は点を通る放物線を当てはめ、曲線下の面積を近似します。

このツールの使い方

関数は変数として x を用いて入力してください。たとえば x^2sin(x)exp(-x)*cos(x) のように記述できます。使用できる演算子は + − * / ^ で、関数は sin、cos、tan、exp、ln、log、sqrt、abs に対応しています(角度はラジアン単位)。次に、積分の下限 \(a\)、上限 \(b\)、そして分割数 \(n\) を設定します。本手法は2つの区間を1組にして放物線を当てはめるため、\(n\) は必ず偶数でなければなりません。奇数を入力した場合は、自動的に切り上げて偶数に調整されます。

計算式の解説

区間を幅 \(\Delta x = (b - a)/n\) の \(n\) 個の等しい小区間に分割し、標本点 \(x_0, x_1, \ldots, x_n\) を求めます。両端の点 \(f_0\) と \(f_n\) には重み 1 を、奇数番目の内部の点には重み 4 を、偶数番目の内部の点には重み 2 を掛けます。こうして重み付けした合計に \(\Delta x/3\) を掛けることで、積分の近似値が得られます。

$$\int_{a}^{b} f(x)\,dx \approx \frac{h}{3}\left[ f(x_0) + 4\!\!\sum_{i\,\text{odd}}\!\! f(x_i) + 2\!\!\sum_{i\,\text{even}}\!\! f(x_i) + f(x_n) \right]$$
広告
シンプソン則の重みパターン1,4,2,4,2,4,1が付いた小区間の点
端点の重みは1、奇数番目の点は4、偶数の内部点は2です。

計算例

\(f(x) = x^2\) を 0 から 2 まで、\(n = 4\) で積分してみましょう。このとき \(\Delta x = 0.5\) となり、標本点は 0, 0.5, 1, 1.5, 2、対応する関数値は 0, 0.25, 1, 2.25, 4 です。奇数番目の合計は \(0.25 + 2.25 = 2.5\)、偶数番目の合計は 1 です。結果は

$$\frac{0.5}{3}\cdot\left[0 + 4(2.5) + 2(1) + 4\right] = \frac{0.5}{3}\cdot 16 = 2.6667$$

となり、厳密値である \(8/3\) と一致します。

よくある質問

なぜ \(n\) は偶数でなければならないのですか? 1つの放物線が2つの小区間にまたがるため、分割数は2で割り切れる必要があります。

精度はどのくらいですか? 誤差は \(\Delta x\) の4乗に比例して小さくなります。そのため、なめらかな関数では \(n\) を2倍にすると誤差はおよそ16分の1に減ります。また、シンプソン公式は3次以下の多項式に対しては誤差なく厳密な値を返します。

角度の扱いはどうなりますか? 三角関数はラジアン単位で計算されるため、度数で扱いたい場合はあらかじめラジアンに変換してください。

最終更新: