Gauss型积分公式

  • 格式:docx
  • 大小:26.66 KB
  • 文档页数:9

文档收集于互联网,已重新整理排版.word版本可编辑.欢迎下载支持. 0文档来源为:从网络收集整理.word版本可编辑. 摘要 求函数在给定区间上的定积分,在微积分学中已给出了许多计算方法,但是,在实际问题计算中,往往仅给出函数在一些离散点的值,它的解析表达式没有明显的给出,或者,虽然给出解析表达式,但却很难求得其原函数。这时我们可以通过数值方法求出函数积分的近似值。 当然再用近似值代替真实值时,误差精度是我们需要考虑因素,但是除了误差精度以外,还可以用代数精度来判断其精度的高低。已知n+1点的Newton-Cotes型积分公式,当n为奇数时,其代数精度为n;当n为偶数时,其代数精度达到n+1。若对随机选取的n+1个节点作插值型积分公式也仅有n次代数精度。 如何选取适当的节点,能使代数精度提高?Gauss型积分公式可是实现这一点,但是Gauss型求积公式,需要被积函数满足的条件是正交,这一条件比较苛刻。因此本实验将针对三种常用的Gauss型积分公式进行讨论并编程实现。 关键词:Newton-Cotes型积分公式 正交多项式 代数精度

1、实验目的 1) 通过本次实验体会并学习Gauss型积分公式,在解决如何取节点能提高代数精度这一问题中的思想方法。 2) 通过对Gauss型积分公式的三种常见类型进行编程实现,提高自己的编程能力。 3) 用实验报告的形式展现,提高自己在写论文方面的能力。

2、算法流程 下面介绍三种常见的Gauss型积分公式 1) 高斯-勒让德(Gauss-Legendre)积分公式 勒让德(Legendre)多项式 如下定义的多项式

Ln(x)=12n𝑛!𝑑𝑛𝑑𝑥𝑛(𝑥2−1)𝑛,𝑥∈[−1,1],𝑛=0,1,2⋯ 称作勒让德多项式。由于(𝑥2−1)𝑛是2n次多项式,所以Ln

(x)是n次多项

式,其最高次幂的系数An与多项式 12n𝑛!𝑑𝑛𝑑𝑥𝑛(𝑥(2n))=12n𝑛!2𝑛(2𝑛−1)(2𝑛−2)⋯(𝑛+1)𝑥𝑛

的系数相同。也就是说n次勒让德多项式具有正交性即勒让德多项式Ln

(x)

是在[−1,1]上带𝜌(x)=1的n次正交多项式,而且 文档收集于互联网,已重新整理排版.word版本可编辑.欢迎下载支持. 0文档来源为:从网络收集整理.word版本可编辑. (𝐿𝑚,𝐿𝑛)=∫𝐿𝑚(𝑥)𝐿𝑛(𝑥)𝑑𝑥1−1={

0, 𝑚≠𝑛2

2𝑛+1, 𝑚=𝑛

这时Gauss型积分公式的节点就取为上述多项式Ln

(x)的零点,相应的

Gauss型积分公式为

∫𝑓(𝑥)𝑑𝑥1−1≈∑𝐴𝑘𝑓(𝑥𝑘)𝑛

𝑘=1 此积分公式即成为高斯-勒让德积分公式。 其中Gauss-Legendre求积公式的系数

𝐴𝑘=∫𝜌(𝑥)𝜔𝑛(𝑥)(𝑥−𝑥𝑘)𝜔′𝑛(𝑥)𝑑𝑥1−1=∫𝜌(𝑥)𝐿𝑛(𝑥)(𝑥−𝑥𝑘)𝐿′𝑛(𝑥)𝑑𝑥1

−1 其中k的取值范围为𝑘=1,2,⋯,𝑛 Gauss点和系数不容易计算,但是在实际计算中精度要求不是很高,所以

给出如下表所示的部分Gauss点{𝑥𝑘}和系数{𝐴𝑘

},在实际应用中只需查表

即可。 n x A n x A

1 0 2 6 ±0.42 ±0.65 ±1.16 0.2 0.3 0.4 2 ±0.92 1 7 ±0.23 ±0.56 ±0.14 0 0.6 0.1 0.0 0.3 3

±0.920

0 0.56 0.89

4 ±0.16 ±0.36 0.51

0.49 8

±0.65

±0.74 ±0.99 ±0.25

0.6 0.4 0.5 0.3 5 ±0.59 ±0.01 0 0.51 0.05

0.89 2) 高斯-拉盖尔(Gauss-Laguerre)积分公式 拉盖尔(Laguere)多项式

