この計算機でできること
このツールは、半無限区間上の定積分 \(I = \int_{a}^{\infty} f(x)\,dx\) を、半直線向けに設計された二重指数関数型(DE)数値積分を用いて数値的に求めます。DE法は汎用かつ高精度な計算手法で、特に無限遠点に向かって代数的(べき乗)に減衰する被積分関数(\(1/x^{p}\) のような形)に適しており、下端 \(x = a\) に弱い特異性がある場合にも対応できます。周期関数や振動する被積分関数には向いていません。
使い方
被積分関数 \(f(x)\) を、変数 \(x\) の数式として入力してください(+ - * / ^、丸括弧のほか、sqrt, exp, log, log10, sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, abs の各関数と、定数 pi・e に対応しています)。続いて有限な下端 \(a\) を入力し、表示する有効桁数を選んで実行します。結果として積分の数値が得られます。
計算式の解説
半直線は、変数変換 \(\phi(t) = \exp\!\left(\tfrac{\pi}{2}\sinh t\right)\) によって実数全体へ写されます。これにより \(x = a + \phi(t)\) は、\(t \to -\infty\) のとき \(a\) から \(+\infty\) までを動きます。その導関数は \(\phi^{\prime}(t) = \tfrac{\pi}{2}\cosh(t)\,\exp\!\left(\tfrac{\pi}{2}\sinh t\right)\) です。変換後の被積分関数 \(g(t) = f(a + \phi(t))\,\phi^{\prime}(t)\) は両端で二重指数関数的に減衰するため、等間隔格子上の単純な台形則がほぼ最適となります。すなわち $$I \approx h\sum_{k=-N}^{N} g(kh)$$ です。オーバーフローを起こす節点(大きな \(t\))は、そこで被積分関数が実質ゼロになるため計算から省かれます。
$$\int_{a}^{\infty} f(x)\,dx \;\approx\; h\sum_{k=-N}^{N} f\!\left(\phi(kh)\right)\,\phi^{\prime}(kh)$$ $$\text{where}\quad \left\{ \begin{aligned} \phi(t) &= a + \exp\!\left(\tfrac{\pi}{2}\sinh t\right) \\ \phi^{\prime}(t) &= \tfrac{\pi}{2}\cosh t\,\exp\!\left(\tfrac{\pi}{2}\sinh t\right) \end{aligned} \right.$$
計算例
\(f(x) = 1/(1 + x^{3/2})\)、\(a = 0\) の場合、厳密値は \(4\pi/(3\sqrt{3}) \approx 2.4183991523\) です。\(h = 1/16\) とした DE 和は、この値を多くの桁まで再現します。\(t = 0\) では \(\phi = 1\)、\(x = 1\)、\(f = 0.5\)、\(\phi^{\prime} = \pi/2 \approx 1.5708\) となり、\(g \approx 0.7854\) です。重み付けされたすべての節点を足し合わせると \(2.41840\) に収束します。
よくある質問
指数関数的に減衰する被積分関数にも使えますか? 使えますが、純粋な指数減衰の場合は別の DE 変換のほうが速く収束します。本計算機は代数的減衰を対象としています。
振動する被積分関数で計算がうまくいかないのはなぜですか? 減衰しない振動の台形和は収束しないため、半直線向けの DE 数値積分は適していません。
桁数の設定は何を変えるのですか? 変わるのは表示時の丸めだけです。内部計算は常に倍精度(double)のフル精度で行われます。