この計算機でできること
1変数関数f(x)の有限区間[a, b]上の定積分を、二重指数関数型(DE)数値積分(tanh-sinh法とも呼ばれます)で計算します。DE公式は有限区間に対する汎用手法のなかでもっとも信頼性の高いもののひとつで、1/√xやlog(x)のように端点で発散する被積分関数にめっぽう強いのが特徴です。こうした関数は、通常のガウス求積やシンプソン公式では精度が出にくいものです。
使い方
「被積分関数 f(x)」の欄に、通常の数式表記で式を入力します。使える演算子は+ - * / ^と括弧、関数はsqrt, exp, log, ln, sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, abs、定数はpiとeです。下端a・上端bを入力し、目標とする有効桁数を選んで計算してください。特異点が許されるのは端点aとbのみで、開区間(a, b)上では解析的であること、また周期関数でないことが条件です。
計算の仕組み
このDE公式は次の形で表されます。
$$\int_{a}^{b} f(x)\,dx \;\approx\; \frac{b-a}{2}\,h\sum_{k} w_k\, f\!\left(x_k\right)$$ここで
$$\left\{ \begin{aligned} a &= \text{Lower limit} \\ b &= \text{Upper limit} \\ x_k &= \tfrac{b+a}{2} + \tfrac{b-a}{2}\tanh\!\left(\tfrac{\pi}{2}\sinh(k h)\right) \\ w_k &= \dfrac{\tfrac{\pi}{2}\cosh(k h)}{\cosh^{2}\!\left(\tfrac{\pi}{2}\sinh(k h)\right)} \end{aligned} \right.$$まず区間を \( x(u) = \frac{(b+a)+(b-a)u}{2} \) によって[-1, 1]へ写します。次にDE変換 \( u = \tanh\!\left(\frac{\pi}{2}\sinh t\right) \) を施すと、tが大きくなるにつれてuは超指数的に端点へ近づき、同時に重み \( g'(t) \) も同じ速さでゼロへ収束します。標本点が端点aやbにぴったり乗ることはないため、端点の特異点が実際に評価されることはなく、いわば「飼いならされる」わけです。変換後の積分は刻み幅hの単純な台形公式で和をとり、結果が変化しなくなるまでhを半分ずつ細かくしていきます。
計算例
区間[0, 1]上の \( f(x) = 1/\sqrt{x} \) の厳密値は \( \left[2\sqrt{x}\right] \) を0から1まで=2です。粗い7点のDE格子(\( h = 0.5 \))でもすでに約1.94が得られ、hを細かくしていくと推定値は2.000000000000000に収束します。特異点のない例として \( f(x) = x^2 \) を[0, 1]で計算すると \( 1/3 = 0.3333333333333 \) が返ります。
よくある質問
区間の内部に特異点があっても計算できますか? いいえ。DE公式が許容するのは端点の特異点だけです。内部の点cに特異点がある場合は、積分を[a, c]と[c, b]に分けてそれぞれの結果を足し合わせてください。
周期関数に向かないのはなぜですか? 滑らかな周期関数の積分では、ふつうの台形公式だけで指数的に収束してしまうため、DEの変数変換はかえって収束を遅くしてしまうのです。
「桁数」の設定は何をしているのですか? 細分化を打ち切る相対許容誤差を決め、表示値もそれに合わせて丸める役割を持ちます。