前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数值积分|高斯积分

数值积分|高斯积分

作者头像
fem178
发布2020-05-08 17:13:23
5.3K0
发布2020-05-08 17:13:23
举报

在区间[a,b]上,函数的积分可以近似用梯形公式表示:

I\approx(b-a)\frac{f(a)+f(b)}{2}

如图a所示。这样当然会造成很大的误差。如果在区间内部找两个点,且通过这两个点的直线与区间端点构成的梯形面积最大限度地接近精确值,即图b中A1+A2=A3,这就是高斯积分的思路。

两点高斯积分公式

I=c_0f(x_0)+c_1f(x_1)

其中C0,C1为权系数。x0,x1为区间[-1,1]内的未知点(x0不等于x1),常识告诉我们,要想知道这四个未知量,就要解一个四元方程组。假设有四个函数

y1=1,y2=x,y3=x^2, y4=x^3

,根据上面的公式可以得到

联立解得

c_0=c_1=1
x_0=\frac{1}{-\sqrt{3}}
x_1=\frac{1}{\sqrt{3}}

于是,两点高斯积分公式为

I=f(\frac{1}{-\sqrt{3}})+f(\frac{1}{\sqrt{3}})

式(1)很好理解,就是一个矩形面积嘛。对于式(2),取一般的一次函数

f(x)=ax+b

,如图c

式(2)右边的积分就是梯形的面积,就是所熟知的上底加下底乘高除以二。还可以用梯形中位线表示

\int ^1_{-1} f(x) {\rm d}x=2\times f(0)

上式的意义是:一次函数的高斯积分需要一个高斯积分点即x=0的位置,确定的权重是2,积分点的函数值是f(0)。

对于式(3),取一般的二次函数

f(x)=ax^2+bx+c

,可以验证:

\int ^1_{-1} f(x) {\rm d}x=\int ^1_{-1} (ax^2+bx+c) {\rm d}x
=\frac{2a}{3}+2c
=1\times f(\frac{1}{-\sqrt{3}})+1\times f(\frac{1}{\sqrt{3}})

上式的意义是:二次函数的高斯积分需要两个高斯积分点

x=\frac{1}{\sqrt{-3}}

\frac{1}{\sqrt{3}}

,权重各为1,就可以计算积分了。

换句话说,对于线性函数,只要你告诉我f(0),我无需知道函数表达式,就可以算出你的积分了!同样,对于二次函数,只要你告诉我这俩函数值,我不需要知道函数的表达式,只要把这俩函数值

f(\frac{1}{-\sqrt{3}})

f(\frac{1}{\sqrt{3}})

各乘以权重(都为1)相加即可算出积分值了. 再来看三次函数

f(x)=ax^3+bx^2+cx+d

,可以验证:

\int ^1_{-1} f(x) {\rm d}x=\int ^1_{-1} (ax^3+bx^2+cx+d) {\rm d}x
=1\times f(\frac{1}{-\sqrt{3}})+1\times f(\frac{1}{\sqrt{3}})

由此得到的规律是:四次,五次曲线有三个高斯积分点,六次曲线和七次曲线则需要四个高斯积分点,规律也是一样的。也就是说,n个高斯积分点可以计算2n-1次及以下的函数积分。

高斯积分点是强制使这种数值积分结果与前2n-1阶多项式的积分相等解出来的。比如你打算使用n个点,你还有n个未知权重。你就要使这种数值积分的结果等于对应的从0到2n-1的所有多项式项在区间内的积分结果。这样你就有一个2n阶的非线性方程组,解了它,就能获得积分点和权重值。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数值分析与有限元编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 两点高斯积分公式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档