matlab用辛普森公式求积分_数值积分常用方法

matlab用辛普森公式求积分_数值积分常用方法数值积分的基本思想由积分中值定理可知 在积分区间内存在一点 成立式的几何意义即为 底为而高为的矩形的面积恰等于所求曲边梯形的面积 因此 要想求出式左端积分 我们只需要知道三个值 即可 这里是显然的 问题在于的具体位置一般是不清楚的 从而未知 我们暂且将称为区间上的平均高度 我们的目标就是寻求一种求出平均高度的算法 这样我们的问题也就解决了

2f0ca1960975d55e47b79965e0312674.png

数值积分的基本思想

由积分中值定理可知,在积分区间

matlab用辛普森公式求积分_数值积分常用方法 内存在一点
matlab用辛普森公式求积分_数值积分常用方法 ,成立

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

matlab用辛普森公式求积分_数值积分常用方法 式的几何意义即为:底为
matlab用辛普森公式求积分_数值积分常用方法 而高为
matlab用辛普森公式求积分_数值积分常用方法 的矩形的面积恰等于所求曲边梯形的面积
matlab用辛普森公式求积分_数值积分常用方法 。因此,要想求出
matlab用辛普森公式求积分_数值积分常用方法 式左端积分,我们只需要知道三个值:
matlab用辛普森公式求积分_数值积分常用方法 即可,这里
matlab用辛普森公式求积分_数值积分常用方法 是显然的,问题在于
matlab用辛普森公式求积分_数值积分常用方法 的具体位置一般是不清楚的,从而
matlab用辛普森公式求积分_数值积分常用方法 未知。我们暂且将
matlab用辛普森公式求积分_数值积分常用方法 称为区间
matlab用辛普森公式求积分_数值积分常用方法 上的平均高度,我们的目标就是寻求一种求出平均高度
matlab用辛普森公式求积分_数值积分常用方法 的算法,这样我们的问题也就解决了。

首先我们想到的是用区间两端点的“高度”

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法 的算术平均值作为平均高度
matlab用辛普森公式求积分_数值积分常用方法 的近似值,从而导出下述求积公式

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

matlab用辛普森公式求积分_数值积分常用方法 式即为我们我们熟知的

梯形公式。写出MATLAB函数为

function

而若用区间中点

matlab用辛普森公式求积分_数值积分常用方法 的“高度”
matlab用辛普森公式求积分_数值积分常用方法 近似取代平均高度
matlab用辛普森公式求积分_数值积分常用方法 ,则可导出

