数値積分オンラインツール

数値積分を計算する

数値積分のオンラインツールです。数値積分法は、台形公式、シンプソン公式、ガウス=ルジャンドル積分、二重指数関数型数値積分から選択することができます。関数、積分区間を入力し、数値積分法を選択して[計算実行]を押すと、定積分の積分値とグラフが出力されます。

使用方法はこちら

関数
積分区間
数値積分法
積分値

最小 最大 刻み 対数
x
y

使い方

1.関数に、x を変数とした関数 $f(x)$ を入力します。

2.積分区間で、求めたい積分区間を指定します。

3.数値積分法で、積分法を選択します。

4.[計算実行]を押すと計算が実行され、積分値とグラフが表示されます。

関数の入力

関数は、xを変数として入力します。使用できる演算子、数学関数は以下のとおりです。入力は半角で行ってください。

数式名称入力形式
$+$加算+
$-$減算-
$\times$乗算*
$\div$除算/
$( )$括弧( )
$x^a$べき乗x^a
$\sin x$正弦sin(x)
$\cos x$余弦cos(x)
$\tan x$正接tan(x)
$\sin^{-1} x$逆正弦 asin(x)
$\cos^{-1} x$逆余弦 acos(x)
$\tan^{-1} x$ 逆正接 atan(x)
数式名称入力形式
$\sinh x$双曲正弦 sinh(x)
$\cosh x$双曲余弦 cosh(x)
$\tanh x$双曲正接tanh(x)
$\sinh^{-1} x$ 逆双曲正弦 asinh(x)
$\cosh^{-1} x$ 逆双曲余弦 acosh(x)
$\tanh^{-1} x$ 逆双曲正接 atanh(x)
$e^x$指数関数exp(x)
$\ln{x}$自然対数log(x)
$\log_{10} x$常用対数log10(x)
$\sqrt{x}$平方根sqrt(x)
$|x|$絶対値abs(x)
$\pi$円周率pi

関数入力の例

関数式入力形式
$x^2+3x-5$x^2+3*x-5
$\sin x + e^{-x/10}$sin(x)+exp(-x/10)
$x+\sqrt{x}-2 \pi$x+sqrt(x)-2*pi

結果

積分値

積分値に計算結果と相対誤差(err)が出力されます。各数値積分法では、積分区間を分割して定積分を求めています。この分割を徐々に細かくしていくことによって積分結果が収束していきますが、前ステップの積分値との相対誤差が小さくなると計算を打ち切ります。そのときの相対誤差を出力しています。相対誤差が大きな場合は結果の精度が低いと考えられます。

※相対誤差は真の解との差を表しているわけではありません。

グラフ

グラフは、関数が青線、積分範囲が赤色で表示されます。

軸x, y: 軸の「最小」「最大」「刻み」を指定できます。指定しない場合は自動で表示されます。「対数」にチェックを入れると対数表示されます。

グラフ表示: 軸設定などを変更した場合は、[グラフ表示]ボタンを押すとグラフが再描画されます。

画像保存: 表示されているグラフが graph.png というファイル名でPNG形式で保存されます。

数値積分法

ニュートン=コーツの公式(Newton-Cotes rules)より区間 $[a,b]$ の関数 $f(x)$ の定積分 $I$ は、

$$ I = \int_a^b f(x) dx \approx \sum_{i=0}^N w_i f(x_i) $$

と表せます。関数値 $f(x_i)$ に重み $w_i$ を掛け、和をとった形になっています。

台形公式

台形公式は、積分区間を $N$ 個に区分した台形の面積を足し合わせたものとなり、次式で表せます。

$$ \int_a^b f(x) dx \approx \frac{b-a}{N} \left[ \frac{f(a)+f(b)}{2} + \sum_{i=1}^{N-1} f \left( a + \frac{b-a}{N}  i \right) \right] $$

シンプソンの公式

シンプソンの公式(Simpson's rule)は、関数 $f(x)$ を二次関数で近似して得られ、次のように書けます。

$$\int_a^b f(x) dx \approx \frac{h}{3} \left[ f(x_0) + 2 \sum_{i=1}^{N/2-1} f(x_{2i}) + 4 \sum_{i=1}^{N/2} f(x_{2i-1}) + f(x_N) \right] $$

ここで、$h=(b-a)/N$、$x_i=a+ih$。

ガウス=ルジャンドル積分

ガウス=ルジャンドル積分(Gauss-Legendre quadrature)は、区間 $[-1,1]$ の定積分を次のガウス求積で求める方法です。

$$ \int_{-1}^1 f(x) dx \approx \sum_{i=1}^N w_i f(x_i) $$

ここで、$P_N(x)$ を $N$ 次のルジャンドル多項式とすると、$x_i$ は

$$ P_N(x_i) = 0 $$

を満たし、$w_i$ は、

$$w_i = \frac{2}{(1-x_i^2)[P'_N(x_i)]^2}$$

で与えられます。N次のルジャンドル多項式は、

$$P_N(x) = \frac{1}{2^N N!} \frac{d^N}{dx^N}(x^2-1)^N$$

積分区間 $[-1,1]$ に対する積分は、次のように区間 $[a,b]$ に変換できます。

$$ \int_a^b f(x) dx = \frac{b-a}{2} \int_{-1}^1 f \left(\frac{b-a}{2} x + \frac{a+b}{2} \right) dx $$

ここでは、$N=21$ 次のルジャンドル多項式を用いて、積分区間をいくつかの区分に分けてそれぞれの区間で積分を行い、全体の区間の積分値を求めています。

二重指数関数型数値積分

二重指数関数型数値積分(Double Exponential formula)は、被積分関数を別の関数に変数変換し積分する数値積分法です。被積分関数が区間の端点で特異性( $\pm \infty$ )を持つ関数にも適用できます。

$$ I = \int_{-1}^1 f(x) dx $$

は、変数変換

$$x = \phi (t) = \tanh \left( \frac{\pi}{2} \sinh t \right)$$

を行い、台形公式を適用することで

$$I = \int_{-\infty}^\infty f(\phi(t)) \phi'(t) dt = h \sum_{i=-\infty}^\infty f(\phi(ih))\phi'(ih)$$

となります($h$ は刻み幅)。この無限和を有限項 $N$ で打ち切ると次のような式になります。

$$ I_h^{(N)} = \frac{\pi}{2} h \sum_{i=-N}^N f  \left( \tanh \left( \frac{\pi}{2} \sinh (ih) \right) \right) \frac{ \cosh(ih)}{\cosh^2 \left( \frac{\pi}{2} \sinh (ih) \right)}$$

最終的に前述の積分区間の変更を行い、区間 $[a,b]$ での積分値を求めています。

参考文献:
Takahasi, H.; Mori, M. Double exponential formulas for numerical integration. Publ. PRIMS Kyoto Univ. 1974, vol. 9, p. 721-741.

森正武. 二重指数関数型変換のすすめ. 京都大学数理解析研究所講究録. 1998, vol. 1040, p. 143-153.

スポンサーリンク
科学技術計算のご相談は「キャットテックラボ」へ

科学技術計算やCAEに関するご相談、計算用プログラムの開発などお困りのことは「株式会社キャットテックラボ」へお問い合わせください。

お問い合わせはこちら

フォローする