研究背景
积分的数学解法为牛顿莱布尼兹公式,数学表示为
∫
a
b
f
(
x
)
d
x
=
F
(
b
)
−
F
(
a
)
\int_{a}^{b} f(x)dx=F(b)-F(a)
∫abf(x)dx=F(b)−F(a),但应用该方法有如下困难:
1,
f
(
x
)
f(x)
f(x)的原函数有时不能用初等函数表示,如
e
−
x
2
e^{-x^2}
e−x2和
s
i
n
x
x
\frac{sinx}{x}
xsinx;
2,原函数可以用初等函数表示,但很复杂,如
x
2
1
+
2
x
2
x^2\sqrt{1+2x^2}
x21+2x2;
3,
f
(
x
)
f(x)
f(x)本身无表达式,只有在若干点上的值。
针对这些问题,本章介绍几种近似求解积分的方法。
数值积分公式
数值积分
由中值定理 ∫ a b f ( x ) d x = f ( ξ ) ( b − a ) , \int_{a}^{b} f(x)dx=f(\xi)(b-a), ∫abf(x)dx=f(ξ)(b−a),其中 f ( ξ ) f(\xi) f(ξ)为 f ( x ) f(x) f(x)在[a,b]上的平均高度,可以不求原函数计算积分,但 ξ \xi ξ未知,故基于该方法,提出数值积分公式——用a代替 ξ \xi ξ,即 ∫ a b f ( x ) d x ≈ f ( a ) ( b − a ) \int_{a}^{b} f(x)dx\approx f(a)(b-a) ∫abf(x)dx≈f(a)(b−a),计算左端点为宽的矩阵公式,称为左矩阵公式,同理还有右矩阵公式 f ( b ) ( b − a ) f(b)(b-a) f(b)(b−a)和中矩阵公式 f ( a + b 2 ) ( b − a ) f(\frac{a+b}{2})(b-a) f(2a+b)(b−a)。
矩形的误差可能过于大了,该方法则再次修正为 f ( a ) + f ( b ) 2 ( b − a ) \frac{f(a)+f(b)}{2}(b-a) 2f(a)+f(b)(b−a),即根据端点函数值计算梯形面积近似积分值。
该方法的再次改进为近似计算函数的平均值, f ( ξ ) ( b − a ) ≈ ∑ k = 0 n f ( x k ) n + 1 ( b − a ) f(\xi)(b-a)\approx \frac{\sum_{k=0}^{n}f(x_{k})}{n+1}(b-a) f(ξ)(b−a)≈n+1∑k=0nf(xk)(b−a),用多个点的平均值代替 f ( ξ ) f(\xi) f(ξ),上式可抽象为 ∑ k = 0 n A k f ( x k ) \sum_{k=0}^{n}A_{k}f(x_{k}) ∑k=0nAkf(xk),其中 A k A_{k} Ak称为权,该算法关键在于如何确定 A k A_{k} Ak和 x k x_{k} xk,取点越多一定越精确,但如何衡量精确程度呢?
误差分析 R ( x ) = ∫ a b f ( x ) d x − ∑ k = 0 n A k f ( x k ) R(x)=\int_{a}^{b} f(x)dx-\sum_{k=0}^{n}A_{k}f(x_{k}) R(x)=∫abf(x)dx−∑k=0nAkf(xk)
代数精度
定义:若数值积分公式对一切 ≤ m \le m ≤m次的多项式均能精确成立,则称次求积公式至少具有m次代数精度,若求积公式对一切 ≤ m \le m ≤m次的多项式均能精确成立,但对 m + 1 m+1 m+1次多项式不能精确成立,则称此公式的代数精度为m次。
求积公式代数精度越高,使公式精确成立的多项式次数越高。
定理:
求积公式具有m次代数精度的充要条件,当
f
(
x
)
=
1
,
x
,
x
2
.
.
.
x
m
f(x)=1,x,x^{2}...x^{m}
f(x)=1,x,x2...xm时公式均能准确成立,但
f
(
x
)
=
x
m
+
1
f(x)=x^{m+1}
f(x)=xm+1时不能准确成立。
例题:梯形公式的代数精度为多少?
解:梯形公式
∫
a
b
f
(
x
)
d
x
=
f
(
a
)
+
f
(
b
)
2
(
b
−
a
)
\int_{a}^{b} f(x)dx=\frac{f(a)+f(b)}{2}(b-a)
∫abf(x)dx=2f(a)+f(b)(b−a)
令
f
(
x
)
=
1
f(x)=1
f(x)=1,左边=b-a=右边
令
f
(
x
)
=
x
f(x)=x
f(x)=x,左=
b
2
−
a
2
2
\frac{b^{2}-a^{2}}{2}
2b2−a2=右
令
f
(
x
)
=
x
2
f(x)=x^{2}
f(x)=x2,
b
3
−
a
3
2
!
=
(
a
2
+
b
2
)
2
(
b
−
a
)
\frac{b^3-a^3}{2}!=\frac{(a^2+b^2)}{2}(b-a)
2b3−a3!=2(a2+b2)(b−a)=右边
故该公式的代数精度为1。
插值型求积公式及Newton-Cotes公式
插值型求积公式
利用Lagrange插值求n次多项式的
L
n
(
x
)
=
∑
k
=
0
n
f
(
x
k
)
l
k
(
x
)
L_{n}(x)=\sum_{k=0}^{n}f(x_{k})l_{k}(x)
Ln(x)=∑k=0nf(xk)lk(x),
其中
f
(
x
)
=
L
n
(
x
)
+
R
n
(
x
)
,
R
n
x
=
f
n
+
1
(
ξ
)
(
n
+
1
)
!
w
n
+
1
(
x
)
f(x)=L_{n}(x)+R_{n}(x),R_n{x}=\frac{f^{n+1}(\xi)}{(n+1)!}w_{n+1}(x)
f(x)=Ln(x)+Rn(x),Rnx=(n+1)!fn+1(ξ)wn+1(x)
则
∫
a
b
f
(
x
)
d
x
=
∫
a
b
L
n
(
x
)
d
x
+
∫
a
b
R
n
(
x
)
d
x
=
∫
a
b
∑
k
=
0
n
f
(
x
k
)
l
k
(
x
)
d
x
+
∫
a
b
R
n
(
x
)
d
x
=
∑
k
=
0
n
f
(
x
k
)
∫
a
b
l
k
(
x
)
d
x
+
∫
a
b
R
n
(
x
)
d
x
A
k
\int_{a}^{b} f(x)dx=\int_{a}^{b} L_{n}(x)dx+\int_{a}^{b}R_{n}(x)dx=\int_{a}^{b} \sum_{k=0}^{n}f(x_{k})l_{k}(x)dx+\int_{a}^{b}R_{n}(x)dx=\sum_{k=0}^{n}f(x_{k})\frac{\int_{a}^{b}l_{k}(x)dx+\int_{a}^{b}R_{n}(x)dx}{A_{k}}
∫abf(x)dx=∫abLn(x)dx+∫abRn(x)dx=∫abk=0∑nf(xk)lk(x)dx+∫abRn(x)dx=k=0∑nf(xk)Ak∫ablk(x)dx+∫abRn(x)dx
即用插值多项式代替被积函数。
若定义求积公式 ∫ a b f ( x ) d x ≈ ∑ k = 0 n A k f ( x k ) \int_{a}^{b} f(x)dx\approx\sum_{k=0}^{n}A_{k}f(x_{k}) ∫abf(x)dx≈∑k=0nAkf(xk)中的求积公式用插值公式 A k = ∫ a b l k ( x ) d x A_{k}=\int_{a}^{b}l_{k}(x)dx Ak=∫ablk(x)dx表示,则称该数值积分公式为插值型求积公式。
定理:插值型数值积分公式的代数精度至少有n阶精度。
注:
∑
k
=
0
n
A
k
=
∑
k
=
0
n
∫
a
b
l
k
(
x
)
d
x
=
∫
a
b
∑
k
=
0
n
A
k
d
x
=
∫
a
b
1
d
x
=
b
−
a
\sum_{k=0}^{n}A_{k}=\sum_{k=0}^{n}\int_{a}^{b}l_{k}(x)dx=\int_{a}^{b}\sum_{k=0}^{n}A_{k}dx=\int_{a}^{b}1dx=b-a
∑k=0nAk=∑k=0n∫ablk(x)dx=∫ab∑k=0nAkdx=∫ab1dx=b−a
Newton-Cotes公式
该公式主要研究具体节点的取法,若取[a,b]上n+1个等距节点, x 0 , x 1 . . . x n x_{0},x_{1}...x_{n} x0,x1...xn即第k个节点的值为初始值加上k步步长 x k = x 0 + k h x_{k}=x_{0}+kh xk=x0+kh,其中 h = b − a h , x 0 = a h=\frac{b-a}{h},x_{0}=a h=hb−a,x0=a,利用这些节点作n次Lagrange插值多项式,有如下公式:
∫ a b f ( x ) d x ≈ ∫ a b l k ( x ) f ( x k ) d x \int_{a}^{b}f(x)dx\approx \int_{a}^{b}l_{k}(x)f(x_{k})dx ∫abf(x)dx≈∫ablk(x)f(xk)dx
A k = ∫ a b ( x − x 0 ) ( x − x 1 ) . . . ( x − x k − 1 ) ( x − x k + 1 ) . . . ( x − x n ) ( x k − x 0 ) ( x k − x 1 ) . . . ( x k − x k k − 1 ) ( x k − x k + 1 ) . . . ( x k − x n ) d x A_{k}=\int_{a}^{b}\frac{(x-x_{0})(x-x_{1})...(x-x_{k-1})(x-x_{k+1})...(x-x_{n})}{(x_{k}-x_{0})(x_{k}-x_{1})...(x_{k}-x_{kk-1})(x_{k}-x_{k+1})...(x_{k}-x_{n})}dx Ak=∫ab(xk−x0)(xk−x1)...(xk−xkk−1)(xk−xk+1)...(xk−xn)(x−x0)(x−x1)...(x−xk−1)(x−xk+1)...(x−xn)dx
令 x = a + t h , x k = a + k h x=a+th,x_{k}=a+kh x=a+th,xk=a+kh,原式= ∫ a b ( b − a ) ( − 1 ) n − k n k ! ( n − k ) ! ∫ 0 n t ( t − 1 ) . . . ( t − k + 1 ) ( t − k − 1 ) . . . ( t − n ) d t \int_{a}^{b}\frac{(b-a)(-1)^n-k}{nk!(n-k)!}\int_{0}^{n}t(t-1)...(t-k+1)(t-k-1)...(t-n)dt ∫abnk!(n−k)!(b−a)(−1)n−k∫0nt(t−1)...(t−k+1)(t−k−1)...(t−n)dt
令 C k n = ( b − a ) ( − 1 ) n − k n k ! ( n − k ) ! ∫ 0 n t ( t − 1 ) . . . ( t − k + 1 ) ( t − k − 1 ) . . . ( t − n ) d t C_{k}^{n}=\frac{(b-a)(-1)^n-k}{nk!(n-k)!}\int_{0}^{n}t(t-1)...(t-k+1)(t-k-1)...(t-n)dt Ckn=nk!(n−k)!(b−a)(−1)n−k∫0nt(t−1)...(t−k+1)(t−k−1)...(t−n)dt则为Cotes系数, A k = ( b − a ) C k n A_{k}=(b-a)C_{k}^{n} Ak=(b−a)Ckn
最终Newton-Cotes公式为 ∫ a b f ( x ) d x ≈ ( b − a ) ∑ k = 0 n C k n f ( x k ) \int_{a}^{b} f(x)dx\approx (b-a)\sum_{k=0}^{n}C_{k}^{n}f(x_{k}) ∫abf(x)dx≈(b−a)∑k=0nCknf(xk),即节点均匀分割的求和公式。
例如当n=1,
C
o
1
=
(
−
1
)
1
1
!
0
!
1
!
,
∫
0
1
(
t
−
1
)
d
t
=
1
2
C_{o}^{1}=\frac{(-1)^1}{1!0!1!},\int_{0}^{1}(t-1)dt=\frac{1}{2}
Co1=1!0!1!(−1)1,∫01(t−1)dt=21
C
1
1
=
(
−
1
)
1
1
!
1
!
0
!
,
∫
0
1
t
d
t
=
−
1
2
C_{1}^{1}=\frac{(-1)^1}{1!1!0!},\int_{0}^{1}tdt=-\frac{1}{2}
C11=1!1!0!(−1)1,∫01tdt=−21
则
∫
a
b
f
(
x
)
d
x
≈
b
−
a
2
[
f
(
a
)
+
f
(
b
)
]
\int_{a}^{b}f(x)dx\approx \frac{b-a}{2}[f(a)+f(b)]
∫abf(x)dx≈2b−a[f(a)+f(b)]
即在[a,b]区间整体运算,此时计算方法为梯形公式,代数精度为1.
当n=2时,
分别计算
C
0
2
,
C
1
2
,
C
2
2
C_{0}^{2},C_{1}^{2},C_{2}^{2}
C02,C12,C22,
∫
a
b
f
(
x
)
d
x
≈
b
−
a
6
[
f
(
a
)
+
4
f
(
a
+
b
2
)
+
f
(
b
)
]
\int_{a}^{b}f(x)dx\approx \frac{b-a}{6}[f(a)+4f(\frac{a+b}{2})+f(b)]
∫abf(x)dx≈6b−a[f(a)+4f(2a+b)+f(b)]
该公式为Sinpson公式,至少精度为2
n=4时为Cotes公式,具有至少5次代数精度。
定理:n为偶数时,其代数精度至少为n+1次,n表示区间个数,而非节点个数,如5个节点将区间分为四个区间,精度为5。
例题:
f
(
x
)
=
x
2
时,用梯形公式和
S
i
m
p
s
o
n
计算
∫
0
2
x
2
d
x
f(x)=x^2时,用梯形公式和Simpson计算\int_{0}^{2}x^2dx
f(x)=x2时,用梯形公式和Simpson计算∫02x2dx。
解:
梯形公式
∫
0
2
x
2
d
x
≈
2
−
0
2
(
0
+
4
)
=
4
\int_{0}^{2}x^2dx\approx \frac{2-0}{2}(0+4)=4
∫02x2dx≈22−0(0+4)=4
Simpson
∫
0
2
x
2
d
x
≈
2
−
0
6
(
0
+
4
+
4
)
=
8
3
\int_{0}^{2}x^2dx\approx \frac{2-0}{6}(0+4+4)=\frac{8}{3}
∫02x2dx≈62−0(0+4+4)=38
可以看到梯形公式的误差还是比较大的,而Simpson甚至得到了精确答案。
性质:
1,对称性。
C
k
n
=
C
n
−
k
n
C_{k}^{n}=C_{n-k}^n
Ckn=Cn−kn
2,
∑
k
=
0
n
C
k
n
=
1
\sum_{k=0}^{n}C_{k}^{n}=1
∑k=0nCkn=1
Newton-Cotes余项:
梯形公式下
R
(
f
)
=
∫
a
b
f
′
′
(
ξ
)
2
(
x
−
a
)
(
x
−
b
)
d
x
R(f)=\int_{a}^{b}\frac{f''(\xi)}{2}(x-a)(x-b)dx
R(f)=∫ab2f′′(ξ)(x−a)(x−b)dx,存在
η
∈
[
0
,
1
]
,使
R
(
f
)
=
1
2
f
′
′
(
η
)
∫
a
b
(
x
−
a
)
(
x
−
b
)
d
x
=
−
f
′
′
(
η
)
12
(
b
−
a
)
3
\eta \in [0,1],使R(f)=\frac{1}{2}f''(\eta)\int_{a}^{b}(x-a)(x-b)dx=-\frac{f''(\eta)}{12}(b-a)^3
η∈[0,1],使R(f)=21f′′(η)∫ab(x−a)(x−b)dx=−12f′′(η)(b−a)3
同理:
Simpson余项
R
(
f
)
=
−
1
90
(
b
−
a
2
)
5
f
4
(
η
)
R(f)=-\frac{1}{90}(\frac{b-a}{2})^5f^4(\eta)
R(f)=−901(2b−a)5f4(η)
Cotes余项
R
(
f
)
=
2
(
b
−
a
)
945
(
b
−
a
4
)
6
f
6
(
η
)
R(f)=\frac{2(b-a)}{945}(\frac{b-a}{4})^6f^6(\eta)
R(f)=9452(b−a)(4b−a)6f6(η)
复化求积公式
为了克服容格现象,用分段函数代替原函数,用于求积分时同样应用分治思想,划分区间应用梯形或Simpson公式,使用分段线性插值代替原函数,数学公式表示为 ∫ a b f ( x ) d x = ∑ k = 0 n − 1 ∫ x k x k + 1 f ( x ) d x ≈ ∑ k = 0 n − 1 I k \int_{a}^{b}f(x)dx= \sum_{k=0}^{n-1}\int_{x_k}^{x_{k+1}}f(x)dx\approx \sum_{k=0}^{n-1}I_k ∫abf(x)dx=∑k=0n−1∫xkxk+1f(x)dx≈∑k=0n−1Ik,其中 I k = ∫ x k x k + 1 f ( x ) d x ≈ h 2 [ f ( x k ) + f ( x k + 1 ) ] I_k=\int_{x_k}^{x_{k+1}}f(x)dx\approx \frac{h}{2}[f(x_k)+f(x_{k+1})] Ik=∫xkxk+1f(x)dx≈2h[f(xk)+f(xk+1)] 或用Simpson
复化的梯形公式
分割区间使用
I
=
∫
x
k
x
k
+
1
f
(
x
)
d
x
≈
h
2
[
f
(
x
k
)
+
f
(
x
k
+
1
)
]
I_=\int_{x_k}^{x_{k+1}}f(x)dx\approx \frac{h}{2}[f(x_k)+f(x_{k+1})]
I=∫xkxk+1f(x)dx≈2h[f(xk)+f(xk+1)],
I
k
=
∑
k
=
0
n
−
1
∫
x
k
x
k
+
1
f
(
x
)
d
x
≈
2
h
2
[
f
(
a
)
+
f
(
b
)
]
+
2
∑
k
=
1
n
−
1
f
(
x
k
)
I_k= \sum_{k=0}^{n-1}\int_{x_k}^{x_{k+1}}f(x)dx \approx 2\frac{h}{2}[f(a)+f(b)]+2\sum_{k=1}^{n-1}f(x_k)
Ik=∑k=0n−1∫xkxk+1f(x)dx≈22h[f(a)+f(b)]+2∑k=1n−1f(xk)
多个区间分别计算梯形公式后求和
Romberg公式
复化梯形公式方程 T n = h 2 [ f ( a ) + f ( h ) + 2 ∑ k = 0 n − 1 f ( x k + 1 2 ) ] T_n=\frac{h}{2}[f(a)+f(h)+2\sum_{k=0}^{n-1}f(x_{k+\frac{1}{2}})] Tn=2h[f(a)+f(h)+2∑k=0n−1f(xk+21)],将 T n = T 1 ( h ) T_n=T_1(h) Tn=T1(h),由E-M欧拉麦克劳林公式, T 1 ( h ) − I = α 1 h 2 + α 2 h 4 + . . . + α k h 2 k + . . . T_1(h)-I=\alpha_1h^2+\alpha_2h^4+...+\alpha_kh^2k+... T1(h)−I=α1h2+α2h4+...+αkh2k+...
后面不写了,反正使用外推法构造出高精度积分公式 T m + 1 ( h ) = 4 m 4 m − 1 T m ( h 2 ) − 1 4 m − 1 T_{m+1}(h)=\frac{4^m}{4^{m}-1}T_m(\frac{h}{2})-\frac{1}{4^{m}-1} Tm+1(h)=4m−14mTm(2h)−4m−11
计算过程如下图:
例题:利用复化求积公式将[0,1]8等分,计算
I
=
∫
0
1
4
+
x
1
+
x
2
I=\int_{0}^{1}\frac{4+x}{1+x^2}
I=∫011+x24+x。
解:
复化梯形公式,
I
≈
1
2
×
8
[
f
(
0
)
+
f
(
1
)
+
2
∑
1
7
f
(
x
k
)
]
≈
3
,
138988
I\approx\frac{1}{2×8}[f(0)+f(1)+2\sum_{1}^7f(x_k)]\approx 3,138988
I≈2×81[f(0)+f(1)+2∑17f(xk)]≈3,138988
复化Simpson,
I
≈
1
6
×
4
[
]
f
(
0
)
+
f
(
1
)
+
4
∑
0
3
f
(
x
k
+
1
2
)
+
2
∑
1
3
f
(
x
k
)
]
≈
3.141593
I\approx\frac{1}{6×4}[]f(0)+f(1)+4\sum_{0}^3f(x_{k+\frac{1}{2}})+2\sum_{1}^3f(x_k)]\approx3.141593
I≈6×41[]f(0)+f(1)+4∑03f(xk+21)+2∑13f(xk)]≈3.141593
步长越多结果越精确,但应用中具体步长我们难以直接确定,下面将介绍一种能够使步长动态迭代的方法。
变步长的梯形公式
基本思想为:原步长h折半,再利用复化求积公式,不断折半,用前后两次结果做差,如果精度满足要求则停止折半,故该方法又称折半求积公式。
例如:
∫
a
b
f
(
x
)
d
x
\int_a^bf(x)dx
∫abf(x)dx将[a,b]等分,
h
=
b
−
a
n
,
x
k
=
a
+
k
h
h=\frac{b-a}{n},x_k=a+kh
h=nb−a,xk=a+kh,
复化梯形公式
T
2
n
=
h
4
∑
k
=
0
n
−
1
[
f
(
x
k
)
+
2
f
(
x
k
+
1
2
)
+
f
(
x
k
+
1
)
]
=
T
n
2
+
h
2
∑
k
=
0
n
−
1
f
(
x
k
+
1
2
)
T_{2n}=\frac{h}{4}\sum_{k=0}^{n-1}[f(x_k)+2f(x_{k+\frac{1}{2}})+f(x_{k+1})]=\frac{T_n}{2}+\frac{h}{2}\sum_{k=0}^{n-1}f(x_{k+\frac{1}{2}})
T2n=4h∑k=0n−1[f(xk)+2f(xk+21)+f(xk+1)]=2Tn+2h∑k=0n−1f(xk+21)。
将已复化的梯形公式再折半步长应用复化公式,该公式实际上只需计算
x
k
+
1
2
x_{k+\frac{1}{2}}
xk+21即新分节点的函数值。
应用中往往使用 ∣ t 2 k − T 2 k − 1 ∣ < ε |t_{2k}-T_{2k-1}|<\varepsilon ∣t2k−T2k−1∣<ε,前后两次变化之差来控制步长。
例题:用变步长的梯形公式计算
I
=
∫
0
1
s
i
n
x
x
d
x
I=\int^1_0\frac{sinx}{x}dx
I=∫01xsinxdx
解:令
f
(
x
)
=
s
i
n
x
x
f(x)=\frac{sinx}{x}
f(x)=xsinx,并补充定义
f
(
0
)
=
1
f(0)=1
f(0)=1使之连续,
T
1
=
1
2
[
f
(
0
)
+
f
(
1
)
]
≈
0.9207355
T_1=\frac{1}{2}[f(0)+f(1)]\approx0.9207355
T1=21[f(0)+f(1)]≈0.9207355
T
2
=
1
2
T
1
+
1
2
f
(
1
2
)
≈
0.9397933
T_2=\frac{1}{2}T_1+\frac{1}{2}f(\frac{1}{2})\approx0.9397933
T2=21T1+21f(21)≈0.9397933
使用该方法的计算量大,收敛慢,为了改进该问题,引入变步长的Romberg公式。
变步长的Romberg公式
其实就是Romberg的折半法,可视化展示如下:
公式计算方式如下:
- T 1 = b − a 2 [ f ( a ) + f ( b ) ] T_1=\frac{b-a}{2}[f(a)+f(b)] T1=2b−a[f(a)+f(b)]
- T 2 = T 1 2 + b − a 2 f ( a + b 2 ) T_2=\frac{T_1}{2}+\frac{b-a}{2}f(\frac{a+b}{2}) T2=2T1+2b−af(2a+b)
- S 1 = 4 3 T 2 − 1 3 T 1 S_1=\frac{4}{3}T_2-\frac{1}{3}T_1 S1=34T2−31T1
- T 4 = T 2 2 + b − a 4 [ f ( 3 a + b 4 ) + f ( 3 b + a 4 ) ] T_4=\frac{T_2}{2}+\frac{b-a}{4}[f(\frac{3a+b}{4})+f(\frac{3b+a}{4})] T4=2T2+4b−a[f(43a+b)+f(43b+a)]
- S 2 = 4 3 T 4 − 1 3 T 2 S_2=\frac{4}{3}T_4-\frac{1}{3}T_2 S2=34T4−31T2
- C 1 = 16 15 S 2 − 1 15 S 1 C_1=\frac{16}{15}S_2-\frac{1}{15}S_1 C1=1516S2−151S1
- T 8 = 1 2 T 4 + b − a 8 [ f ( 7 a + b 8 ) + f ( 5 a + 3 b 8 ) + f ( 5 b + 3 a 8 ) + f ( 3 b + a 2 ) ] T_8=\frac{1}{2}T_4+\frac{b-a}{8}[f(\frac{7a+b}{8})+f(\frac{5a+3b}{8})+f(\frac{5b+3a}{8})+f(\frac{3b+a}{2})] T8=21T4+8b−a[f(87a+b)+f(85a+3b)+f(85b+3a)+f(23b+a)]
- S 4 = 4 3 T 8 − 1 3 T 4 S_4=\frac{4}{3}T_8-\frac{1}{3}T4 S4=34T8−31T4
- C 2 = 16 15 S 4 − 1 15 S 2 C_2=\frac{16}{15}S_4-\frac{1}{15}S_2 C2=1516S4−151S2
- R 1 = 64 63 C 2 − 1 63 C 1 R_1=\frac{64}{63}C_2-\frac{1}{63}C_1 R1=6364C2−631C1
使用折半+外推法计算Romberg,T使用折半法迭代, S = 4 3 T k + 1 − 1 3 T k S=\frac{4}{3}T_{k+1}-\frac{1}{3}T_k S=34Tk+1−31Tk, C = 16 15 S k + 1 − 1 15 S k C=\frac{16}{15}S_{k+1}-\frac{1}{15}S_k C=1516Sk+1−151Sk, R = 64 63 C k + 1 − 1 63 C k R=\frac{64}{63}C_{k+1}-\frac{1}{63}C_{k} R=6364Ck+1−631Ck。
例题:使用Romberg公式计算
∫
2
8
1
2
x
d
x
\int_2^8\frac{1}{2x}dx
∫282x1dx,每步计算保留4位小数。
解:
T
1
=
8
−
2
2
[
f
(
8
)
+
f
(
2
)
]
≈
0.9375
T_1=\frac{8-2}{2}[f(8)+f(2)]\approx0.9375
T1=28−2[f(8)+f(2)]≈0.9375
T
2
=
T
1
2
+
8
−
2
2
f
(
5
)
≈
0.76875
T_2=\frac{T_1}{2}+\frac{8-2}{2}f(5)\approx0.76875
T2=2T1+28−2f(5)≈0.76875
S
1
=
4
3
T
2
−
1
3
T
1
=
0.7125
S_1=\frac{4}{3}T_2-\frac{1}{3}T_1=0.7125
S1=34T2−31T1=0.7125
T
4
=
1
2
T
2
+
8
−
2
4
[
f
(
3.5
)
+
f
(
6.5
)
]
=
0.7140
T_4=\frac{1}{2}T_2+\frac{8-2}{4}[f(3.5)+f(6.5)]=0.7140
T4=21T2+48−2[f(3.5)+f(6.5)]=0.7140
S
2
=
4
3
T
4
+
1
3
T
2
=
0.6958
S_2=\frac{4}{3}T_4+\frac{1}{3}T_2=0.6958
S2=34T4+31T2=0.6958
C
1
=
16
15
S
2
−
1
15
S
1
=
0.6947
C_1=\frac{16}{15}S_2-\frac{1}{15}S_1=0.6947
C1=1516S2−151S1=0.6947
T
8
=
1
2
T
4
+
8
−
2
8
[
f
(
2.75
)
+
f
(
4.25
)
+
f
(
5.75
)
+
f
(
7.25
)
]
=
0.6986
T_8=\frac{1}{2}T_4+\frac{8-2}{8}[f(2.75)+f(4.25)+f(5.75)+f(7.25)]=0.6986
T8=21T4+88−2[f(2.75)+f(4.25)+f(5.75)+f(7.25)]=0.6986
S
4
=
4
3
T
8
−
1
3
T
4
=
0.6934
S_4=\frac{4}{3}T_8-\frac{1}{3}T_4=0.6934
S4=34T8−31T4=0.6934
C
2
=
16
15
S
4
−
1
15
S
2
=
0.6932
C_2=\frac{16}{15}S_4-\frac{1}{15}S_2=0.6932
C2=1516S4−151S2=0.6932
R
1
=
64
63
C
2
−
1
63
C
1
=
0.6932
R_1=\frac{64}{63}C_2-\frac{1}{63}C_1=0.6932
R1=6364C2−631C1=0.6932
其他参考资料在此
总结
本章学习了如何利用迭代公式计算积分的近似值:
首先是使用数值积分矩形或梯形来代替原有积分曲线的方法,并用自变量 x x x的次数作为代数精度衡量近似的程度。
然后是利用插值多项式求和代替原积分曲线积分,其中点的取法用Newton-Cotes均匀选取。
最后为了计算迭代终点,采用变步长求积动态折半计算,不断逼近真实值,有基本的复化梯形公式和加快迭代收敛速度的Romberg公式,Romberg计算方法最复杂,需要迭代四次计算,但收敛速度快,计算量也没那么大,可以说是计算数值积分最先进的方法。