Gauss型求积公式及其Matlab程序
为什么要引入数值积分
由于Gauss型求积公式属于数值积分的内容,学东西总要知道它的来龙去脉,下面我简单介绍一下为什么要引入数值积分
给定函数f(x)∈C[a,b]f(x)\in C[a,b]f(x)∈C[a,b],考虑积分
I(f)=∫abf(x)dxI(f)=\int_{a}^{b} f(x) dxI(f)=∫abf(x)dx
的计算问题,从数学分析中知道,当已知f(x)f(x)f(x)的原函数为F(x)F(x)F(x)时,由牛顿-莱布尼兹公式,有
I(f)=∫abf(x)dx=F(b)−F(a)I(f)=\int_{a}^{b}f(x)dx=F(b)-F(a)I(f)=∫abf(x)dx=F(b)−F(a)
然而,在实际计算中,被积函数的f(x)f(x)f(x)的原函数经常无法用初等函数表示,但过于复杂。还有时,f(x)f(x)f(x)只在一些离散点上给出。在这样的情况下,就有必要借助数值方法来求I(f)I(f)I(f)的近似值。
Gauss型求积公式的定义
从正交多项式理论可知,在区间[a,b]上,对给定的权函数ρ(x)\rho(x)ρ(x),存在正交多项式系ωk(x)k=0∞{\omega_{k}(x)}_{k=0}^{\infty}ωk(x)k=0∞并且可以将其构造出来。进一步,已经证明了ωk(x)\omega_{k}(x)ωk(x)在[a,b]上恰有k个相异的根,取ωn+1(x)\omega_{n+1}(x)ωn+1(x)的n+1个根为求积结点,构造插值型求积公式,将得到具有2n+1次代数精度的求积公式,称如此构造出来的求积公式为Gauss型求积公式即:
如果求积结点x0,x1,....,xnx_{0},x_{1},....,x_{n}x0,x1,....,xn,使插值型求积公式∫−11f(x)dx≈∑k=0nAkf(xk)\int_{-1}^{1}f(x)dx\approx\sum_{k=0}^{n}A_kf(x_k)∫−11f(x)dx≈∑k=0nAkf(xk)的代数精度为2n+1,则称该求积公式为Gauss型求积公式,称这些求积结点为Gauss点。
特别地,Gauss求积公式当[a,b]=[-1,1]时,取ρ(x)\rho(x)ρ(x)=1,Gauss型求积公式称为Gauss求积公式,此时的求积结点
xk(k=1,2,3....)x_k(k=1,2,3....)xk(k=1,2,3....)为n次Legendre多项式的根。
且Ak=∫−11ω(x)(x−xk)ω′(xk)dxA_k=\int_{-1}^{1} \frac{\omega(x)}{(x-x_k)\omega'(x_k)}dxAk=∫−11(x−xk)ω′(xk)ω(x)dx
而Legendre多项式为:
打代码太南了,我手写偷下懒。
Gauss公式的应用
Gauss公式主要应用为二点Gauss公式和三点Gauss公式
二点Gauss公式:当n=2时,有 x1=−13,x2=13,A1=A2=1x_1=-\sqrt\frac{1}{3},x_2=\sqrt\frac{1}{3},A_1=A_2=1x1=−31,x2=31,A1=A2=1,求积公式为G2(f)=f(−13)+f(13)G_2(f)=f(-\sqrt\frac{1}{3})+f(\sqrt\frac{1}{3})G2(f)=f(−31)+f(31)
三点Gauss求积公式:当n=3时,有x1=−35,x2=0,x3=35,A1=A3=59,A2=89x_1=-\sqrt\frac{3}{5},x_2=0,x_3=\sqrt\frac{3}{5},A_1=A_3=\frac{5}{9},A_2=\frac{8}{9}x1=−53,x2=0,x3=53,A1=A3=95,A2=98,求积公式为G3(f)=59f(−33)+89f(0)+59f(35)G_3(f)=\frac{5}{9}f(-\sqrt\frac{3}{3})+\frac{8}{9}f(0)+\frac{5}{9}f(\sqrt\frac{3}{5})G3(f)=95f(−33)+98f(0)+95f(53)
为了计算[a,b]上的定积分∫abf(x)dx\int_{a}^{b} f(x) dx∫abf(x)dx可以通过自变量的变换x=12(a+b+t∗(b−a))x=\frac{1}{2}(a+b+t*(b-a))x=21(a+b+t∗(b−a))将其转换为[-1,1]上的积分,然后使用Gauss积分公式计算其近似值。
例:
用两点Gauss公式计算∫01sinxxdx\int_{0}^{1}\frac{sinx}{x}dx∫01xsinxdx
解:变换令x=0.5(t+1)
∫01sinxxdx=∫−11sin0.5(t+1)t+1dx\int_{0}^{1}\frac{sinx}{x}dx=\int_{-1}^{1}\frac{sin0.5(t+1)}{t+1}dx∫01xsinxdx=∫−11t+1sin0.5(t+1)dx
取t0=−13,t1=13t_0=\frac{-1}{\sqrt 3},t_1=\frac{1}{\sqrt 3}t0=3−1,t1=31
∫01sinxxdx=0.5[sin0.5(t0+1)0.5(t0+1+sin0.5(t1+1)0.5(t1+1]\int_{0}^{1}\frac{sinx}{x}dx=0.5[\frac{sin0.5(t_0+1)}{0.5(t_0+1}+\frac{sin0.5(t_1+1)}{0.5(t_1+1}]∫01xsinxdx=0.5[0.5(t0+1sin0.5(t0+1)+0.5(t1+1sin0.5(t1+1)]
Matlab程序
function [w,p] = Gauss_point_1D(n,a,b)
% Gauss quarature point on [-1,1]
if n == 2w = [1,1];p = [-1/sqrt(3),1/sqrt(3)];
elseif n == 4w = [0.3478548451,0.3478548451,0.6521451549,0.6521451549];p = [0.8611363116,-0.8611363116,0.3399810436,-0.3399810436];
elseif n == 8w = [0.1012285363,0.1012285363,0.2223810345,0.2223810345,0.3137066459,0.3137066459,0.3626837834,0.3626837834];p = [0.9602898565,-0.9602898565,0.7966664774,-0.7966664774,0.5255324099,-0.5255324099,0.1834346425,-0.1834346425];
end% Gauss quarature point on [a,b]
w = 0.5*(b-a)*w;
p = 0.5*(b-a)*p+0.5*(b+a);function q = Gauss_quadrature(fun,a,b,n)
% Gauss quadrature
[w,p] = Gauss_point_1D(n,a,b);
q = sum(w.*fun(p));
Gauss型求积公式及其Matlab程序相关推荐
- 数值分析(10):数值积分之Gauss型求积公式
Gauss型求积公式 1. 引言 2. Gauss型求积公式 2.1 Gauss型求积公式的定义 2.2 Gauss点的性质 2.3 构造Gauss型求积公式 2.4 Gauss型求积公式的余项 2. ...
- Gauss型求积公式
一.简介 高斯求积公式是变步长数值积分的一种,基本形式是计算[-1,1]上的定积分.理论证明对于 n个节点的上述求积公式,最高有 2n - 1 次的代数精度,高斯公式就是使得上述公式具有 2n - 1 ...
- 复合型自适应步长的Gauss型求积(附代码)
复合型自适应步长的Gauss型求积 先前在做数值分析实验时,把高斯型求积公式和复合型.自适应步长的求积融合到了一起,但是后来发现题目没有这个要求..现在就把这个思路分享一下. 上题目: 实验目的:学会 ...
- Matlab代码 多时间尺度优化调度 MATLAB程序含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度
Matlab代码 多时间尺度优化调度 MATLAB程序,论文复现<含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度> 是一篇多时间尺度的优化运行程序 有需要的可以先知网阅读一下文章 ID: ...
- MATLAB程序:综合能源系统优化调度,考虑了阶梯型碳交易机制和氢能,具有一定的创新。
MATLAB程序:综合能源系统优化调度,考虑了阶梯型碳交易机制和氢能,具有一定的创新. 采用CPLEX+Yalmip求解,基本复现. ID:6990667995938854
- Gauss型(Gaussian quadrature)求积公式和方法
目录 0.Gauss型积分通用形式 1.Gauss–Legendre quadrature勒让德 2.Gauss–Laguerre quadrature拉盖尔--积分区间[0,inf] 3.Cheby ...
- matlab程序eX2_2是什么意思,第2章 MATLAB程序设计
第2章MATLAB程序设计基础 Matlab以矩阵为运算单元,除非特殊需要,矩阵不必事先定义维数大小.Matlab还提供了丰富的矩阵运算函数,如求逆矩阵的inv函数,求方阵行列式的det函数,求矩阵特 ...
- 不用工具箱的神经网络matlab程序_MATLAB中的神经网络工具箱(2)函数命令及模型搭建...
前面介绍了神经网络工具箱GUI的使用,它功能强大可以直接生成脚本.但是函数命令的灵活性是GUI所不及的.也应该有所了解. 神经网络函数命令 1.网络创建函数 函数名称 功能 fitnet 创建函数拟合 ...
- 数值分析龙贝格matlab,龙贝格matlab程序
k>=15 [龙贝格求积算法 Matlab 主程序] function[t]=rbg(f,a,b,c) t=zeros(15,4); %定义龙贝格积分函数,f 为待积函数,a 与 b 为积 分上 ...
- matlab多元回归程序,多元回归程序MATLAB程序
<多元回归程序MATLAB程序>由会员分享,可在线阅读,更多相关<多元回归程序MATLAB程序(45页珍藏版)>请在人人文库网上搜索. 1.程序MATLAB多元回归程序matl ...
最新文章
- 永远不要辞职,除非……
- python修改文件内容最后一行_关于python:如何修改文件的最后一行?
- textContent、innerHTML、innerText、outerText、outerHTML、nodeValue使用场景和区别
- c/c++,字符,字符串,各种方式读入与对空格,回车的处理
- 【VBA编程】06.控制语句
- android商品mysql_android使用mysql的方法总结
- [二叉树遍历|BST]leetcode 538 把二叉搜索树转换为累加树
- Linux进程管理工具 Supervisor详解
- 五分钟读完《人性的弱点》
- 提高电火炉使用安全,微波雷达模组感应控制,雷达感应技术方案
- Mysql添加报错 MySqlException: Incorrect string value: ‘\xE5\xAF\xBC\xE5\x85\xA5...‘ for
- Photoshop_如何使用
- 批量修改UWP版bilibili下载的视频文件名
- 32位通用寄存器ESP、EIP、EAX、EBX、ECX、EDX,在OD里操作这些寄存器
- 台式计算机没办法连接wifi吗,台式机没有无线网络连接该怎么办
- (正则)校验 8-16位,必须含有特殊字符、而大写字母、小写字母、数字至少包含其中两项
- 给定一个字符类型的数组chas[]
- 手把手教你写《雷神》游戏(三)
- 2018上海市六一计算机创新活动,《梦幻西游》电脑版2018六一儿童节活动
- 关键字搜索软件_高效搜索神器,你选listary还是火柴?
热门文章
- git fork 什么意思
- c语言数组输入空格回车问题
- 技术岗-网上测评智力题
- springboot整合mybatis拦截器分页
- excel+if函数+android,Excel中if函数多重条件的使用
- 如何快速翻译医学类英文专业文献?
- 【Git命令】git commit --amend
- Marquee首尾相连不间断移动 开始完全显示
- astc贴图格式是什么意思_Unity 分离贴图 alpha 通道实践
- R语言输出时,中文变成 \u98ce\u901f \u592a\u9633\u8f90\u5c04