Gauss型积分公式
- 格式:docx
- 大小:68.55 KB
- 文档页数:12
高斯-勒让德积分公式
作为代数学的一部分内容,高斯-勒让德积分公式具有重要价值。
高斯-勒让德积分公式又称椭圆积分,是一种特殊的积分形式,由德国数学家高斯(Gauss)和法国数学家勒让德(Legendre)两人独立发现并推导得出。
高斯-勒让德积分公式的一般形式为∫(dx/√(a^2x^2-b^2c^2)),其中a、b、c都是常数,x是变量。
在现实中,我们会看到许多这样的公式出现在物理,工程和其他科学领域的计算中,比如椭圆轨道的面积计算,以及电学和磁学中的一些问题。
此外,高斯-勒让德积分公式还有一种等价的形式,即通常所说的椭圆积分,形式为∫(dx/√(1-k^2sin^2φ)),其中φ是角度,k是偏度参数,也是一个常数。
根据高斯-勒让德积分公式,我们可以推导出其他一些重要的积分公式和恒等式,这在数学研究和实际应用中具有重要的作用。
例如,可以通过积分变换将其转化为某些特殊函数的积分,进一步计算出所需的结果。
需要指出的是,不同的场合,高斯-勒让德积分公式需要配合相应的推导方式来求解。
在使用的过程中,需要具备一定的数学技巧和知识。
总的来说,高斯-勒让德积分公式以其独特的形式,为解决复杂问题提供了有效的工具,具有广泛的应用价值。
gauss型积分公式
高斯积分是在概率论和连续傅里叶变换等的统一化等计算中有广泛的应用。
在误差函数的定义中它也出现。
虽然误差函数没有初等函数,但是高斯积分可以通过微积分学的手段解析求解。
高斯积分(Gaussian integral),有时也被称为概率积分,是高斯函数的积分。
它是依德国数学家兼物理学家卡尔·弗里德里希·高斯之姓氏所命名。
高斯积分的几何意义就是:
g是从点A所能看到曲线L的角的度量。
设(x,n)是x轴正方向与n的夹角,(x,r)是x轴正方向与r的夹角,则
(r,n) = (x,n) - (x,r)
所以:
cos(r,n) = cos(x,n)cos(x,r)+sin(x,n)sin(x,r)
=((x-e)cos(x,n)/|r| + (y-m)sin(x,n)/|r|
代入高斯积分:
g = ∫[L] ((y-m)sin(x,n)/(|r|2) + (x-e)cos(x,n)/(|r|2)) ds
化成第二型曲线积分:
g = ±∫[L] ((y-m)/(|r|2) dx - (x-e)/(|r|2) dy)
±表示法线n的两个方向。
此方程满足积分路径无关的条件,假如L是一条闭曲线,A在L外部,那么g=0,如果A在内部,根据挖奇点法,积分结果为2π。
gauss型求积公式一、Gauss型求积公式的基本概念。
1. 定义。
- 在数值积分中,Gauss型求积公式是一种高精度的求积公式。
对于积分∫_a^bf(x)ρ(x)dx(其中ρ(x)为权函数),Gauss型求积公式的形式为∫_a^bf(x)ρ(x)dx≈∑_i = 1^nA_if(x_i)。
这里x_i称为求积节点,A_i称为求积系数,n为求积公式的节点个数。
2. 特点。
- 高精度:Gauss型求积公式具有很高的代数精度。
对于n个节点的Gauss型求积公式,其代数精度为2n - 1。
这意味着对于次数不超过2n-1的多项式f(x),该求积公式能精确成立,即∫_a^bP_m(x)ρ(x)dx=∑_i = 1^nA_iP_m(x_i),其中m≤slant2n - 1,P_m(x)是m次多项式。
- 节点分布:Gauss型求积公式的节点x_i不是等距分布的。
这些节点是关于权函数ρ(x)正交的多项式的零点。
例如,当ρ(x) = 1,[a,b]=[- 1,1]时,对应的正交多项式是勒让德多项式P_n(x),Gauss型求积公式的节点就是勒让德多项式的零点。
二、求积节点与求积系数。
1. 求积节点的确定。
- 以勒让德 - Gauss求积公式为例(ρ(x)=1,[a,b]=[-1,1]),求积节点x_i是勒让德多项式P_n(x)的零点。
勒让德多项式P_n(x)可以通过递推公式(n + 1)P_n +1(x)=(2n + 1)xP_n(x)-nP_n - 1(x),P_0(x)=1,P_1(x)=x来计算。
通过求解P_n(x)=0得到求积节点x_i。
2. 求积系数的计算。
- 求积系数A_i可以通过多种方法计算。
一种常见的方法是利用正交性条件。
对于勒让德 - Gauss求积公式,求积系数A_i可以通过公式A_i=(2)/((1 -x_i)^2)[P_{n'(x_i)]^2}计算,其中P_n'(x)是勒让德多项式P_n(x)的导数。
格林公式高斯公式斯托克斯公式
格林公式、高斯公式和斯托克斯公式是微积分中的三个重要公式,用于计算曲线、曲面和体积上的积分。
1. 格林公式(Green's theorem):该公式用于计算平面上的曲线积分和二重积分之间的关系。
设曲线C是一个简单闭合曲线,方向为逆时针方向,曲线内部围成的区域为D,若函数
P(x, y)和Q(x, y)在区域D内有一阶连续偏导数,则有:
∮C Pdx + Qdy = ∬D (∂Q/∂x - ∂P/∂y) dA
2. 高斯公式(Gauss's theorem):该公式用于计算封闭曲面上的曲面积分和三重积分之间的关系。
设曲面S是一个封闭曲面,曲面内部的区域为V,若函数F(x, y, z)在区域V内有一阶连续偏导数,则有:
∮S F · dS = ∬∬S ∇·F dS = ∭V ∇·F dV
3. 斯托克斯公式(Stokes' theorem):该公式用于计算曲面边界上的曲线积分和曲面积分之间的关系。
设曲面S是一个有向曲面,曲面边界为曲线C,若函数F(x, y, z)在曲线C和曲面S内都有一阶连续偏导数,则有:
∮C F · dr = ∬S (∇×F) · dS
这三个公式为微积分中的基本定理,可以用于求解各种应用问题,如流体力学、电磁学等领域中的问题。
Gauss型积分公式摘要求函数在给定区间上的定积分,在微积分学中已给出了许多计算方法,但是,在实际问题计算中,往往仅给出函数在一些离散点的值,它的解析表达式没有明显的给出,或者,虽然给出解析表达式,但却很难求得其原函数。
这时我们可以通过数值方法求出函数积分的近似值。
当然再用近似值代替真实值时,误差精度是我们需要考虑因素,但是除了误差精度以外,还可以用代数精度来判断其精度的高低。
已知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)多项式如下定义的多项式称作勒让德多项式。
由于是次多项式,所以是n次多项式,其最高次幂的系数与多项式的系数相同。
也就是说n次勒让德多项式具有正交性即勒让德多项式是在上带的n次正交多项式,而且这时Gauss型积分公式的节点就取为上述多项式的零点,相应的Gauss型积分公式为此积分公式即成为高斯-勒让德积分公式。
其中Gauss-Legendre求积公式的系数1其中k的取值范围为Gauss点和系数不容易计算,但是在实际计算中精度要求不是很高,所以给出如下表所示的部分Gauss点和系数,在实际应用中只需查表即可。
在电磁学中,常用的积分公式包括:
1. 高斯定律(Gauss's Law):
∮S E · dA = ε₀∫V ρdV
这个公式描述了电场通过闭合曲面的总通量与该曲面内所包围电荷的总量之间的关系。
其中,E是电场强度,S是曲面,A是曲面上的微小面积元素,V是曲面所包围的体积,ρ是电荷密度,ε₀是真空介电常数。
2. 斯托克斯定理(Stokes's Theorem):
∮C B · dl = μ₀∫S J ·dA
这个公式将闭合曲线C沿着某个方向的环流与该曲线所围成的曲面S上的面积分之间建立了联系。
其中,B是磁场强度,dl是沿着曲线C的微小长度元素,J是电流密度,dA 是曲面S上的微小面积元素,μ₀是真空磁导率。
3. 法拉第电磁感应定律(Faraday's Law of Electromagnetic Induction):
∮C E · dl = -d/dt ∫S B · dA
这个公式描述了磁场变化引起的电场感应与磁场沿着某个闭合曲线C的环流之间的关系。
其中,E是电场强度,dl 是沿着曲线C的微小长度元素,B是磁场强度,dA是曲面S
上的微小面积元素。
这些积分公式是电磁学中的基本定律,通过它们可以推导出电磁场的行为规律,解决各种与电场和磁场有关的问题。
G a u s s型积分公式-CAL-FENGHAI.-(YICAI)-Company One1摘要求函数在给定区间上的定积分,在微积分学中已给出了许多计算方法,但是,在实际问题计算中,往往仅给出函数在一些离散点的值,它的解析表达式没有明显的给出,或者,虽然给出解析表达式,但却很难求得其原函数。
这时我们可以通过数值方法求出函数积分的近似值。
当然再用近似值代替真实值时,误差精度是我们需要考虑因素,但是除了误差精度以外,还可以用代数精度来判断其精度的高低。
已知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)多项式如下定义的多项式称作勒让德多项式。
由于是次多项式,所以是n次多项式,其最高次幂的系数与多项式的系数相同。
也就是说n 次勒让德多项式具有正交性即勒让德多项式是在上带的n次正交多项式,而且这时Gauss 型积分公式的节点就取为上述多项式的零点,相应的Gauss型积分公式为12此积分公式即成为高斯-勒让德积分公式。
其中Gauss-Legendre 求积公式的系数其中k 的取值范围为Gauss 点和系数不容易计算,但是在实际计算中精度要求不是很高,所以给出如下表所示的部分Gauss 点,在实际应用中只需查表即可。
高斯格林公式高斯格林公式,又称高斯-拉普拉斯方程,是物理学和数学上重要的积分形式。
这个公式由普林斯顿大学数学教授卡尔高斯(Carl Friedrich Gauss)和德国数学家罗伯特拉普拉斯(Rudolf Lipschitz)一起应用拉普拉斯变换(the Laplace transform)研究出来的。
高斯格林公式有两种形式。
一种是积分的形式,如下所示:∫[-∞,∞]e-axdx =√π/a其中,a是一个正实数。
这个公式表明,一个函数的Fourier变换与其特征函数成正比。
另一种是微分形式,如下所示:(-d/dx +a)e-ax =0这是微分形式表示,表示ae-ax是一个函数的积分形式,它也可以用来引入函数的Fourier变换。
此外,它还可以用来解决方程的常微分方程组,以及求解热传导和磁力学方程。
高斯格林公式在现代物理学中应用广泛,它可以用来分析和解决问题,如原子核物理,多体物理学,量子力学,电磁学,热力学等等。
它也可以用来处理高维数学问题,如线性系统,偏微分方程,计算复变函数等等。
高斯格林公式的发展是一个复杂而漫长的历程,从古典物理学家卡尔高斯到现代数学家罗伯特拉普拉斯,都对它的发展贡献良多。
卡尔高斯在19世纪解决了一系列积分问题,而拉普拉斯则在20世纪给出了证明的完整形式。
高斯格林公式的发展受到了众多数学家,物理学家和普通大众的尊重,它被认为是一个伟大的数学发现,也是现代科学的基础。
这个公式的发展给现代科学和技术带来了很多有趣的突破和发展,对改善人类的生活也有着重要的作用。
总之,高斯格林公式是一个十分重要的科学公式,它在现代科学中被广泛应用,并且给人类生活带来了很多便利。
Gauss型(Gaussianquadrature)求积公式和⽅法⽬录0、Gauss型积分通⽤形式1、Gauss–Legendre quadrature勒让德2、Gauss–Laguerre quadrature拉盖尔——积分区间[0,inf]3、Chebyshev–Gauss quadrature切⽐雪夫0、Gauss型积分通⽤形式The integration problem can be expressed in a slightly more general way by introducing a positive weight functionω into the integrand(被积函数), and allowing an interval other than(除了,不同于) [−1, 1]. That is, the problem is to calculatefor some choices of a, b, and ω. For a = −1, b = 1, and ω(x) = 1, the problem is the same as that considered above(勒让德问题). Other choices lead to other integration rules. Some of these are tabulated(列表) below.1、Gauss–Legendre quadrature勒让德——积分区间[-1,1]The most common domain of integration for such a rule is taken as [−1, 1], so the rule is stated aswhich is exact for polynomials of degree 2n − 1 or less. This exact rule is known as the Gauss-Legendre quadrature rule. The quadrature rule will only be an accurate approximation to the integral above if f(x) is well-approximated by a polynomial of degree 2n − 1 or less on [−1, 1]. The Gauss-Legendre quadrature rule is not typically used for integrable functions with endpoint singularities.(端点奇点)(1)基本概念注:P0没有根(与x轴⽆交点),P1有1个根(与x轴有⼀个交点),P2有2个根(与x轴有两个交点),。
guass积分公式Guass积分公式是Joseph-Louis Lagrange提出的,由Carl Friedrich Gauss精确求解,是现代数学中最重要的解析积分公式。
它指出把函数表示为一个二次项或者一个多项式和常数,则该函数在某一个区间内的积分就可以被准确地求出。
具体来说,该公式表明,在定义域[a,b]内的某一函数f (x)的积分可以用下式表示:\int_{a}^{b}\mathrm f (\mathrm x)\ \mathrm d\mathrm x=\frac{\mathrm b\mathrm f_2-\mathrm a \mathrm f_2+\mathrm f_1(\mathrm b-\mathrma)}{2},其中f2为f (x)在x=a和x=b时的值,f1为f (x)在[a,b]内的一阶导函数。
上式等同于\int_{a}^{b}\mathrm f (\mathrm x)\ \mathrm d\mathrm x=\mathrm\frac{\mathrm b \mathrm \left[\frac{\textrm{f (a)+f (b)}}{2}\right]-\mathrm a \left[\frac{\textrm{f (a)+f (b)}}{2}\right]+\mathrm [\textrm{f (b)-f (a)}]\frac{\mathrm b-\mathrm a}{2}}{2}称之为Guass公式,它有助于简化计算复杂函数的积分,并且可以用于前后区间不同的情况。
由于Guass积分公式可以简化复杂的积分计算,这在许多计算中是十分有用的。
例如,在求解偏微分方程时,可以用Guass积分公式来求解未知函数的积分。
这既可以节省计算时间,又可以避免出现数值误差,并且还可以用来在求解不同范围内函数的积分时进行快速转换。
此外,Guass积分公式还用于求解橡皮形状的函数以及曲线的积分など。
摘要求函数在给定区间上的定积分,在微积分学中已给出了许多计算方法,但是,在实际问题计算中,往往仅给出函数在一些离散点的值,它的解析表达式没有明显的给出,或者,虽然给出解析表达式,但却很难求得其原函数。
这时我们可以通过数值方法求出函数积分的近似值。
当然再用近似值代替真实值时,误差精度是我们需要考虑因素,但是除了误差精度以外,还可以用代数精度来判断其精度的高低。
已知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)多项式如下定义的多项式L n(x)=12n n!d ndx n(x2−1)n,x∈[−1,1],n=0,1,2⋯称作勒让德多项式。
由于(x2−1)n是2n次多项式,所以L n(x)是n次多项式,其最高次幂的系数A n与多项式1 2n n!d ndx n(x(2n))=12n n!2n(2n−1)(2n−2)⋯(n+1)x n的系数相同。
也就是说n次勒让德多项式具有正交性即勒让德多项式L n(x)是在[−1,1]上带ρ(x)=1的n次正交多项式,而且(L m,L n)=∫L m(x)L n(x)dx1−1={0, m≠n22n+1, m=n这时Gauss型积分公式的节点就取为上述多项式L n(x)的零点,相应的Gauss型积分公式为∫f(x)dx 1−1≈∑A k f(x k) nk=1此积分公式即成为高斯-勒让德积分公式。
Gauss 公式和Stokes 公式1.Gauss 公式 定理: 设3Ω⊆是有界闭区域,其边界∂Ω由若干1C 曲面组成,∂Ω取外法向量为正向。
则对任何1C 向量场3(,,):T F X Y Z =Ω→,成立,d div d F F v σ∂ΩΩ=⎰⎰⎰⎰⎰n ,其中n 是∂Ω的单位外法向量, (,,)div tr(,,)X Y Z X Y ZF x y z x y z∂∂∂∂==++∂∂∂∂是F 的散度。
上述结论可用微分形式表示为,对二阶微分形式d d d d d d X y z Y z x Z x y ω=∧+∧+∧,成立d ωω∂ΩΩ=⎰⎰⎰⎰⎰其中d d d d X Y Z x y z x y z ω⎛⎫∂∂∂=++∧∧ ⎪∂∂∂⎝⎭是ω的外微分。
证明:我们对d d Z x y ω=∧证明d ωω∂ΩΩ=⎰⎰⎰⎰⎰。
然后再利用两边积分的线性,得到最终结论。
把3Ω⊆分解为形如{(,)(,)|(,)}f x y z g x y x y D ∆=≤≤∈的简单区域,记 {(,,(,))|(,)}x y g x y x y D ∑=∈上,{(,,(,))|(,)}x y f x y x y D ∑=∈上,{(,,)|(,)(,),(,)}x y z f x y z g x y x y D ∑=≤≤∈∂侧(,)(,)d d d d d d d d (,,(,))d d (,,(,))d d (,,(,))(,,(,))d d (,,)d d d (,,)d d d DDDg x y f x y DZ x y Z x y Z x y Z x yZ x y g x y x y Z x y f x y x yZ x y g x y Z x y f x y x yZ Zx y z z x y x y z x y zz z ∂∆∑∑∑∆∧=∧+∧+∧=-=-∂∂==∧∧∂∂⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰⎰下上侧■注:考虑3{(,,)|max{,,}}C x y z x y z ε=∈≤。
三点gauss型求积公式例题Gauss型求积公式是一种数值积分方法,用于近似计算定积分。
它基于一种特定的权重函数和节点选取方式,以提高计算精度。
Gauss型求积公式可用于一维和多维的定积分计算。
一维Gauss型求积公式的形式如下:∫(a到b) f(x)dx ≈ Σ(i=1到n) wi*f(xi)其中,wi是权重函数,xi是节点的位置,n是节点的个数。
这个公式的准确性和节点个数有关,一般情况下,节点数越多,计算结果越准确。
下面是一个一维Gauss型求积公式的例题:考虑求解函数f(x) = x^2在区间[0,1]上的定积分。
根据Gauss型求积公式,在这个问题中,我们需要选择节点和权重函数。
一种常用的选择是Legendre多项式。
对于这个例题,我们使用2个节点进行计算。
根据Legendre多项式的公式,我们可以得到节点和权重函数的值如下:节点xi: -0.57735, 0.57735权重函数wi: 1, 1将节点和权重函数代入Gauss型求积公式,我们可以计算出近似的定积分值:∫(0到1) x^2 dx ≈ (1/2)*x^2 |(0到1)≈ (1/2)*1^2 - (1/2)*0^2≈ 1/2因此,函数f(x) = x^2在区间[0,1]上的定积分的近似值是1/2。
拓展:Gauss型求积公式不仅适用于一维的定积分计算,也可以扩展为多维的情况。
对于多维的积分计算,我们可以分别在每个维度上选取节点和权重函数,然后组合起来进行计算。
多维Gauss型求积公式可以更准确地近似计算多维函数的定积分值。
此外,除了Legendre多项式,还有其他类型的多项式可以用于选择节点和权重函数,例如Chebyshev多项式和Hermite多项式。
不同的多项式选择会影响到计算结果的准确性和稳定性。
在实际应用中,根据具体的问题和需求,选择合适的多项式和节点数进行计算。
摘要求函数在给定区间上的定积分,在微积分学中已给出了许多计算方法,但是,在实际问题计算中,往往仅给出函数在一些离散点的值,它的解析表达式没有明显的给出,或者,虽然给出解析表达式,但却很难求得其原函数。
这时我们可以通过数值方法求出函数积分的近似值。
当然再用近似值代替真实值时,误差精度是我们需要考虑因素,但是除了误差精度以外,还可以用代数精度来判断其精度的高低。
已知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)多项式如下定义的多项式L n(x)=12n n!d ndx n(x2−1)n,x∈[−1,1],n=0,1,2⋯称作勒让德多项式。
由于(x2−1)n是2n次多项式,所以L n(x)是n次多项式,其最高次幂的系数A n与多项式1 2n n!d ndx n(x(2n))=12n n!2n(2n−1)(2n−2)⋯(n+1)x n的系数相同。
也就是说n次勒让德多项式具有正交性即勒让德多项式L n(x)是在[−1,1]上带ρ(x)=1的n次正交多项式,而且(L m,L n)=∫L m(x)L n(x)dx1−1={0, m≠n22n+1, m=n这时Gauss型积分公式的节点就取为上述多项式L n(x)的零点,相应的Gauss型积分公式为∫f(x)dx 1−1≈∑A k f(x k) nk=1此积分公式即成为高斯-勒让德积分公式。
其中Gauss-Legendre求积公式的系数A k=∫ρ(x)ωn(x)(x−x k)ω′n(x)dx1−1=∫ρ(x)L n(x)(x−x k)L′n(x)dx 1−1其中k的取值范围为k=1,2,⋯,nGauss点和系数不容易计算,但是在实际计算中精度要求不是很高,所以给出如下表所示的部分Gauss点{x k}和系数{A k},在实际应用中只需查表2)高斯-拉盖尔(Gauss-Laguerre)积分公式拉盖尔(Laguere)多项式L n(x)=e x d ndx n(x n e−x),0≤x<+∞,n=0,1,2⋯称为拉盖尔多项式。
其首项系数为(−1)n,且具有性质:正交性,在区间[0,+∞)上关于权函数ρ(x)=e−x正交,而且(L m,L n)=∫e−x L m(x)L n(x)dx∞0={0, m≠n(n!)2, m=n积分区间为[0,+∞),权函数为ρ(x)=e−x的Gauss型积分公式称为高斯-拉盖尔积分公式,其中Gauss点为拉盖尔多项式L n(x)的零点,高斯-拉盖尔积分公式为∫e−x f(x)dx ∞0≈∑A k f(x k) nk=1同样高斯-拉盖尔积分公式的Gauss点和求积系数如下表所示:3)高斯-埃尔米特(Gauss-Hermite)积分公式埃尔米特(Hermite)多项式H n(x)=(−1)n e x2d n e−x2n,−∞<x<+∞,n=0,1,2⋯被称作埃尔米特多项式,其首项系数为2n,具有性质如下正交性,在区间(−∞,+∞)上关于权函数e−x2正交,而且(H m,H n)=∫e−x2H m(x)H n(x)dx+∞−∞={0, m≠n 2n n!√π, m=n积分区间为(−∞,+∞),权函数为ρ(x)=e−x2的Gauss型积分公式称为Gauss-Hermite积分公式,其Gauss点就是Hermite正交多项式H n(x)的零点。
Gauss-Hermite求积公式为∫e−x2f(x)dx ∞−∞≈∑A k f(x k) nk=1同样高斯-埃尔米特积分公式的Gauss点和求积系数如下表所示:3、算法实例1) 用3点Gauss 型求积公式计算∫cos xdx 1−1解:根据积分限可以知道应该用Gauss-Legendre 积分公式,具体程序如下所示#include <iostream> #include <math.h>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.57735502692,0.57735502692}; double x3[]={-0.77459666920,0.77459666920,0}; doublex4[]={-0.8611363116,0.8611363116,-0.3399810436,0.3399810436};doublex5[]={-0.9061798459,0.9061798459,-0.53846931010,0.538469310 10,0};doublex6[]={-0.9324695142,0.9324695142,-0.6612093865,0.6612093865 ,-1.2386191816,1.2386191816};doublex7[]={-0.9491079123,0.9491079123,-0.7415311856,0.7415311856 ,-0.40584515140,0.40584515140,0};doublex8[]={-0.9602898565,0.9602898565,-0.7966664774,0.7966664774 ,-0.5255324099,0.5255324099,-0.1834346425,0.1834346425};double A1[]={2};double A2[]={1};double A3[]={0.5555555556,0.8888888889};double A4[]={0.3478548451,0.6521451549};double A5[]={0.2369268851,0.4786286705,0.5688888889};double A6[]={0.1713244924,0.3607615730,0.4679139346};doubleA7[]={0.1294849662,0.2797053915,0.3818300505,0.4179591834};doubleA8[]={0.1012285363,0.2223810345,0.3137066459,0.3626837834};cout<<"请输入节点个数"<<endl;cin>>n;switch(n){case 1:for(i=0;i<n;i++){x[i]=x1[i];A[i]=A1[i];}break;case2:for(i=0;i<n;i++){x[i]=x2[i];}for(i=0;i<n;i++){A[i]=A2[i/2 ];}break;case3:for(i=0;i<n;i++){x[i]=x3[i];}for(i=0;i<n;i++){A[i]=A3[i/2 ];}break;case4:for(i=0;i<n;i++){x[i]=x4[i];}for(i=0;i<n;i++){A[i]=A4[i/2];}break;case5:for(i=0;i<n;i++){x[i]=x5[i];}for(i=0;i<n;i++){A[i]=A5[i/2];}break;case6:for(i=0;i<n;i++){x[i]=x6[i];}for(i=0;i<n;i++){A[i]=A6[i/2];}break;case7:for(i=0;i<n;i++){x[i]=x7[i];}for(i=0;i<n;i++){A[i]=A7[i/2];}break;case8:for(i=0;i<n;i++){x[i]=x8[i];}for(i=0;i<n;i++){A[i]=A8[i/2];}break;default:cout<<"输入出错,请从新输入!!"<<endl; break; }for(i=0;i<n;i++) {sum=sum+A[i]*cos(x[i]); }cout<<sum; }运行结果:2) 用两点Gauss 型求积公式计算积分∫e −10x sinxdx ∞解:根据积分限可以知道应该用Gauss-Laguerre 积分公式,具体程序如下所示#include "stdafx.h"#include <iostream>#include <math.h>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 x2[]={0.5857864376,3.4142135624};double x3[]={0.4157745567,2.2942803602,6.2899450829};double x4[]={0.3225476896,1.7457611011,4.5366202969,9.3950709123};doublex5[]={0.2635603197,1.4134030591,3.5964257710,7.0858100058,12.6408008442};doublex6[]={0.2228466041,1.1889321016,2.9927363260,5.7751435691,9.8374674183,15.9 828739806};double A2[]={0.853*******,0.1464466094};double A3[]={0.7110930099,0.2785177335,0.010*******};double A4[]={0.6031541043,0.3574186924,0.0388879085,0.0005392947};doubleA5[]={0.5217556105,0.3986668110,0.0759424497,0.0036117587,0.0000233700};doubleA6[]={0.4589646793,0.4170008307,0.1133733820,0.010*******,0.0002610172,0.00 00008985};cout<<"请输入节点个数"<<endl;cin>>n;switch(n){case 2:for(i=0;i<n;i++){x[i]=x2[i];}for(i=0;i<n;i++){A[i]=A2[i];}break;case 3:for(i=0;i<n;i++){x[i]=x3[i];}for(i=0;i<n;i++){A[i]=A3[i];}break; case 4:for(i=0;i<n;i++){x[i]=x4[i];}for(i=0;i<n;i++){A[i]=A4[i];}break; case 5:for(i=0;i<n;i++){x[i]=x5[i];}for(i=0;i<n;i++){A[i]=A5[i];}break; case 6:for(i=0;i<n;i++){x[i]=x6[i];}for(i=0;i<n;i++){A[i]=A6[i];}break; default: cout<<"输入出错,请从新输入!!"<<endl; break;}for(i=0;i<n;i++) { sum=sum+A[i]*sin(x[i])*exp(-9*x[i]); }cout<<sum; }运行结果:3) 用两点Gauss 型求积公式计算积分∫e −x 2cosxdx ∞−∞解:根据积分限可以知道应该用Gauss-Hermite 积分公式,具体程序如下所示#include "stdafx.h" #include <iostream> #include <math.h> 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 x2[]={-0.7071067811,0.7071067811};double x3[]={-1.2247448714,1.2247448714,0};doublex4[]={-0.5246476232,0.5246476232,-1.6506801238,1.6506801238 };doublex5[]={-0.9585724646,0.9585724646,-2.020*******,2.020******* };doublex6[]={-0.4360774119,0.4360774119,-1.3358490704,1.3358490704 ,-2.3506049736,2.3506049736};doublex7[]={-0.8162878828,0.8162878828,-1.6735516287,1.6735516287 ,-2.65196135630,2.65196135630,0};double A2[]={0.8862269255};double A3[]={0.2954089751,1.8163590006};double A4[]={0.8049140900,0.0813128354};doubleA5[]={0.3936193231,0.0199532421,0.9453087204,0.5688888889};double A6[]={0.7246295952,0.1570673203,0.0045300099};doubleA7[]={0.4256072526,0.0545155828,0.0009717812,0.8102646175};cout<<"请输入节点个数"<<endl;cin>>n;switch(n){case2:for(i=0;i<n;i++){x[i]=x2[i];}for(i=0;i<n;i++){A[i]=A2[i/2 ];}break;case3:for(i=0;i<n;i++){x[i]=x3[i];}for(i=0;i<n;i++){A[i]=A3[i/2 ];}break;case4:for(i=0;i<n;i++){x[i]=x4[i];}for(i=0;i<n;i++){A[i]=A4[i/2 ];}break;case5:for(i=0;i<n;i++){x[i]=x5[i];}for(i=0;i<n;i++){A[i]=A5[i];}break;case6:for(i=0;i<n;i++){x[i]=x6[i];}for(i=0;i<n;i++){A[i]=A6[i/2 ];}break;case7:for(i=0;i<n;i++){x[i]=x7[i];A[i]=A7[i/2];}break;default:cout<<"输入出错,请从新输入!!"<<endl;break;}for(i=0;i<n;i++){sum=sum+A[i]*cos(x[i]);}cout<<sum;}运行结果:4、对结果进行分析实验结果较为理想,但是仅仅只能计算函数在特殊的区间上的值。