从Newton-Cotes的截断误差公式可以看出,当积分区间 [ a , b ] [a,b] [a,b]较大时,低阶的Newton-Cotes求积公式截断误差都比较大。由于高阶Newton-Cotes求积公式是数值不稳定的,因此通过不断增加阶数来提高求积公式的精度是不可行的。但是,如果将积分区间 [ a , b ] [a,b] [a,b]分成几个小区间(任意的),在每个小区间上应用Newton-Cotes求积公式,其截断误差必然会减小,然后再把每个小区间上的积分值累加起来,这样却能大大提高整个积分的精度。这种方法称为复化求积方法。

常用的复化求积方法采用等分区间的做法,具体如下:

将区间 [ a , b ] [a,b] [a,b]划分为n等分,步长为 H = ( b − a ) n H=\frac{(b-a)}{n} H=n(ba),分点为 x k = a + k H , k = 0 , 1 , 2 , ⋯   , n x_k=a+kH,k=0,1,2,\cdots,n xk=a+kH,k=0,1,2,,n。先用低阶Newton-Cotes求积公式求得每个子区间 [ x k , x k + 1 ] [x_k,x_{k+1}] [xk,xk+1]上的积分值 I k I_k Ik,然后将它们累加起来求和,用 ∑ k = 0 n − 1 I k \sum_{k=0}^{n-1}I_k k=0n1Ik作为所求积分 I = ∫ a b f ( x ) d x I=\int_a^bf(x)dx I=abf(x)dx的近似值。

1. 复化梯形公式

在区间 [ a , b ] [a,b] [a,b]上采用复化求积方法,具体使用梯形求积公式进行计算,就得到复化梯形求积公式。用 T k T_k Tk表示 f ( x ) f(x) f(x)在子区间 [ x k , x k + 1 ] [x_k,x_{k+1}] [xk,xk+1]上的积分值, T n T_n Tn表示 f ( x ) f(x) f(x)在区间 [ a , b ] [a,b] [a,b]上的积分值,有:
T k = 1 2 H [ f ( x k ) + f ( x k + 1 ) ] T_k=\frac{1}{2}H[f(x_k)+f(x_{k+1})] Tk=21H[f(xk)+f(xk+1)]
其中
H = ( b − a ) / n , x k = a + k H ( k = 0 , 1 , 2 , ⋯   , n ) H=(b-a)/n, \quad x_k=a+kH \quad(k=0,1,2,\cdots,n) H=(ba)/n,xk=a+kH(k=0,1,2,,n)

T n = ∑ k = 0 n − 1 T k = 1 2 H ∑ k = 0 n − 1 [ f ( x k ) + f ( x k + 1 ) ] T_n=\sum_{k=0}^{n-1}T_k=\frac{1}{2}H\sum_{k=0}^{n-1}[f(x_k)+f(x_{k+1})] Tn=k=0n1Tk=21Hk=0n1[f(xk)+f(xk+1)]
即:
T n = 1 2 H [ f ( x k = 0 ) + f ( x k = n ) + 2 ∑ k = 1 n − 1 f ( x k ) ] T_n=\frac{1}{2}H[f(x_{k=0})+f(x_{k=n})+2\sum_{k=1}^{n-1}f(x_k)] Tn=21H[f(xk=0)+f(xk=n)+2k=1n1f(xk)]

T n = b − a 2 n [ f ( a ) + f ( b ) + 2 ∑ k = 1 n − 1 f ( x k ) ] T_n=\frac{b-a}{2n}[f(a)+f(b)+2\sum_{k=1}^{n-1}f(x_k)] Tn=2nba[f(a)+f(b)+2k=1n1f(xk)]
截断误差用 R T R_T RT表示,由于 f ( x ) f(x) f(x)在区间 [ a , b ] [a,b] [a,b]上有连续的二阶导数,故有:
R T = ∑ k = 0 n − 1 − 1 12 H 3 f ( 2 ) ( η k ) = − 1 12 H 3 ∑ k = 0 n − 1 f ( 2 ) ( η k ) η k ∈ [ x k , x k + 1 ] R_T=\sum_{k=0}^{n-1}-\frac{1}{12}H^3f^{(2)}(\eta_k)=-\frac{1}{12}H^3\sum_{k=0}^{n-1}f^{(2)}(\eta_k) \quad \eta_k\in[x_k,x_{k+1}] RT=k=0n1121H3f(2)(ηk)=121H3k=0n1f(2)(ηk)ηk[xk,xk+1]

R T = − 1 12 H 3 ⋅ n ⋅ f ( 2 ) ( η ) = − ( b − a ) 12 H 2 f n ( η ) η ∈ [ a , b ] R_T=-\frac{1}{12}H^3·n·f^{(2)}(\eta)=-\frac{(b-a)}{12}H^2f^n(\eta) \quad \eta \in [a,b] RT=121H3nf(2)(η)=12(ba)H2fn(η)η[a,b]

2. 复化Simpson公式

