跳到主要内容

Simpson 公式

一、直观理解:用抛物线代替直线去拼面积​

Simpson 公式在每个(或每两个)子区间上用二次多项式插值被积函数,再精确积分抛物线。它通常比梯形公式用同样节点得到更高精度,是手算与教学中最常用的高阶等距求积法。

复合 Simpson 要求把区间分成偶数段(经典形式),像一对一对地盖抛物线拱。

二、适用场景与优缺点​

类型说明
适用场景等距节点;函数较光滑;需要比梯形更高的精度;教学与快速实现。
核心优点误差 O(h4)O(h^4),性价比高;实现仍简单;对三次多项式在单区间上甚至可精确(四点误差涉及四阶导)。
局限与缺点需要偶数分段;函数光滑性不足时阶数下降;奇异/强振荡不如自适应或变元法;节点不可自由选时不如理解 Gauss 灵活。

三、核心原理​

单区间 [a,b][a,b] 的 Simpson(用中点 mm):

∫abf≈b−a6(f(a)+4f(m)+f(b))\int_a^b f\approx\frac{b-a}{6}\big(f(a)+4f(m)+f(b)\big)

复合形式(nn 为偶数,h=(b−a)/nh=(b-a)/n):

∫abf≈h3(f0+4∑i oddfi+2∑i evenfi+fn)\int_a^b f\approx\frac{h}{3}\Big(f_0+4\sum_{i\ \mathrm{odd}}f_i+2\sum_{i\ \mathrm{even}}f_i+f_n\Big)

误差:

E=−(b−a)180h4f(4)(ξ)E=-\frac{(b-a)}{180}h^4 f^{(4)}(\xi)

四、实践要点​

  • 保证偶数段;
  • 用 nn 与 2n2n 做 Richardson 外推可估计误差;
  • 数据点数为偶数个间隔时才直接套公式;
  • 更一般场合可用 integral 自适应。

五、MATLAB 示例​

%% 复合 Simpson 积分
f = @(x) sin(x);
a = 0; b = pi;
trueVal = 2; % \int_0^pi sin = 2

function s = simpson(f, a, b, n)
if mod(n,2) ~= 0
error("n 必须为偶数");
end
h = (b-a)/n;
x = a + (0:n)*h;
y = f(x);
s = h/3 * (y(1) + y(end) + 4*sum(y(2:2:end-1)) + 2*sum(y(3:2:end-2)));
end

ns = [4 8 16 32 64];
for n = ns
s = simpson(f, a, b, n);
fprintf("n=%2d, approx=%.12f, err=%.3e\n", n, s, abs(s-trueVal));
end

% 与梯形对比
x = linspace(a,b,65);
fprintf("trapz err = %.3e\n", abs(trapz(x,f(x))-trueVal));
fprintf("Simpson n=64 err = %.3e\n", abs(simpson(f,a,b,64)-trueVal));

收敛阶验证:

f = @(x) exp(x);
a=0; b=1; trueVal = exp(1)-1;
n1=32; n2=64;
e1 = abs(simpson(f,a,b,n1)-trueVal);
e2 = abs(simpson(f,a,b,n2)-trueVal);
p = log(e1/e2)/log(2);
fprintf("观测收敛阶 ≈ %.2f(理论 4)\n", p);

六、如何解释结果​

写明分段数、是否复合 Simpson、近似值与误差估计。若函数四阶导很大,应说明需要更密网格或换方法。

七、常见误区​

1. nn 为奇数硬套公式​

应改 nn 或改用其他规则。

2. 认为永远比梯形准​

光滑性不足或实现有误时未必。

3. 忽略端点权重模式​

系数是 1-4-2-4-...-2-4-1,写错会系统偏差。

附:建模流程中的落地清单(Simpson 公式)​

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

1. 问题对齐​

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

2. 符号与单位​

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

3. 关键公式回顾​

用抛物线片逼近,复合误差 O(h4)O(h^4),但经典形式要求偶数段。

4. 计算与实现要点​

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

5. 补充 MATLAB 片段​

% 见正文 simpson 实现;此处用 integral 对照
fprintf('%.12f\n', integral(@(x)sin(x),0,pi));

6. 结果报告模板​

建议至少报告:分段数(偶数)、近似值、观测收敛阶、与梯形误差对比。

7. 何时不该使用​

nn 为奇数仍硬套系数模板;或函数不光滑却声称四阶精度。

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

八、小结​

Simpson 公式用抛物线片逼近被积函数,复合形式具有 O(h4)O(h^4) 精度,是等距节点下性价比很高的经典方法。理解它有助于过渡到更高阶牛顿—科特斯公式与自适应积分。