Tanh-Sinh則(二重指数関数型公式)とは
Tanh-Sinh則は二重指数関数型(DE: Double Exponential)公式とも呼ばれ、有限区間 [a, b] の定積分を高精度で求められる数値積分法です。特に被積分関数が区間の端点で特異性を持つ場合に威力を発揮します。変数変換 \(u = \tanh\!\left(\tfrac{\pi}{2}\sinh(t)\right)\) により端点を \(t = \pm\infty\) へ写すのが特徴で、端点付近では被積分関数の寄与が二重指数的に減衰します。そのため \(1/\sqrt{1-x^2}\) のように端点で発散する関数でも精度よく積分できます。本ツールは特定の国に依存しない普遍的な数学計算であり、どこでも同じように利用できます。
使い方
被積分関数 \(f(x)\) を標準的な記法で入力します(演算子 + - * / ^、括弧、sin・cos・exp・log・sqrt・abs などの関数、定数 pi(円周率)と e(自然対数の底)が使えます)。続いて下端 \(a\)、上端 \(b\)、そしてノード密度を決める分割数 \(n\) を指定してください。\(n\) を大きくすると精度は上がりますが計算量も増えます。実用上は 50〜400 程度が目安です。被積分関数は開区間上で解析的である必要があります(端点の特異点は問題ありません)。ただし周期関数には適しません。
計算式の解説
まず区間を \(x = \tfrac{b-a}{2}u + \tfrac{a+b}{2}\)、\(dx = \tfrac{b-a}{2}\,du\) により [-1, 1] へ正規化します。DE則ではノードを \(t_k = k\cdot h\) とし、横座標 \(u_k = \tanh\!\left(\tfrac{\pi}{2}\sinh(t_k)\right)\)、重み \(w_k = \dfrac{\tfrac{\pi}{2}\cosh(t_k)}{\cosh^{2}\!\left(\tfrac{\pi}{2}\sinh(t_k)\right)}\) を用います。積分は $$\frac{b-a}{2}\cdot h\cdot \sum w_k\cdot f(x(u_k))$$ で近似されます。重みがアンダーフローして 0 になるノード(飽和した端点)は計算から除外され、特異点となり得る境界での評価を回避します。
計算例
\(f(x) = \exp(-x^2)\) を区間 [0, 1] で積分してみましょう。厳密値は \(\tfrac{\sqrt{\pi}}{2}\cdot \operatorname{erf}(1) \approx 0.7468241\) です。粗いステップ(\(h = 0.5\)、\(N = 4\))でもこの公式はすでに約 \(0.7467\) を返し、既定の \(n = 100\) ではおよそ12桁まで一致します。
よくある質問
端点に特異点がある関数も積分できますか? はい。それこそがこの手法の最大の強みです。\(a\) または \(b\) における可積分な特異点も問題なく扱えます。
なぜ周期性が関係するのですか? 二重指数関数型公式は非周期的な被積分関数向けに最適化されています。周期関数の場合は台形則の方が速く収束するため、DE則では精度が出ないことがあります。
a と b が等しいときは? 積分値は 0 になります。\(a > b\) の場合は \(\tfrac{b-a}{2}\) の係数が符号を担うため、結果は正しく符号反転されます。