跳到主要内容

Gauss 求积

一、直观理解:把节点位置也优化掉​

梯形与 Simpson 的节点通常是等距的。Gauss 求积(Gaussian quadrature)允许在区间内自由选择节点与权重,使得对尽可能高次的多项式积分精确。nn 点 Gauss-Legendre 公式对次数 ≤2n−1\le 2n-1 的多项式精确成立,因此用很少的函数求值就能达到很高精度。

直观上:同样“采样预算”,与其均匀撒点,不如把点放在对积分更有信息的位置。

二、适用场景与优缺点​

类型说明
适用场景光滑被积函数;可在任意点求值;需要少节点高精度;理论与谱方法中的标准组件。
核心优点代数精度高;节点少;有完整正交多项式理论;可推广到 Gauss-Hermite/Laguerre(带权积分)。
局限与缺点节点非等距,不适合只能给函数表的情形;高振荡/奇异需特化;自己算高阶节点权重有数值难度(应用库)。

三、核心原理​

在 [−1,1][-1,1] 上,

∫−11f(x) dx≈∑i=1nwif(xi)\int_{-1}^{1}f(x)\,\mathrm{d}x\approx\sum_{i=1}^n w_i f(x_i)

其中 xix_i 为 Legendre 多项式 PnP_n 的根,wiw_i 为相应权重。对一般 [a,b][a,b] 做仿射变换:

x=b−a2t+a+b2,dx=b−a2dtx=\frac{b-a}{2}t+\frac{a+b}{2},\quad \mathrm{d}x=\frac{b-a}{2}\mathrm{d}t

带权推广​

  • Gauss-Hermite:∫−∞∞e−x2f(x)dx\int_{-\infty}^{\infty}e^{-x^2}f(x)dx,蒙特卡洛期望的确定性对照;
  • Gauss-Laguerre:∫0∞e−xf(x)dx\int_0^{\infty}e^{-x}f(x)dx。

四、实践要点​

  • 低阶可手写节点;高阶用 legpts(Chebfun)或查表/integral;
  • 先把区间映到 [−1,1][-1,1];
  • 对奇异权函数选对 Gauss 类型;
  • 与复合低阶方法对比验证。

五、MATLAB 示例​

%% 2 点与 3 点 Gauss-Legendre 积分
% [-1,1] 上 2 点: x=±1/sqrt(3), w=1,1
% 3 点: x=0, ±sqrt(0.6), w=8/9,5/9,5/9

function I = gaussLegendre01(f, n)
% 积分 \int_0^1 f(x) dx
if n == 2
t = [-1; 1]/sqrt(3);
w = [1; 1];
elseif n == 3
t = [0; -sqrt(0.6); sqrt(0.6)];
w = [8/9; 5/9; 5/9];
else
error("本示例仅实现 n=2,3");
end
% 映到 [0,1]
x = 0.5*t + 0.5;
ww = 0.5*w;
I = sum(ww .* f(x));
end

f = @(x) exp(x);
trueVal = exp(1)-1;
for n = [2 3]
approx = gaussLegendre01(f, n);
fprintf("n=%d, approx=%.12f, err=%.3e\n", n, approx, abs(approx-trueVal));
end

% 对比:梯形用更多点
x = linspace(0,1,5);
fprintf("trapz 5 点 err=%.3e\n", abs(trapz(x,f(x))-trueVal));

高阶可用内置自适应(底层亦含高阶规则):

f = @(x) cos(x.^2); % Fresnel 型
I = integral(f, 0, sqrt(pi));
fprintf("integral 结果 = %.12f\n", I);

Gauss-Hermite 思想示例(估计 E[g(Z)],Z∼N(0,1)\mathbb{E}[g(Z)],Z\sim N(0,1)):

% 3 点 Hermite 近似 \int e^{-x^2} g(x) dx,再换元到标准正态需系数
% 这里直接用蒙特卡洛对照
rng(1);
g = @(z) cos(z);
mc = mean(g(randn(1e5,1)));
fprintf("E[cos(Z)] MC ≈ %.6f, 真值 e^{-0.5}=%.6f\n", mc, exp(-0.5));

六、如何解释结果​

说明 Gauss 类型、点数、区间变换、近似值与误差。强调“nn 点精确到 2n−12n-1 次”只对多项式保证,对一般 ff 仍是逼近。

七、常见误区​

1. 把函数表硬塞进 Gauss 节点​

Gauss 需要在特定节点求值。

2. 区间变换漏掉雅可比因子 (b−a)/2(b-a)/2​

这是最常见实现错误。

3. 对不光滑 ff 盲目追高阶​

光滑性不足时高阶优势消失,应分段或变元去奇异。

附:建模流程中的落地清单(Gauss 求积)​

在竞赛或课程论文中,仅写出定义式往往不够。建议按下列顺序组织材料,既能保证可复现,也便于评委快速抓住贡献。

1. 问题对齐​

先用两三句话说明:题目中的哪个子问题对应本方法,输入是什么,输出要支持什么决策。避免“因为常见所以使用”。若存在更简单的替代方法,应说明为何不够用。

2. 符号与单位​

列出核心符号表,强调单位一致。许多错误并非算法失败,而是日/年、米/千米、概率/百分比混用。对无量纲参数,说明取值来源(估计、文献、情景设定)。

3. 关键公式回顾​

nn 点 Gauss-Legendre 对次数 ≤2n−1\le 2n-1 的多项式精确。区间变换必须乘上 (b−a)/2(b-a)/2。

4. 计算与实现要点​

  • 固定随机种子(若涉及随机);
  • 记录中间量以便手算核对小例子;
  • 用极限情形或解析特例做冒烟测试;
  • 保存主要输入输出到表格,便于敏感性分析复用。

5. 补充 MATLAB 片段​

t=[-1;1]/sqrt(3); w=[1;1]; a=0;b=1; x=0.5*t+0.5; ww=0.5*w; I=sum(ww.*exp(x)); fprintf('%.12f vs %.12f\n',I,exp(1)-1);

6. 结果报告模板​

建议至少报告:点数、节点权重来源、区间变换、误差。

7. 何时不该使用​

只有函数表却强行 Gauss;或漏掉仿射变换的雅可比因子。

完成以上清单后,再进入“小结”中的一句话金句,通常论文的方法段与验证段就会扎实许多。

八、小结​

Gauss 求积通过优化节点与权重,用极少求值达到高代数精度,是光滑积分的利器,并推广到带权与高维(张量积/稀疏网格)。理解梯形/Simpson/Gauss 的谱系,有助于在建模中按数据形态选择合适的积分器。