关于Newton-Cotes方法N=2时系数与精度阶的求解疑问
我来一步步帮你推导这个结果,核心是严格按照题目里的( h )定义展开泰勒级数,别和其他资料里不同的( h )定义混淆了~
题目里给出 ( h = \frac{b-a}{N+1} ),当 ( N=2 ) 时,( h = \frac{b-a}{3} ),也就是 ( b = a + 3h )。
按照提示令 ( x = a + y ),则积分上下限从 ( [a,b] ) 变为 ( [0, 3h] ),原积分转换为:
$$\int_{0}^{3h} f(a+y) dy = h\left(c_1 f(a+h) + c_2 f(a+2h)\right) + O(h^p)$$
因为 ( f ) 充分可微,将 ( f(a+y) ) 在 ( y=0 ) 处展开为泰勒级数:
$$f(a+y) = f(a) + f'(a)y + \frac{f''(a)}{2!}y^2 + \frac{f'''(a)}{3!}y^3 + O(y^4)$$
对其从0到3h积分:
$$
\begin{align*}
\int_{0}^{3h} f(a+y) dy &= f(a)\int_{0}^{3h} dy + f'(a)\int_{0}^{3h} y dy + \frac{f''(a)}{2}\int_{0}^{3h} y^2 dy + \frac{f'''(a)}{6}\int_{0}^{3h} y^3 dy + O(h^5) \
&= 3h f(a) + \frac{9}{2}h^2 f'(a) + \frac{9}{2}h^3 f''(a) + \frac{27}{8}h^4 f'''(a) + O(h^5)
\end{align*}
$$
同样将 ( f(a+h) ) 和 ( f(a+2h) ) 在 ( a ) 处展开:
$$
\begin{align*}
f(a+h) &= f(a) + h f'(a) + \frac{h^2}{2}f''(a) + \frac{h^3}{6}f'''(a) + O(h^4) \
f(a+2h) &= f(a) + 2h f'(a) + 2h^2 f''(a) + \frac{4h^3}{3}f'''(a) + O(h^4)
\end{align*}
$$
代入右边的表达式:
$$
\begin{align*}
h\left(c_1 f(a+h) + c_2 f(a+2h)\right) &= h\left[ c_1\left(f(a)+hf'(a)+\frac{h^2}{2}f''(a)\right) + c_2\left(f(a)+2hf'(a)+2h^2f''(a)\right) \right] + O(h^4) \
&= (c_1+c_2)h f(a) + (c_1+2c_2)h^2 f'(a) + \left(\frac{c_1}{2}+2c_2\right)h^3 f''(a) + O(h^4)
\end{align*}
$$
让左右两边的泰勒展开式低次项系数相等(误差项由最高次不匹配的项决定):
- 匹配 ( h^1 ) 项:( c_1 + c_2 = 3 )
- 匹配 ( h^2 ) 项:( c_1 + 2c_2 = \frac{9}{2} )
解这两个方程:
从第一个方程得 ( c_1 = 3 - c_2 ),代入第二个方程:
$$3 - c_2 + 2c_2 = \frac{9}{2} \implies c_2 = \frac{3}{2}$$
则 ( c_1 = 3 - \frac{3}{2} = \frac{3}{2} )
现在看 ( h^3 ) 项的系数:
左边系数是 ( \frac{9}{2} ),右边代入 ( c_1=c_2=\frac{3}{2} ) 后系数是 ( \frac{3/2}{2} + 2\times\frac{3}{2} = \frac{3}{4} + 3 = \frac{15}{4} )
两者的差为 ( \frac{9}{2} - \frac{15}{4} = \frac{3}{4} ),所以等式变为:
$$\int_{a}^{b}f(x)dx = h\left(\frac{3}{2}f(a+h)+\frac{3}{2}f(a+2h)\right) + \frac{3}{4}h^3 f''(a) + O(h^4)$$
这里误差的主导项是 ( h^3 ),所以误差阶 ( p=3 )。
这是因为其他资料里的h定义不同:比如梯形公式中,通常把 ( h = \frac{b-a}{N} )(N是区间份数),如果用两个点 ( a+h ) 和 ( a+2h ) 但此时 ( h=\frac{b-a}{2} ),那系数会是 ( \frac{1}{2} ),但这和题目里 ( h=\frac{b-a}{N+1} ) 的定义完全不一样,所以别混淆啦!
内容的提问来源于stack exchange,提问作者Joe Goldiamond

