数值积分 (二)| 求积公式的代数精度 + 构造方法

3. 求积公式的代数精度

求积公式的精度可以用余项R来表示,即:
∫ a b f ( x ) d x = ∑ k = 0 n A i f ( x i ) + R \int_a^bf(x)dx=\sum_{k=0}^nA_if(x_i)+R abf(x)dx=k=0nAif(xi)+R
一般地,R越小,表明求积公式的精度越高。但是,当被积函数 f ( x ) f(x) f(x)是多项式时,R却表现出某种特性,即某一确定的求积公式,对某些多项式的积分是精确的,而对另外一些多项式的积分是不精确的。

为了更好地刻画求积分精度的这种性质,需要引入下面代数精度的概念:

定义1:如果求积公式(1)对于一切次数小于和等于n的多项式的积分是准确的,而对次数为n+1的多项式的积分至少有一个是不准确的,则称该求积公式具有n次代数精度,或称该公式是n阶的。

在具体考察一个求积公式的代数精度时,用某求积公式计算被积函数 f ( x ) = x k f(x)=x^k f(x)=xk的积分,如果在 k = 0 , 1 , 2 , ⋯   , n k=0,1,2,\cdots,n k=0,1,2,,n时均是准确的,而在 k = n + 1 k=n+1 k=n+1时不是准确的。那么就可以确定该求积公式的代数精度是n次而不必再继续考察其对所有的n+1次多项式的积分是否精确成立。

在一般情形下,就用代数精度来衡量一个求积公式的精度。

定理1:对于任意给定的n+1个互异的节点:
a = x 0 < x 1 < x 2 < ⋯   , x n = b a=x_0<x_1<x_2<\cdots,x_n=b a=x0<x1<x2<,xn=b
总存在系数 A 0 , A 1 , A 2 , ⋯   , A n A_0,A_1,A_2,\cdots,A_n A0,A1,A2,,An,使得求积公式(1)至少具有n次代数精度。

4. 求积公式的构造方法
  1. 待定系数法

待定系数法就是以代数精度为标准来构造求积公式(1)。

例如:构造一个形如(1)式的求积公式,使其具有一次代数精度。此求积公式的具体形式为:
∫ a b f ( x ) d x = A 0 f ( a ) + A 1 ( b ) \int_a^bf(x)dx=A_0f(a)+A_1(b) abf(x)dx=A0f(a)+A1(b)
利用代数精度的概念,可得以下两个方程式:

(1)令 f ( x ) = 1 f(x)=1 f(x)=1,则有 A 0 + A 1 = b − a A_0+A_1=b-a A0+A1=ba

(2)令 f ( x ) = x f(x)=x f(x)=x,则有 A 0 a + A 1 b = ( b 2 − a 2 ) / 2 A_0a+A_1b=(b^2-a^2)/2 A0a+A1b=(b2a2)/2.

解得
A 0 = A 1 = ( b − a ) / 2 A_0=A_1=(b-a)/2 A0=A1=(ba)/2
因此,以区间两端点a、b为节点的两点求积公式为:
A 0 = A 1 = ( b − a ) / 2 A_0=A_1=(b-a)/2 A0=A1=(ba)/2
因此,以区间两端点 a 、 b a、b ab为节点的两点求积公式为:
T = b − a 2 [ f ( a ) + f ( b ) ] T=\frac{b-a}{2}[f(a)+f(b)] T=2ba[f(a)+f(b)]
该式即为梯形求积公式。也就是说,梯形求积公式仅具有一次代数精度。

