数值积分和数值微分
有不少情况,被积函数f(x)没有具体的解析表达式,仅仅用表格或图形给出实验观测的一些点上的函数值。对于这种情况,牛顿-莱布尼兹公式也无法应用。对于上述所举的积分值不能用牛顿-莱布尼兹公式求出的情形,就可用数值积分法,即用数值的方法求出积分的近似值。
本章的另一个内容是数值微分。在微分学中,函数f(x)的导数是通过极限定义的。若函数以表格形式给出,或函数的表达式过于复杂时,就要用数值方法求函数的导数或微分。
当找到一个足够精度的简单函数p(x)代替原来函数f(x)就有
∫abf(x)dx≈∫abp(x)dx
若存在实数x1,x2,…,xn;A1,A2,…,An且存在任取f(x)∈C[a,b],都有
∫abf(x)dx≈i=1∑nAif(xi)
![数值积分的几何意义]()
用容易计算面积的图形代替曲边梯形得到
梯形公式:
∫abf(x)dx≈2b−a[f(a)+f(b)]
左矩形公式:
∫abf(x)dx≈f(a)(b−a)
中矩形公式:
∫abf(x)dx≈(b−a)f(2a+b)
抛物线公式(辛普森公式):
∫abf(x)dx≈6b−a[f(a)+4f(2a+b)+f(b)]
余项:
R[f]=∫abf(x)dx−k=0∑nAkf(xk)
其中Ak称求积系数,也称伴随节点xk的权
求积公式
∫abf(x)dx≈k=0∑nf(xk)Ak
具有m次代数精度使该公式对于
f(x)=1,x,x2,⋯,xm
或
f(x)=a0+a1x+a2x2+⋯+amxm
均准确成立,而对于f(x)=xm+1不能准确成立
举例:验证梯形公式具有1次代数精度
∫abf(x)dx≈2b−a[f(a)+f(b)]
取f(x)=1时,
∫abdx=b−a,2b−a(1+1)=b−a
两端相等;
取f(x)=x时,
∫abxdx=21(b2−a2),2b−a(a+b)=21(b2−a2)
两端相等;
取f(x)=x2时,
∫abx2dx=31(b3−a3),2b−a(a2+b2)=21(a2+b2)(b−a)
两端不相等,所以梯形公式只有1次代数精度。
辛普森公式有3次代数精度
牛顿——柯特斯公式
牛顿——柯特斯公式是积分区间上等距节点的插值求积公式
取系数Ck=Ak/(b-a)并称之为柯特斯系数,此时求积公式
∫abf(x)dx≈(b−a)k=0∑nCkf(a+kh)
称为牛顿——柯特斯公式
n |
Ck |
|
|
|
|
1 梯形 |
1/2 |
1/2 |
|
|
|
2 辛普森 |
1/6 |
2/3 |
1/6 |
|
|
3 |
1/8 |
3/8 |
3/8 |
1/8 |
|
4 柯特斯 |
7/90 |
16/45 |
2/15 |
16/45 |
7/90 |
用三个公式计算定积分
∫0.51xdx
∫0.51xdx≈21−0.5(0.5+1)=0.4267767
∫0.51xdx≈60.5(0.5+40.75+1)=0.43093403
∫0.51xdx≈900.5(70.5+320.625+120.75+320.875+7)=0.43096407
当n为偶数时,牛顿——柯特斯公式有n+1次代数精度
余项
RT=−12(b−a)3f′′(η),a≤η≤b
RS=−2880(b−a)5f(4)(η),a≤η≤b
RC=−9458(4b−a)7f(6)(η),a≤η≤b
复化求积法
将积分区间分成n等份,对每等份分别用梯形公式、辛普森公式和柯特斯公式,然后将结果加起来,作为积分的近似值
在子区间[xk,xk+1]上利用梯形公式则有复化梯形公式
Tn=2h[f(a)+2k=1∑n−1f(xk)+f(b)]
RT=−12h3nf′′(η)=−12(b−a)h2f′′(η),a≤η≤b
记子区间[xk,xk+1]的中点为xk+1/2,有复化辛普森公式
Sn=k=0∑n−16h[f(xk)+4f(xk+21)+f(xk+1)]=6h[f(a)+4k=0∑n−1f(xk+21)+2k=1∑n−1f(xk)+f(b)]
为了便于编写程序,可将其改写成
Sn=6h{f(a)−f(b)+k=1∑n[4f(xk−21)+2f(xk)]}
RS=−2880b−ah4f(4)(η),a≤η≤b
把每个子区间[xk,xk+1]四等分,内分点依次记为xk+1/4,xk+1/2,xk+3/4,有复化柯特斯公式
Cn=90h[7f(a)+32k=0∑n−1f(xk+41)+12k=0∑n−1f(xk+21)+32k=0∑n−1f(xk+43)+14k=1∑n−1f(xk)+7f(b)]
RC=−9452(b−a)(4h)6f(6)(η),a≤η≤b
插值求导公式
两点公式
设已给出两个节点x0和x1上的函数值f(x0)和f(x1),进行线性插值
P(x)=x0−x1x−x1f(x0)+x1−x0x−x0f(x1)
对上式两端求导,记h=x1-x0,有
前差公式:
f′(x0)=h1[f(x1)−f(x0)]−2hf′′(ξ)
后差公式:
f′(x1)=h1[f(x1)−f(x0)]+2hf′′(ξ)
三点公式
设已给出三个节点x0,x1=x0+h,x2=x0+2h上的函数值,有三点公式
f′(x0)≈P′(x0)=2h1[−3f(x0)+4f(x1)−f(x2)]+3h2f′′′(ξ)
f′(x1)≈P′(x1)=2h1[−f(x0)+f(x2)]−6h2f′′′(ξ)
f′(x2)≈P′(x2)=2h1[f(x0)−4f(x1)+3f(x2)]+3h2f′′′(ξ)
其中,中心公式由于少用了一个函数值f(x1)而常被采用