tanh-sinh 数值积分方法


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 xt(局部线性);
  • 在端点 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πcoshtsech2(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πcoshtsech2(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πcoshtsech2(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) Ihk=NNg(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=h2π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)dxk=NNwkf(xk)

注意:由于对称性,通常只计算 k ≥ 0 k \geq 0 k0,并利用 x − k = − x k x_{-k} = -x_k xk=xk w − k = w k w_{-k} = w_k wk=wk 来减少计算量。


4. 优点

  • 适用于端点奇异函数:如 f ( x ) = log ⁡ ( 1 + x ) f(x) = \log(1+x) f(x)=log(1+x) ( 1 − x ) α (1-x)^\alpha (1x)α α > − 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.”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值