中矩形公式(简称
矩形公式

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

其MATLAB函数为

function

总结:更一般地,我们可以在区间

matlab用辛普森公式求积分_数值积分常用方法 上适当选取某些节点
matlab用辛普森公式求积分_数值积分常用方法 ,然后用
matlab用辛普森公式求积分_数值积分常用方法 的加权平均得到平均高度
matlab用辛普森公式求积分_数值积分常用方法 的近似值,这样构造出来的求积公式具有下列通式

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

其中

matlab用辛普森公式求积分_数值积分常用方法 称为

求积节点

matlab用辛普森公式求积分_数值积分常用方法 称为

求积系数,也称作伴随节点

matlab用辛普森公式求积分_数值积分常用方法

这种数值积分方法通常称为机械求积,其优势在于将积分求值问题归结为被积函数值的计算,很适合在计算机上使用。

代数精度

由于数值积分方法是近似方法,为保证精度,自然希望我们的求积公式能够对“尽可能多”的函数准确成立,这便提出了代数精度的概念。

如果某个求积公式对于次数不超过

matlab用辛普森公式求积分_数值积分常用方法 的多项式均能够准确成立,但对于
matlab用辛普森公式求积分_数值积分常用方法 次多项式就不准确成立,则称该求积公式具有

matlab用辛普森公式求积分_数值积分常用方法 次代数精度

(或
代数精确度)。

前面提到的梯形公式

matlab用辛普森公式求积分_数值积分常用方法 和矩形公式
matlab用辛普森公式求积分_数值积分常用方法 均具有一次代数精度。

求积公式的收敛性与稳定性

在求积公式

matlab用辛普森公式求积分_数值积分常用方法 中,若
matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法 其中
matlab用辛普森公式求积分_数值积分常用方法 ,则称求积公式
matlab用辛普森公式求积分_数值积分常用方法

收敛的。

对任给

matlab用辛普森公式求积分_数值积分常用方法 ,若
matlab用辛普森公式求积分_数值积分常用方法 ,只要
matlab用辛普森公式求积分_数值积分常用方法 就有
matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法 成立,其中
matlab用辛普森公式求积分_数值积分常用方法 为计算
matlab用辛普森公式求积分_数值积分常用方法 时产生误差
matlab用辛普森公式求积分_数值积分常用方法 后实际得到的值,即
matlab用辛普森公式求积分_数值积分常用方法 ,则称求积公式
matlab用辛普森公式求积分_数值积分常用方法

稳定的。

定理

matlab用辛普森公式求积分_数值积分常用方法

若求积公式

matlab用辛普森公式求积分_数值积分常用方法

中系数

matlab用辛普森公式求积分_数值积分常用方法

,则此求积公式是稳定的。

牛顿-柯特斯(Newton-Cotes)公式

将积分区间

matlab用辛普森公式求积分_数值积分常用方法 划分为
matlab用辛普森公式求积分_数值积分常用方法 等份,此时步长为
matlab用辛普森公式求积分_数值积分常用方法 ,选取等距节点
matlab用辛普森公式求积分_数值积分常用方法 构造出的插值型求积公式

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

称为牛顿-柯特斯(Newton-Cotes)公式,其中

matlab用辛普森公式求积分_数值积分常用方法 称为

柯特斯系数。可以通过下式确定

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法
  • matlab用辛普森公式求积分_数值积分常用方法 时,
    matlab用辛普森公式求积分_数值积分常用方法 这时的求积公式便是之前的梯形公式
    matlab用辛普森公式求积分_数值积分常用方法
  • matlab用辛普森公式求积分_数值积分常用方法 时,
    matlab用辛普森公式求积分_数值积分常用方法
    matlab用辛普森公式求积分_数值积分常用方法 此时对应的求积公式便是

    辛普森(Simpson)公式:

    matlab用辛普森公式求积分_数值积分常用方法
    matlab用辛普森公式求积分_数值积分常用方法 写成MATLAB函数为
function

  • matlab用辛普森公式求积分_数值积分常用方法 时的牛顿-柯特斯公式则特别称为

    柯特斯公式,其形式为

    matlab用辛普森公式求积分_数值积分常用方法
    matlab用辛普森公式求积分_数值积分常用方法 这里
    matlab用辛普森公式求积分_数值积分常用方法

其MATLAB代码为

function

复合求积公式

由于牛顿-柯特斯公式在

matlab用辛普森公式求积分_数值积分常用方法 时不具有稳定性,故不可能再通过提高阶的方法来提高求积精度。

复合求积法便是通过把积分区间分成若干个子区间(通常是等分),再在每个子区间上使用低阶求积公式的方法来提高精度的。

其实细心的同学可以发现,前面我所展示的MATLAB代码使用的便是对每个求积公式使用复合法完成的。常用的有复合梯形公式复合辛普森公式

龙贝格(Romberg)求积公式

前面介绍的复合求积方法可提高求积精度,如若精度仍不够,则可通过将步长逐次减半的方式来提高精度。如对复合梯形公式可导出其递推公式

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

其中

matlab用辛普森公式求积分_数值积分常用方法 表示在
matlab用辛普森公式求积分_数值积分常用方法 基础上步长
matlab用辛普森公式求积分_数值积分常用方法 减半后的积分值。

定理

matlab用辛普森公式求积分_数值积分常用方法

matlab用辛普森公式求积分_数值积分常用方法 ,则有

matlab用辛普森公式求积分_数值积分常用方法

matlab用辛普森公式求积分_数值积分常用方法 其中

matlab用辛普森公式求积分_数值积分常用方法

系数

matlab用辛普森公式求积分_数值积分常用方法

matlab用辛普森公式求积分_数值积分常用方法 无关。

matlab用辛普森公式求积分_数值积分常用方法 式可以看出,
matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法 阶,若用
matlab用辛普森公式求积分_数值积分常用方法 代替
matlab用辛普森公式求积分_数值积分常用方法 ,有
matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

再用

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法 式再减去
matlab用辛普森公式求积分_数值积分常用方法 式后再除以
matlab用辛普森公式求积分_数值积分常用方法

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

这里

matlab用辛普森公式求积分_数值积分常用方法 是与
matlab用辛普森公式求积分_数值积分常用方法 无关的系数。

matlab用辛普森公式求积分_数值积分常用方法 式可看出,用近似积分值
matlab用辛普森公式求积分_数值积分常用方法 ,其误差阶为
matlab用辛普森公式求积分_数值积分常用方法 ,显然误差阶是提高了。类似这种将计算
matlab用辛普森公式求积分_数值积分常用方法 的近似值的误差阶由
matlab用辛普森公式求积分_数值积分常用方法 提高到
matlab用辛普森公式求积分_数值积分常用方法 的方法称为

外推算法,也称为
理查德森(Richardson)外推算法

这是“数值分析”中一个重要的技巧,只要真值与近似值的误差能够表示成

matlab用辛普森公式求积分_数值积分常用方法 的幂级数,如
matlab用辛普森公式求积分_数值积分常用方法 式所示,都可以使用外推算法,提高精度。

龙贝格(Romberg)算法

matlab用辛普森公式求积分_数值积分常用方法 次外推加速为

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

余项为

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

此方法常称为理查德森外推加速方法

设用

matlab用辛普森公式求积分_数值积分常用方法 表示二分
matlab用辛普森公式求积分_数值积分常用方法 次后求得的梯形值,且以
matlab用辛普森公式求积分_数值积分常用方法 表示序列
matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法 次加速值,则由递推公式
matlab用辛普森公式求积分_数值积分常用方法 可得

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

上次则称为龙贝格求积算法,计算过程如下:

  1. matlab用辛普森公式求积分_数值积分常用方法 ,求
    matlab用辛普森公式求积分_数值积分常用方法 。令
    matlab用辛普森公式求积分_数值积分常用方法 (
    matlab用辛普森公式求积分_数值积分常用方法 记区间
    matlab用辛普森公式求积分_数值积分常用方法 的二分次数)。
  2. 求梯形值
    matlab用辛普森公式求积分_数值积分常用方法 ,即按递推公式
    matlab用辛普森公式求积分_数值积分常用方法 计算
    matlab用辛普森公式求积分_数值积分常用方法
  3. 求加速值。
  4. matlab用辛普森公式求积分_数值积分常用方法 (预先给定的精度),则终止计算,并且
    matlab用辛普森公式求积分_数值积分常用方法 ;否则令
    matlab用辛普森公式求积分_数值积分常用方法
    matlab用辛普森公式求积分_数值积分常用方法 继续计算。

MATLAB代码为

function

自适应积分方法

复合求积方法通常适用于被积函数变化不太大的积分,如果在求积区间中被积函数变化很大,有的部分函数值变化剧烈,另一部分却变化平缓。这时如果统一将区间等分再用复合求积公式计算积分将会导致计算量很大,我们想实现的是在满足误差要求的前提下,对变化剧烈部分将区间细分,而平缓部分则可使用大步长,也即针对被积函数在区间上不同情形采用不同的步长,使得再满足精度前提下积分计算工作量尽可能小。其算法技巧是在不同区间上预测被积函数变化的剧烈程度确定相应步长。这就是自适应积分方法的基本思想。

下面是一个基于复合辛普森法的自适应积分算法的MATLAB代码:

function

下面我们计算积分

matlab用辛普森公式求积分_数值积分常用方法 ,可输入下列语句调用上述MATLAB函数进行计算
clear 

结果为

I 

高斯求积公式

下面研究带权积分

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法 为权函数)的求积公式

matlab用辛普森公式求积分_数值积分常用方法
matlab用辛普森公式求积分_数值积分常用方法

下面看定义

如果求积公式

matlab用辛普森公式求积分_数值积分常用方法 具有
matlab用辛普森公式求积分_数值积分常用方法 次代数精度,则称其节点
matlab用辛普森公式求积分_数值积分常用方法

高斯点,相应公式

matlab用辛普森公式求积分_数值积分常用方法 称为

高斯型求积公式。

这里主要包括四种高斯型求积公式,即

  • 高斯-勒让德求积公式
  • 高斯-切比雪夫求积公式
  • 高斯-拉盖尔求积公式
  • 高斯-埃尔米特求积公式

多重积分

这里主要说一下多重积分计算的思路,归结为一句话,就是:多重积分化累次积分,再由里到外使用数值积分公式进行求积计算。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230543.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月16日 下午7:01
下一篇 2026年2月16日 下午7:22


相关推荐

  • QT实现简单的上位机软件

    QT实现简单的上位机软件QT实现简单的上位机软件

    2022年5月10日
    109
  • java 中几种常用数据结构「建议收藏」

    java 中几种常用数据结构「建议收藏」Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类。一、几个常用类的区别 1.ArrayList:元素单个,效率高,多用于查询 2.Vector:元素单个,线程安全,多用于查询 3.LinkedList:元素单个,多用于插入和删除 4.H

    2022年7月8日
    23
  • AlphaBlend 详解

    AlphaBlend 详解AlphaBlend nbsp nbsp 该函数显示拥有透明或半透明像素的位图 nbsp SyntaxBOOL nbsp AlphaBlend nbsp nbsp nbsp HDC nbsp nbsp hdcDest nbsp nbsp nbsp nbsp int nbsp nbsp nbsp nbsp nXOriginDest nbsp int nbsp nbsp nbsp nYOriginDest nbsp int nbsp nbsp nbsp nWidthDest nbsp int nbsp nbsp nbsp nHeightDest nbsp nbsp nbsp nbsp HDC nbsp nbsp nbsp hdcSrc nbsp nbsp nbsp

    2026年3月20日
    2
  • ser-u服务器安装和使用(创建ftp服务器)

    ser-u服务器安装和使用(创建ftp服务器)

    2021年9月23日
    71
  • 进销存软件开源java_JSH_ERP 开源版J2EE进销存系统代码源码 v1.0.2「建议收藏」

    进销存软件开源java_JSH_ERP 开源版J2EE进销存系统代码源码 v1.0.2「建议收藏」JSH_ERP是一个完整开源版的J2EE进销存系统代码。很多人说JSH_ERP是目前唯一完整开源的进销存系统虽然目前只有进销存+财务的功能,但后面将会推出ERP的全部功能,大家一起努力吧JSH_ERP立志为中小企业提供免费好用的ERP软件,降低企业的信息化成本个人开发者也可以使用JSH_EPP进行二次开发,承接外包ERP项目初学JAVA的小伙伴可以下载源代码来进行学习交流系统部署初始账号:jsh,…

    2022年5月6日
    61
  • vim 操作

    vim 操作

    2021年9月11日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号