一般地,对于n+1求积节点 x i ( i = 0 , 1 , 2 , ⋯   , n ) x_i(i=0,1,2,\cdots,n) xi(i=0,1,2,,n),若构造一个求积公式(1),使其具有n次代数精度,则必须使其当
f ( x ) = 1 , x , x 2 , ⋯   , x n f(x)=1,x,x^2,\cdots,x^n f(x)=1,x,x2,,xn
时均能准确成立,即可得到如下的方程组:
{ A 0 + A 1 + ⋯ + A n = b − a A 0 x 0 + A 1 x 1 + ⋯ + A n x n = ( b 2 − a 2 ) / 2 ⋯ A 0 x 0 n + A 1 x 1 n + ⋯ + A n x n n = ( b n + 1 − a n + 1 ) / ( n + 1 ) (2) \begin{cases} A_0+A_1+\cdots+A_n=b-a \\ A_0x_0+A_1x_1+\cdots+A_nx_n=(b^2-a^2)/2 \\ \cdots \\ A_0x_0^n+A_1x_1^n+\cdots+A_nx_n^n=(b^{n+1}-a^{n+1})/(n+1) \end{cases} \tag{2} A0+A1++An=baA0x0+A1x1++Anxn=(b2a2)/2A0x0n+A1x1n++Anxnn=(bn+1an+1)/(n+1)(2)
对于方程组(2):

(1)若 x i ( i = 0 , 1 , 2 , ⋯   , n ) x_i(i=0,1,2,\cdots,n) xi(i=0,1,2,,n)已给定,则方程组(2)只有n+1个待定系数 A 0 , A 1 , ⋯   , A n A_0,A_1,\cdots,A_n A0,A1,,An,是一个线性方程组;当 x i ( i = 0 , 1 , 2 , ⋯   , n ) x_i(i=0,1,2,\cdots,n) xi(i=0,1,2,,n)互异时,其系数矩阵行列式——范德蒙行列式不为零,故方程组有惟一解,这样就可以求出全部的系数 A 0 , A 1 , ⋯   , A n A_0,A_1,\cdots,A_n A0,A1,,An,而且构造的求积公式(1)至少具有n次代数精度。

x i ( i = 0 , 1 , 2 , ⋯   , n ) x_i(i=0,1,2,\cdots,n) xi(i=0,1,2,,n)为等距节点时,构造的求积公式称为Newton-Cotes(牛顿-柯特斯公式)。

(2)若 A i A_i Ai x i ( i = 0 , 1 , 2 , ⋯   , n ) x_i(i=0,1,2,\cdots,n) xi(i=0,1,2,,n)均为待定,则方程组(2)具有(2n+2)个待定系数 A 0 , A 1 , ⋯   , A n A_0,A_1,\cdots,A_n A0,A1,,An x 0 , x 1 , ⋯   , x n x_0,x_1,\cdots,x_n x0,x1,,xn。为求出这些系数,必须使求积公式(1)当 f ( x ) = x k ( k = 0 , 1 , 2 , ⋯   , 2 n + 1 ) f(x)=x^k(k=0,1,2,\cdots,2n+1) f(x)=xk(k=0,1,2,,2n+1)时均准确成立,即使之具有 2 n + 1 2n+1 2n+1次代数精度,从而得到2n+2个方程构造的高阶非线性方程组:
{ A 0 + A 1 + ⋯ + A n = b − a A 0 x 0 + A 1 x 1 + ⋯ + A n x n = ( b 2 − a 2 ) / 2 ⋯ A 0 x 0 2 n + 1 + A 1 x 1 2 n + 1 + ⋯ + A n x n 2 n + 1 = ( b 2 n + 2 − a 2 n + 2 ) / ( 2 n + 2 ) (3) \begin{cases} A_0+A_1+\cdots+A_n=b-a \\ A_0x_0+A_1x_1+\cdots+A_nx_n=(b^2-a^2)/2 \\ \cdots \\ A_0x_0^{2n+1}+A_1x_1^{2n+1}+\cdots+A_nx_n^{2n+1}=(b^{2n+2}-a^{2n+2})/(2n+2) \end{cases} \tag{3} A0+A1++An=baA0x0+A1x1++Anxn=(b2a2)/2A0x02n+1+A1x12n+1++Anxn2n+1=(b2n+2a2n+2)/(2n+2)(3)
解方程组(3)得到 A i A_i Ai x i ( i = 0 , 1 , 2 , ⋯   , n ) x_i(i=0,1,2,\cdots,n) xi(i=0,1,2,,n),这样构造的求积公式称为Guass(高斯)求积公式。

  1. 插值公式构造法

I = ∫ a b f ( x ) d x I=\int_a^bf(x)dx I=abf(x)dx中,如果采用Lagrange插值多项式
p n ( x ) = ∑ k = 0 n l k ( x ) ⋅ f ( x k ) p_n(x)=\sum_{k=0}^nl_k(x)·f(x_k) pn(x)=k=0nlk(x)f(xk)
其中
l k ( x ) = ∏ i = 0 , i ≠ k n x − x i x k − x i l_k(x)=\prod_{i=0,i\neq k}^n\frac{x-x_i}{x_k-x_i} lk(x)=i=0,i=knxkxixxi
来近似地代替 f ( x ) f(x) f(x),则有:
∫ a b f ( x ) d x ≅ ∫ a b p n ( x ) d x = ∫ a b ∑ k = 0 n l k ( x ) f ( x k ) d x = ∑ k = 0 n ∫ a b l k ( x ) d x ⋅ f ( x k ) \int_a^bf(x)dx \cong\int_a^bp_n(x)dx=\int_a^b\sum_{k=0}^nl_k(x)f(x_k)dx=\sum_{k=0}^n\int_a^bl_k(x)dx·f(x_k) abf(x)dxabpn(x)dx=abk=0nlk(x)f(xk)dx=k=0nablk(x)dxf(xk)

A k = ∫ a b l k ( x ) d x (4) A_k=\int_a^bl_k(x)dx \tag{4} Ak=ablk(x)dx(4)

∫ a b f ( x ) d x ≅ ∫ a b p n ( x ) d x = ∑ k = 0 n A k ⋅ f ( x k ) (5) \int_a^bf(x)dx\cong \int_a^bp_n(x)dx=\sum_{k=0}^nA_k·f(x_k) \tag{5} abf(x)dxabpn(x)dx=k=0nAkf(xk)(5)
在求积公式(1)中,如果求积系数 A k ( k = 0 , 1 , 2 , ⋯   , n ) A_k(k=0,1,2,\cdots,n) Ak(k=0,1,2,,n)由(4)式计算得到,则称该求积公式为插值型的。相应地公式(5)称为插值型求积公式。

定理2:由n+1个求积节点构造的求积公式(1)至少有n次代数精度的充要条件是该公式是插值型的。

  • 18
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,您的问题是关于数值积分的不同计算方法的比较。这里是我对各方法的简要介绍和比较: 1. 梯形公式计算数值积分:梯形公式是最简单的数值积分方法之一,它将被积函数曲线上相邻两点之间的面积近似为一个梯形的面积。梯形公式的误差随着网格点的增多而缩小,但是它的收敛速度较慢。 2. 辛普森公式计算数值积分:辛普森公式是另一种简单的数值积分方法,它将被积函数曲线上相邻三个点之间的面积近似为一个次曲线的面积。辛普森公式的误差随着网格点的增多而缩小的速度比梯形公式快得多。 3. 科特斯公式计算数值积分:科特斯公式是一个更高阶的数值积分方法,它将被积函数曲线上相邻四个点之间的面积近似为一个三次曲线的面积。科特斯公式的误差随着网格点的增多而缩小的速度比辛普森公式更快。 4. 复合梯形公式计算数值积分:复合梯形公式将整个积分区间分成若干个小区间,然后在每个小区间内使用梯形公式计算数值积分,最后将所有小区间的积分值相加得到总的积分值。复合梯形公式的误差随着小区间的数量增多而缩小,但是计算量较大。 5. 复合辛普森公式计算数值积分:复合辛普森公式与复合梯形公式类似,但是使用的是辛普森公式来计算每个小区间的积分值。复合辛普森公式的误差随着小区间的数量增多而缩小的速度比复合梯形公式快得多。 6. 复合科特斯公式计算数值积分:复合科特斯公式与复合辛普森公式类似,但是使用的是科特斯公式来计算每个小区间的积分值。复合科特斯公式的误差随着小区间的数量增多而缩小的速度比复合辛普森公式更快。 7. 龙贝格求积公式计算数值积分:龙贝格求积公式是一种递归算法,它将复合梯形公式不断逼近到积分的精度要求。使用龙贝格求积公式时,需要先计算一些低阶的近似值,然后根据这些近似值计算更高阶的近似值。龙贝格求积公式的收敛速度非常快,但是计算量也非常大。 综上所述,各种数值积分方法都有其优缺点。在实际应用中,需要根据具体问题的特点选择最适合的方法。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值