MCPで接続 →

計算を入力してください

公式

広告

結果

Simpson's rule result (n = 64)
3.1415926535892149
定積分の近似値
台形則
3.1415519634856541
中点則
3.1416129986418473
シンプソン則
3.1415926535892149
n 台形則 中点則 シンプソン則
2 3.1000000000000001 3.1623529411764704 3.1333333333333333
4 3.1311764705882354 3.1468005183939427 3.1415686274509804
8 3.1389884944910889 3.1428947295916889 3.1415925024587068
16 3.1409416120413889 3.1419181743085600 3.1415926512248218
32 3.1414298931749749 3.1416740337963374 3.1415926535528360
64 3.1415519634856541 3.1416129986418473 3.1415926535892149

この計算ツールでできること

本ツールは、関数 \(f(x)\) の有限区間 \([a, b]\) における定積分を、古典的な3つの複合求積法(台形則・中点則・シンプソン則)で近似します。単に1つの値を返すのではなく、分割数を 2, 4, 8, 16, … と倍々に増やしながら(指定した最大値 \(N\) まで)各公式の値を計算し、収束表として表示します。これにより、近似値がどのように安定していくかを目で確かめ、精度をご自身で判断できます。

a と b の間の垂直な短冊で近似した曲線下の面積
数値積分は、単純な短冊を足し合わせて a から b までの f(x) の下の面積を見積もります。

使い方

被積分関数は、変数 \(x\) を用いた数式として入力してください(例:4/(1+x^2)sin(x)*exp(-x))。利用できる演算子は + - * / ^ と括弧で、加えて sin, cos, tan, exp, log/ln, sqrt, abs などの一般的な関数、定数 pi(円周率)と e(自然対数の底)に対応しています。下限 \(a\) と上限 \(b\) を設定し、分割数の最大値 \(N\)(2のべき乗)を選び、表示する桁数を指定します。代表値として表示されるのは \(n = N\) におけるシンプソン則の値です。通常、最も速く収束するためです。

各公式の解説

分割数を \(n\) とすると、刻み幅は \(h = (b - a)/n\)、分点は \(x_i = a + i \cdot h\) となります。台形則は、両端点の値を \(1/2\) の重みで加え、関数値を合計します。中点則は各小区間の中央で関数をサンプリングします。シンプソン則はこれらを 1, 4, 2, 4, …, 4, 1 という重みで組み合わせたもので、3次までの多項式に対して厳密です。誤差のオーダーは、他の2つが \(h^2\) であるのに対しシンプソン則は \(h^4\) となり、より高精度です。

$$\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]$$
曲線下の台形・中点・シンプソンの短冊形状を比較する3つのパネル
3つの方法は各短冊が曲線をどう近似するかで異なります:直線の弦、中点での平らな長方形、当てはめた放物線。

計算例

区間 \([0, 1]\) における \(f(x) = 4/(1+x^2)\) の厳密な積分値は \(\pi = 3.14159265\ldots\) です。\(n = 4\)、\(h = 0.25\) のとき、台形則の近似値は約 \(3.131176\)、中点則は約 \(3.146801\)、シンプソン則は約 \(3.141569\) となり、すでに小数第5位まで正確です。\(n\) を増やすにつれて、3つの値はいずれも \(\pi\) に近づいていきます。

よくある質問

なぜ N は2のべき乗でなければならないのですか? 分割数を倍にしていくことで、隣り合う行どうしを簡単に比較でき、またシンプソン則に必要な「偶数の分割数」が保証されます。

対応していない関数はありますか? 収束表は、滑らかな(解析的で)非周期的な被積分関数を前提としています。区間 \([a, b]\) の内部に特異点を持つ関数(例:0 をまたぐ \(1/x\))は、無限大や無意味な値を返します。

a と b が等しい場合や、a が b より大きい場合はどうなりますか? \(a = b\) のとき積分値は 0 です。\(a > b\) の場合は、区間 \([b, a]\) の積分に符号を付けた値(負の値)が結果となります。

最終更新: