高斯-勒让德求积公式及Matlab实现

2023-10-27

初学Markdown编辑器,编排及内容错误请指正,谢谢。

1. 引言

       众所周知,微积分的两大部分是微分与积分。微分实际上是求一函数的导数,而积分是已知一函数的导数,求这一函数。所以,微分与积分互为逆运算。实际上,积分还可以分为两部分。第一种,是单纯的积分,也就是已知导数求原函数,称为不定积分。相对而言,另一种就是定积分了,之所以称其为定积分,是因为它积分后得出的值是确定的,是一个数,而不是一个函数。计算定积分的方法很多,而高斯—勒让德公式就是其中之一。
       高斯积分法是精度最高的插值型数值积分,具有 2n+1 2 n + 1 阶精度,并且高斯积分总是稳定。而高斯求积系数,可以由Lagrange多项式插值系数进行积分得到。
       高斯-勒让德求积公式是构造高精度差值积分的最好方法之一。他是通过让节点和积分系数待定让函数 f(x) f ( x ) 以此取 i=0,1,2....n i = 0 , 1 , 2.... n 次多项式使其尽可能多的能够精确成立来求出积分节点和积分系数。高斯积分的代数精度是 2n1 2 n − 1 ,而且是最高的。通常运用的是 (1,1) ( − 1 , 1 ) 的积分节点和积分系数,其他积分域是通过一定的变换变换到-1到1之间积分。

2. 高斯-勒让德求积公式

       在区间 [1,1] [ − 1 , 1 ] 上,高斯-勒让德求积公式为

11f(x)dxk=0xAkf(xk) ∫ − 1 1 f ( x ) d x ≈ ∑ k = 0 x A k f ( x k )
我们知道勒让德多项式 Pn+1(x) P n + 1 ( x ) 的零点就是求积公式的高斯点,形如上式的高斯公式特别的称为高斯-勒让德公式。
       若取 P1(x)=x P 1 ( x ) = x 的零点 x0=0 x 0 = 0 做节点构造求积公式