Ln(x)=e𝑥𝑑𝑛𝑑𝑥𝑛(𝑥𝑛𝑒−𝑥),0≤𝑥<+∞,𝑛=0,1,2⋯ 称为拉盖尔多项式。其首项系数为(−1)𝑛,且具有性质: 正交性,在区间[0,+∞)上关于权函数𝜌(x)=e−𝑥正交,而且 文档收集于互联网,已重新整理排版.word版本可编辑.欢迎下载支持. 0文档来源为:从网络收集整理.word版本可编辑. (𝐿𝑚,𝐿𝑛)=∫e−𝑥𝐿𝑚(𝑥)𝐿𝑛(𝑥)𝑑𝑥∞0={

0, 𝑚≠𝑛

(𝑛!)2, 𝑚=𝑛 积分区间为[0,+∞),权函数为𝜌(x)=e−𝑥的Gauss型积分公式称为高斯-拉盖尔积分公式,其中Gauss点为拉盖尔多项式Ln

(x)的零点,高斯-拉盖

尔积分公式为

∫e−𝑥𝑓(𝑥)𝑑𝑥∞0≈∑𝐴𝑘𝑓(𝑥𝑘)𝑛

𝑘=1 同样高斯-拉盖尔积分公式的Gauss点和求积系数如下表所示: n x A n x A

2 0.76 3.24 0.05 0.94 5 0.97 1.91 3.10 7.08 12.42 0.05 0.10 0.07 0.00 0.0000233700 3 0.67 2.02

6.29

0.99

0.35

4 0.96 1.11 4.69 9.23 0.43 0.24 0.05 0.0005392947 6 0.41 1.16 2.60 5.91 9.83 15.06 0.93 0.07 0.20 0.05 0.0002610172 0.0000008985 3) 高斯-埃尔米特(Gauss-Hermite)积分公式 埃尔米特(Hermite)多项式

Hn(x)=(−1)𝑛e𝑥2𝑑𝑛e−𝑥2𝑑𝑥𝑛,−∞<𝑥<+∞,𝑛=0,1,2⋯ 被称作埃尔米特多项式,其首项系数为2𝑛,具有性质如下 正交性,在区间(−∞,+∞)上关于权函数e−𝑥2正交,而且

(𝐻𝑚,𝐻𝑛)=∫e−𝑥2𝐻𝑚(𝑥)𝐻𝑛(𝑥)𝑑𝑥+∞−∞={

0, 𝑚≠𝑛

2𝑛𝑛!√𝜋, 𝑚=𝑛

积分区间为(−∞,+∞),权函数为𝜌(x)=e−𝑥2的Gauss型积分公式称为Gauss-Hermite积分公式,其Gauss点就是Hermite正交多项式Hn

(x)的

零点。Gauss-Hermite求积公式为

∫e−𝑥2𝑓(𝑥)𝑑𝑥∞−∞≈∑𝐴𝑘𝑓(𝑥𝑘)𝑛

𝑘=1 文档收集于互联网,已重新整理排版.word版本可编辑.欢迎下载支持. 0文档来源为:从网络收集整理.word版本可编辑. 同样高斯-埃尔米特积分公式的Gauss点和求积系数如下表所示: n x A n x A 2 ±0.11 0.55 7 ±0.19 ±1.04 ±2.36 0.52 0.03 0.00 3 ±1.14

0 0.51 1.06

4 ±0.32 ±1.38 0.00

0.04

8 ±0.28

±1.87 ±2.63 0

0.26 0.08 0.0009717812 0.75 5 ±0.46

±2.04

0.31 0.01 0.04 0.89

3、算法实例

1) 用3点Gauss型求积公式计算∫cos x𝑑𝑥1−1 解:根据积分限可以知道应该用Gauss-Legendre积分公式,具体程序如下所示 #include #include using namespace std; const int M(10); void main() { int i=0; int n=0; int m=0; int sign=0; double sum=0; double x[M]={0}; double A[M]={0}; double x1[]={0}; double x2[]={-0.692,0.692}; double x3[]={-0.920,0.920,0}; double x4[]={-0.16,0.16,-0.36,0.36}; double x5[]={-0.59,0.59,-0.010,0.010,0}; double x6[]={-0.42,0.42,-0.65,0.65,-1.16,1.16}; double x7[]={-0.23,0.23,-0.56,0.56,-0.140,0.140,0};