高斯-勒让德求积公式在带边界层函数积分中的变量替换技巧
题目描述
计算积分
\[I = \int_{0}^{1} e^{-x/\varepsilon} \cos(x) \, dx \]
其中 \(\varepsilon > 0\) 是一个极小的参数(例如 \(\varepsilon = 0.01\))。这类积分在边界层问题中常见,被积函数在积分区间端点 \(x=0\) 附近变化剧烈(边界层),而远离边界层时变化平缓。直接使用高斯-勒让德求积公式需要大量节点才能捕捉边界层行为。要求通过变量替换技巧,将原积分变换为更适合高斯-勒让德公式计算的形式。
解题过程
1. 问题分析
- 当 \(\varepsilon \ll 1\) 时,指数项 \(e^{-x/\varepsilon}\) 在 \(x=0\) 附近急剧衰减(边界层厚度约 \(\varepsilon\)),而 \(\cos(x)\) 变化相对缓慢。
- 直接应用高斯-勒让德公式需在边界层内密集布点,否则误差较大,但节点数增加会降低效率。
- 目标:通过变量替换拉伸边界层区域,使被积函数在新变量下变化更平缓。
2. 变量替换的构造
- 核心思想:选择单调可微函数 \(x = \phi(t)\),将原积分变为
\[ I = \int_{a}^{b} f(x) \, dx = \int_{\phi^{-1}(a)}^{\phi^{-1}(b)} f(\phi(t)) \phi'(t) \, dt. \]
- 理想替换应使新被积函数 \(f(\phi(t)) \phi'(t)\) 在整个区间上变化均匀。
- 针对边界层问题,常用对数拉伸或指数拉伸。此处选择:
\[ x = -\varepsilon \ln(1 - t), \quad t \in [0, 1) \]
但需注意 \(t=1\) 对应 \(x \to \infty\),而原积分上限为 \(1\)。因此需调整为有限区间映射。
3. 具体替换步骤
- 令 \(x = -\varepsilon \ln(1 - t)\),则:
- 当 \(t=0\) 时,\(x=0\);当 \(t \to 1^-\) 时,\(x \to +\infty\)。
- 原积分上限为 \(1\),需解方程 \(1 = -\varepsilon \ln(1 - t_1)\),得 \(t_1 = 1 - e^{-1/\varepsilon}\)。
- 导数 \(\frac{dx}{dt} = \frac{\varepsilon}{1 - t}\)。
- 替换后积分变为:
\[ I = \int_{0}^{t_1} e^{-(-\varepsilon \ln(1-t))/\varepsilon} \cos(-\varepsilon \ln(1-t)) \cdot \frac{\varepsilon}{1-t} \, dt. \]
简化指数项:\(e^{-x/\varepsilon} = e^{\ln(1-t)} = 1-t\),因此:
\[ I = \varepsilon \int_{0}^{t_1} \cos(-\varepsilon \ln(1-t)) \, dt. \]
- 问题:新积分上限 \(t_1 = 1 - e^{-1/\varepsilon}\) 极接近 \(1\)(例如 \(\varepsilon=0.01\) 时 \(t_1 \approx 0.9999546\)),且被积函数在 \(t \to 1^-\) 时振荡加剧(因 \(\ln(1-t) \to -\infty\))。此替换不理想。
4. 改进替换方案
- 采用分段策略:将积分拆分为边界层区域 \([0, \delta]\) 和平滑区域 \([\delta, 1]\),其中 \(\delta\) 略大于边界层厚度(如 \(\delta = 5\varepsilon\))。
- 在 \([0, \delta]\) 上使用拉伸替换,在 \([\delta, 1]\) 上直接积分。
- 边界层区间替换:令 \(x = \delta t\)(线性缩放)或更精细的指数替换 \(x = -\varepsilon \ln(1 - t)\),但需调整映射至 \([0, \delta]\)。
- 实用方案:令 \(x = \delta \cdot (1 - e^{-t/\varepsilon}) / (1 - e^{-\delta/\varepsilon})\),但计算复杂。简化版用 \(x = \delta t\),则:
\[ I_1 = \int_{0}^{\delta} e^{-x/\varepsilon} \cos(x) \, dx = \delta \int_{0}^{1} e^{-(\delta t)/\varepsilon} \cos(\delta t) \, dt. \]
此时被积函数在 \(t \in [0,1]\) 上平滑(因 \(\delta\) 小,指数衰减已缓和)。
- 平滑区间 \(I_2 = \int_{\delta}^{1} e^{-x/\varepsilon} \cos(x) \, dx\) 可直接用高斯-勒让德公式。
5. 数值实现要点
- 拆分点 \(\delta\) 选为 \(5\varepsilon\)(覆盖 \(e^{-5} \approx 0.0067\) 的衰减)。
- 对 \(I_1\) 和 \(I_2\) 分别应用 \(n\) 点高斯-勒让德公式(如 \(n=10\)):
- \(I_1 \approx \delta \sum_{i=1}^n w_i e^{-\delta t_i/\varepsilon} \cos(\delta t_i)\),其中 \(t_i\) 和 \(w_i\) 为 \([-1,1]\) 上节点和权重映射到 \([0,1]\) 的结果。
- \(I_2 \approx \frac{1-\delta}{2} \sum_{i=1}^n w_i e^{-x_i/\varepsilon} \cos(x_i)\),其中 \(x_i = \delta + \frac{1-\delta}{2}(1 + \xi_i)\)(\(\xi_i\) 为 \([-1,1]\) 上节点)。
- 总积分 \(I \approx I_1 + I_2\).
6. 误差与优势
- 变量替换后,各子区间被积函数更平滑,高斯-勒让德公式可用较少节点达到高精度。
- 对比直接积分:当 \(\varepsilon=0.01\) 时,直接法需约 \(100\) 节点捕捉边界层,而分段法每段用 \(10\) 节点即可,效率提升。
- 误差主要来自高斯公式的截断误差,而非边界层遗漏。
总结:通过分段积分和边界层区域的变量替换,将剧烈变化函数转化为平滑函数,充分发挥高斯-勒让德公式的高精度特性,显著减少计算成本。