在区间 [ a , b ] [a,b] [a,b]上采用复化求积方法,具体使用Simpson求积公式进行计算,就得到复化Simpson公式。用 S k S_k Sk表示 f ( x ) f(x) f(x)在子区间 [ x k , x k + 1 ] [x_k,x_{k+1}] [xk,xk+1]上的积分值, S n S_n Sn表示 f ( x ) f(x) f(x)在区间 [ a , b ] [a,b] [a,b]上的积分值,有:
S k = 1 6 H [ f ( x k ) + 4 f ( x k + 1 2 ) + f ( x k + 1 ) ] S_k=\frac{1}{6}H[f(x_k)+4f(x_{k+\frac{1}{2}})+f(x_{k+1})] Sk=61H[f(xk)+4f(xk+21)+f(xk+1)]
式中, x k + 1 2 x_{k+\frac{1}{2}} xk+21为子区间 [ x k , x k + 1 2 ] [x_k,x_{k+\frac{1}{2}}] [xk,xk+21]的中点, H = ( b − a ) / n H=(b-a)/n H=(ba)/n
S n = ∑ k = 0 n − 1 = 1 6 H ∑ k = 0 n − 1 [ f ( x k ) + 4 f ( x k + 1 2 ) + f ( x k + 1 ) ] S_n=\sum_{k=0}^{n-1}=\frac{1}{6}H\sum_{k=0}^{n-1}[f(x_k)+4f(x_{k+\frac{1}{2}})+f(x_{k+1})] Sn=k=0n1=61Hk=0n1[f(xk)+4f(xk+21)+f(xk+1)]

S n = ∑ k = 0 n − 1 = 1 6 H [ f ( a ) + 4 ∑ k = 0 n − 1 f ( x k + 1 2 ) + 2 ∑ k = 1 n − 1 f ( x k ) + f ( b ) ] S_n=\sum_{k=0}^{n-1}=\frac{1}{6}H[f(a)+4\sum_{k=0}^{n-1}f(x_{k+\frac{1}{2}})+2\sum_{k=1}^{n-1}f(x_{k})+f(b)] Sn=k=0n1=61H[f(a)+4k=0n1f(xk+21)+2k=1n1f(xk)+f(b)]
截断误差用 R s R_s Rs表示,由于 f ( x ) f(x) f(x)在区间 [ a , b ] [a,b] [a,b]上有连续的四阶导数,故有:
R S = ∑ k = 0 n − 1 − 1 2880 H 5 f ( 4 ) ( η k ) = − 1 2880 H 5 ∑ k = 0 n − 1 f ( 4 ) ( η k ) η k ∈ [ x k , x k + 1 ] R_S=\sum_{k=0}^{n-1}-\frac{1}{2880}H^5f^{(4)}(\eta_k)=-\frac{1}{2880}H^5\sum_{k=0}^{n-1}f^{(4)}(\eta_k) \quad \eta_k \in [x_k,x_{k+1}] RS=k=0n128801H5f(4)(ηk)=28801H5k=0n1f(4)(ηk)ηk[xk,xk+1]

3. 复化Cotes公式

在区间 [ a , b ] [a,b] [a,b]上采用复化求积方法,具体使用Cotes求积公式进行计算,就得到复化Cotes公式为:
C n = 1 90 H [ 7 f ( a ) + 32 ∑ k = 0 n − 1 f ( x k + 1 4 ) + 12 ∑ k = 0 n − 1 f ( x k + 1 2 ) + 32 ∑ k = 0 n − 1 f ( x k + 3 4 ) + 14 ∑ k = 1 n − 1 f ( x k ) + 7 f ( b ) ] C_n=\frac{1}{90}H[7f(a)+32\sum_{k=0}^{n-1}f(x_{k+\frac{1}{4}})+12\sum_{k=0}^{n-1}f(x_{k+\frac{1}{2}})+32\sum_{k=0}^{n-1}f(x_{k+\frac{3}{4}})+14\sum_{k=1}^{n-1}f(x_k)+7f(b)] Cn=901H[7f(a)+32k=0n1f(xk+41)+12k=0n1f(xk+21)+32k=0n1f(xk+43)+14k=1n1f(xk)+7f(b)]
截断误差为:
R c = − 2 ( b − a ) 945 ( H 4 ) 6 f ( 6 ) ( η ) η ∈ [ a , b ] R_c=-\frac{2(b-a)}{945}(\frac{H}{4})^6f^{(6)}(\eta) \quad \eta\in[a,b] Rc=9452(ba)(4H)6f(6)(η)η[a,b]
从复化求积的余项公式中可以看出,复化梯形公式、复化Simpson公式、复化Cotes公式的余项和步长的关系为 R T = O ( h 2 ) , R s = O ( h 4 ) , R c = O ( h 6 ) R_T=O(h^2),R_s=O(h^4),R_c=O(h^6) RT=O(h2),Rs=O(h4),Rc=O(h6)。因此,当 H → 0 H\to 0 H0 n → ∞ n\to \infty n时, T n , S n , C n → I T_n,S_n,C_n\to I Tn,Sn,CnI

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