tanh-sinh 积分(也称为双曲正切-双曲正弦积分,或简称为 tanh-sinh quadrature)是一种高精度数值积分方法,特别适用于在有限区间上对具有端点奇异性(endpoint singularities)或在端点附近变化剧烈的函数进行积分。该方法由日本数学家 Hidetosi Takahasi 和 Masatake Mori 于 1974 年提出,是“变量变换型高斯求积”方法的一种。
1. 基本思想
tanh-sinh 方法的核心思想是:通过一个巧妙的变量变换,将原积分区间(通常是 [ − 1 , 1 ] [-1, 1] [−1,1])映射到整个实数轴 ( − ∞ , + ∞ ) (-\infty, +\infty) (−∞,+∞),使得被积函数在变换后的空间中变得非常光滑、快速衰减,从而可以用简单的等距求积公式(如梯形法则)获得极高的精度。
2. 变量变换
考虑标准积分:
I = ∫ − 1 1 f ( x ) d x I = \int_{-1}^{1} f(x) \, dx I=∫−11f(x)dx
引入变量变换:
x = tanh ( π 2 sinh t ) , t ∈ ( − ∞ , + ∞ ) x = \tanh\left( \frac{\pi}{2} \sinh t \right), \quad t \in (-\infty, +\infty) x=tanh(2πsinht),t∈(−∞,+∞)
该变换具有以下性质:
- 当 t → ± ∞ t \to \pm\infty t→±∞ 时, x → ± 1 x \to \pm 1 x→±1;
- 在 (t = 0) 附近, x ≈ t x \approx t x≈t(局部线性);
- 在端点 x = ± 1 x = \pm 1 x=±1 附近,变换将奇异性“拉平”,使得变换后的被积函数在 (t) 空间中呈指数衰减。
计算微分:
d x = d d t [ tanh ( π 2 sinh t ) ] d t = π 2 cosh t ⋅ sech 2 ( π 2 sinh t ) d t dx = \frac{d}{dt} \left[ \tanh\left( \frac{\pi}{2} \sinh t \right) \right] dt = \frac{\pi}{2} \cosh t \cdot \text{sech}^2\left( \frac{\pi}{2} \sinh t \right) dt dx=dtd[tanh(2πsinht)]dt=2πcosht⋅sech2(2πsinht)dt
于是原积分变为:
I = ∫ − ∞ ∞ f ( tanh ( π 2 sinh t ) ) ⋅ π 2 cosh t ⋅ sech 2 ( π 2 sinh t ) d t I = \int_{-\infty}^{\infty} f\left( \tanh\left( \frac{\pi}{2} \sinh t \right) \right) \cdot \frac{\pi}{2} \cosh t \cdot \text{sech}^2\left( \frac{\pi}{2} \sinh t \right) \, dt I=∫−∞∞f(tanh(2πsinht))⋅2πcosht⋅sech2(2πsinht)dt
定义变换后的被积函数:
g ( t ) = f ( tanh ( π 2 sinh t ) ) ⋅ π 2 cosh t ⋅ sech 2 ( π 2 sinh t ) g(t) = f\left( \tanh\left( \frac{\pi}{2} \sinh t \right) \right) \cdot \frac{\pi}{2} \cosh t \cdot \text{sech}^2\left( \frac{\pi}{2} \sinh t \right) g(t)=f(tanh(2πsinht))⋅2πcosht⋅sech2(2πsinht)
则:
I = ∫ − ∞ ∞ g ( t ) d t I = \int_{-\infty}^{\infty} g(t) \, dt I=∫−∞∞g(t)dt
3. 数值离散化:梯形法则
由于 g ( t ) g(t) g(t) 在 ∣ t ∣ → ∞ |t| \to \infty ∣t∣→∞ 时呈双指数衰减(double exponential decay),即衰减速度比任何指数函数还快,因此可以使用等距梯形法则进行高精度近似:
I ≈ h ∑ k = − N N g ( k h ) I \approx h \sum_{k = -N}^{N} g(kh) I≈hk=−N∑Ng(kh)
其中 h > 0 h > 0 h>0 是步长, N N N 是截断参数。由于 g ( t ) g(t) g(t) 衰减极快,只需取较小的 (N) 即可获得极高精度(例如 30 位甚至更高)。
对应的求积节点和权重为:
- 节点: x k = tanh ( π 2 sinh ( k h ) ) x_k = \tanh\left( \frac{\pi}{2} \sinh(kh) \right) xk=tanh(2πsinh(kh))
- 权重: w k = h ⋅ π 2 cosh ( k h ) ⋅ sech 2 ( π 2 sinh ( k h ) ) w_k = h \cdot \frac{\pi}{2} \cosh(kh) \cdot \text{sech}^2\left( \frac{\pi}{2} \sinh(kh) \right) wk=h⋅2πcosh(kh)⋅sech2(2πsinh(kh))
于是:
∫ − 1 1 f ( x ) d x ≈ ∑ k = − N N w k f ( x k ) \int_{-1}^{1} f(x) \, dx \approx \sum_{k = -N}^{N} w_k f(x_k) ∫−11f(x)dx≈k=−N∑Nwkf(xk)
注意:由于对称性,通常只计算 k ≥ 0 k \geq 0 k≥0,并利用 x − k = − x k x_{-k} = -x_k x−k=−xk、 w − k = w k w_{-k} = w_k w−k=wk 来减少计算量。
4. 优点
- 适用于端点奇异函数:如 f ( x ) = log ( 1 + x ) f(x) = \log(1+x) f(x)=log(1+x)、 ( 1 − x ) α (1-x)^\alpha (1−x)α( α > − 1 \alpha > -1 α>−1)等在端点不可导或发散的函数。
- 收敛速度极快:误差随 N N N 呈双指数下降(即 exp ( − C exp ( c N ) ) \exp(-C \exp(cN)) exp(−Cexp(cN))),远快于高斯求积的代数或指数收敛。
- 实现简单:只需计算节点和权重,使用对称梯形求和。
- 高精度:常用于任意精度数值计算(如 MPFR、Arb 等库)。
5. 局限性
- 主要适用于有限区间(通常先变换到 [ − 1 , 1 ] [-1,1] [−1,1])。
- 对于振荡剧烈或内部奇点的函数效果不佳。
- 需要函数在端点附近可解析延拓(否则精度可能下降)。
6. 应用场景
- 高精度数学库(如 mpmath、Arb、Boost)中的默认积分器。
- 计算特殊函数(如 Gamma、Zeta 函数)的积分表示。
- 物理和工程中涉及对数、根号等端点奇异性的积分。
7. 示例(Python 伪代码)
import mpmath as mp
mp.mp.dps = 50 # 50位精度
f = lambda x: mp.log(1 + x) / mp.sqrt(1 - x)
result = mp.quad(f, [-1, 1]) # mpmath 默认使用 tanh-sinh
print(result)
总结
tanh-sinh 积分是一种基于双曲函数变量变换的高效数值积分方法,特别适合处理在积分区间端点处有奇异性或陡峭变化的函数。其双指数收敛特性使其成为高精度计算中的首选方法之一。
如需进一步了解,可参考:
- Takahasi, H., & Mori, M. (1974). “Double exponential formulas for numerical integration.” Publications of the Research Institute for Mathematical Sciences.
- Bailey, D. H., et al. (2005). “High-precision numerical integration: Progress and challenges.”

174

被折叠的 条评论
为什么被折叠?