11f(x)dxA0f(0) ∫ − 1 1 f ( x ) d x ≈ A 0 f ( 0 )
令它对 f(x)=1 f ( x ) = 1 准确成立,即可定出 A0=2 A 0 = 2 。这样构造出的一点高斯-勒让德求积公式是中矩形公式,再取 P2(x)=12(3x21) P 2 ( x ) = 1 2 ( 3 x 2 − 1 ) 的两个零点 ±13 ± 1 3 构造求积公式
11f(x)dxA0f(13)+A1f(13) ∫ − 1 1 f ( x ) d x ≈ A 0 f ( − 1 3 ) + A 1 f ( 1 3 )
令它对 f(x)=1,x f ( x ) = 1 , x 都准确成立,有
A0+A1=2,A0(13)+A1(13)=0 { A 0 + A 1 = 2 , A 0 ( − 1 3 ) + A 1 ( 1 3 ) = 0

由此解出 A0=A1=1 A 0 = A 1 = 1 ,从而得到两点高斯-勒让德求积公式
11f(x)dxf(13)+f(13) ∫ − 1 1 f ( x ) d x ≈ f ( − 1 3 ) + f ( 1 3 )

三点高斯-勒让德公式的形式是
11f(x)dx59f(155)+89f(0)+59f(155) ∫ − 1 1 f ( x ) d x ≈ 5 9 f ( − 15 5 ) + 8 9 f ( 0 ) + 5 9 f ( 15 5 )
下表给出常用的高斯-勒让德求积公式的节点和系数

节点数 xk x k Ak A k
1 0.0000000 2.0000000
2 ± ± 0.5773503 1.0000000
3 ± ± 0.7745967 0.0000000 0.5555556 0.8888889
4 ± ± 0.8611363 ± ± 0.3399810 0.3478548 0.6521452

当积分区间不是 [1,1] [ − 1 , 1 ] ,而是一般的区间 [a,b] [ a , b ] ,只要做变换

x=ba2t+a+b2 x = b − a 2 t + a + b 2
可将 [a,b] [ a , b ] 化为 [1,1] [ − 1 , 1 ] ,这时
baf(x)dx=ba211f(ba2t+a+b2)dt ∫ a b f ( x ) d x = b − a 2 ∫ − 1 1 f ( b − a 2 t + a + b 2 ) d t

3. Matlab数值求解高斯-勒让德积分

例1:用两点高斯-勒让德积分公式求 10x3dx ∫ 0 1 x 3 d x
       我们可以很容易知道结果为 0.25 0.25 接下来用matlab数值求解:

GaussP=[-0.5773503 0.5773503];                              %高斯点
GaussA=[1 1];                                               %高斯系数
h = 0.1;                                                    %剖分步长
x = 0:h:1;                                                  %区间[0,1]
for i=1:length(x)-1
    points = h/2*GaussP + (x(i+1)+x(i))/2;                  %区间变换
    f(i) = 0;
    for k=1:2
        f(i) = f(i) + h/2*points(k)^2*GaussA(k);
    end
end
result = sum(f)

可以得到结果为:0.250000000133413。
例2:用三点高斯-勒让德积分公式求 10x2(1x)2dx ∫ 0 1 x 2 ( 1 − x ) 2 d x
       我们可以很容易知道结果为 1300.033333333333333 1 30 ≈ 0.033333333333333 接下来用matlab数值求解:

GaussP=[-0.7745967 0 0.7745967];                            %高斯点
GaussA=[0.5555556 0.8888889 0.5555556];                     %高斯系数
h = 0.1;                                                    %剖分步长
x = 0:h:1;                                                  %区间[0,1]
for i=1:length(x)-1
    points = h/2*GaussP + (x(i+1)+x(i))/2;                  %区间变换
    f(i) = 0;
    for k=1:3
        f(i) = f(i) + h/2*(points(k)^2*(1-points(k))^2)*GaussA(k);
    end
end
result = sum(f)

结果为:0.033333334999780

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高斯-勒让德求积公式及Matlab实现 的相关文章

  • 多元函数的泰勒展开公式

    泰勒定理 泰勒展开是一个很有趣的方法 应该大部分人都看过下面这么一条定理 泰勒定理 若函数f x 在闭区间 a b 上存在直至n阶的连续导函数 在开区间 a b 内存在 n 1 阶导函数 则对任意给定的 x x0 a b x x 0 a
  • AI笔记: 数学基础之正交矩阵与矩阵的QR分解

    正交矩阵 若n阶方阵A满足 A T A E A TA E ATA E 则称A为正交矩阵 简称正交阵 复数域上称为酉矩
  • 【数学】3、动态规划

    文章目录 一 原理 1 1 如何想到dp 二 案例 2 1 编辑距离 2 1 1 状态转移 2 1 2 状态转移方程和编程实现 2 2 钱币组合 一 原理 接着文本搜索的话题 来聊聊查询推荐 Query Suggestion 的实现过程 以
  • 排列组合相关公式讲解(Anm,Cnm等)

    两个性质 1 C n m C n n m 2 C n m C n 1 m C n 1 m 1 编程时可用此递推
  • 离散数学——成真赋值与成假赋值

    今天复习离散数学的时候饱受一个问题的困扰 为什么主析取范式和主合取范式的小项和大项采用不一样的赋值方式 查阅一些资料后得出答案 在这里分享给大家 首先给大家明确一下赋值 成真赋值 成假赋值的概念 对于一个命题公式P中的所有命题变项指定一组真
  • 基础算法题——炎炎消防队(取巧、三分)

    炎炎夏日 题目描述 夏天的重庆格外地炎热 很容易起火 消防士们都全副武装 一旦发生险情就立马赶往救火 森罗是消防队中的一员 他在灭火的过程中突发奇想 如果能用退火的原理求解函数求最小值 那不就可以很容易计算了吗 翌日 森罗来到即将高考的弟弟
  • 关于suitesparse在windows平台下速度极慢以及奇奇怪怪的问题解决

    前言 好像suitesparse原本没有windows版本 然后国外一个大佬写了cmake搞出来的 所以可能存在一些奇奇怪怪的问题吧 主要是一下两点 1 windows相比linux环境速度奇慢 2 新手编译这个库经常会下载suitespa
  • 为什么样本方差里面要除以(n-1)而不是n?

    前段日子重新整理了一下这个问题的解答 跟大家分享一下 如果有什么错误的话希望大家能够提出来 我会及时改正的 话不多说进入正题 首先 我们来看一下样本方差的计算公式 刚开始接触这个公式的话可能会有一个疑问就是 为什么样本方差要除以 n 1 而
  • 介值定理究竟在讲什么?

    介值定理 书本上的定义 翻译成人话就是 函数最原始的定义 我们初中就知道 一个函数最根本的性质就是 函数值 自变量值 一一对应 所以介值定理就是在反复说一件事 一个数如果属于值域 在定义域内 一定能够找到一个 自变量 与其对应 当然这个结论
  • 2020年高教社建模国赛真题A题--炉温曲线

    2020年高教社杯全国大学生数学建模竞赛题目 请先阅读 全国大学生数学建模竞赛论文格式规范 A题 炉温曲线 在集成电路板等电子产品生产中 需要将安装有各种电子元件的印刷电路板放置在回焊炉中 通过加热 将电子元件自动焊接到电路板上 在这个生产
  • 最小二乘法–高斯牛顿迭代法

    最小二乘法 高斯牛顿迭代法 本文将详解最小二乘法的非线性拟合 高斯牛顿迭代法 1 原理 高斯 牛顿迭代法的基本思想是使用泰勒级数展开式去近似地代替非线性回归模型 然后通过多次迭代 多次修正回归系数 使回归系数不断逼近非线性回归模型的最佳回归
  • 论文纠错(一)

    说说最近读的几篇论文的问题 果然有的论文还是不能细细地去读 一读就发现有问题 第一个是MSPCA里面的公式 7 到公式 8 那个Sr前面的2是不应该有的 也就是推导的时候出错了 第二个是GPUTENSOR里面的Gpu product的算法
  • 矩阵求导常用公式

    矩阵求导常用公式 1 引言 2 向量的导数 2 1 向量对标量求导 Vector by scalar 2 2 标量对向量求导 Scalar by vector 2 3 向量对向量求导 Vector by vector 3 矩阵的导数 3 1
  • Phase Sensitive Filter

    复数转换 如下图复数 由于 所以 这个就是复数的三角形式 这里 是模 是辅角 在讨论音频频域 即stft变换后的复数时 分别称为幅值和相位 根据欧拉公式 其中i是虚数符号 可得 这个公式可以方便地把幅值和相位还原回复数 进而做istft 将
  • Matrix calculus(矩阵微积分)(前四节)

    原文地址 https en wikipedia org wiki Matrix calculus 注 不要把它和几何运算或者是向量运算混淆 前言 在数学中 矩阵微积分是进行多变量微积分的一种特殊符号 特别是在矩阵的空间上 它将关于许多变量的
  • 完美数

    按照毕达哥拉斯的说法 数的完满取决于它的真因数 即除了自身以外的约数 例如 12的因数是 1 2 3 4 和 6 当一个数的各因数之和大于该数本身时 该数称为 盈 数 于是 12 是一个盈数 因为它的因数加起来等于 16 另一方面 当一个数
  • 我的百度经验目录

    百度经验目录 进一步了解基于Mathematica的图像特征检测方法 http jingyan baidu com article a501d80c44a372ec630f5eb4 html 怎么把python代码打包成exe文件 http
  • Gauss_Seidel method with python

    Gauss Seidel method with python from wikipedia https en wikipedia org wiki Gauss E2 80 93Seidel method import numpy as n
  • 高中数学:因式分解(初接高)

    一 乘法公式 二 十字相乘法 例题 三 增添项法 主要解决整式中含高次项的因式分解题 补充 由于数学笔记 用键盘敲实在是麻烦 这里就把我的笔记截图上来了 大家将就看 有看不清楚的地方 可评论 定回复
  • 高中数学:不等式(初接高)

    1 二次不等式 2 分式不等式 最后的例题 是为了说明第三种情况 就是 不等号右边不为0时 要先进行移项操作 将右边化为0 这样 就转化成1 2两种情况了 3 其它复杂不等式 3 1 高次不等式 3 2 绝对值不等式 3 3 根式不等式 补

随机推荐