matlab用辛普森公式求积分_数值积分常用方法
数值积分的基本思想
由积分中值定理可知,在积分区间
首先我们想到的是用区间两端点的“高度”
梯形公式。写出MATLAB函数为
function
而若用区间中点
中矩形公式(简称矩形公式)
其MATLAB函数为
function
总结:更一般地,我们可以在区间
其中
求积节点,
求积系数,也称作伴随节点
权。
这种数值积分方法通常称为机械求积,其优势在于将积分求值问题归结为被积函数值的计算,很适合在计算机上使用。
代数精度
由于数值积分方法是近似方法,为保证精度,自然希望我们的求积公式能够对“尽可能多”的函数准确成立,这便提出了代数精度的概念。
如果某个求积公式对于次数不超过
的多项式均能够准确成立,但对于次多项式就不准确成立,则称该求积公式具有次代数精度(或代数精确度)。
前面提到的梯形公式
求积公式的收敛性与稳定性
在求积公式
中,若其中,则称求积公式是收敛的。
对任给,若,只要就有成立,其中为计算时产生误差后实际得到的值,即,则称求积公式是稳定的。
定理
若求积公式
中系数
,则此求积公式是稳定的。
牛顿-柯特斯(Newton-Cotes)公式
将积分区间
称为牛顿-柯特斯(Newton-Cotes)公式,其中
柯特斯系数。可以通过下式确定
- 当
时,这时的求积公式便是之前的梯形公式。
- 当
时,此时对应的求积公式便是
辛普森(Simpson)公式:
写成MATLAB函数为
function
- 当
时的牛顿-柯特斯公式则特别称为
柯特斯公式,其形式为
这里。
其MATLAB代码为
function
复合求积公式
由于牛顿-柯特斯公式在
复合求积法便是通过把积分区间分成若干个子区间(通常是等分),再在每个子区间上使用低阶求积公式的方法来提高精度的。
其实细心的同学可以发现,前面我所展示的MATLAB代码使用的便是对每个求积公式使用复合法完成的。常用的有复合梯形公式和复合辛普森公式。
龙贝格(Romberg)求积公式
前面介绍的复合求积方法可提高求积精度,如若精度仍不够,则可通过将步长逐次减半的方式来提高精度。如对复合梯形公式可导出其递推公式
其中
定理
设
系数
从
再用
这里
从
外推算法,也称为理查德森(Richardson)外推算法。
这是“数值分析”中一个重要的技巧,只要真值与近似值的误差能够表示成
的幂级数,如式所示,都可以使用外推算法,提高精度。
龙贝格(Romberg)算法
余项为
此方法常称为理查德森外推加速方法。
设用
上次则称为龙贝格求积算法,计算过程如下:
- 取
,求。令(记区间的二分次数)。
- 求梯形值
,即按递推公式计算。
- 求加速值。
- 若
(预先给定的精度),则终止计算,并且;否则令转继续计算。
MATLAB代码为
function
自适应积分方法
复合求积方法通常适用于被积函数变化不太大的积分,如果在求积区间中被积函数变化很大,有的部分函数值变化剧烈,另一部分却变化平缓。这时如果统一将区间等分再用复合求积公式计算积分将会导致计算量很大,我们想实现的是在满足误差要求的前提下,对变化剧烈部分将区间细分,而平缓部分则可使用大步长,也即针对被积函数在区间上不同情形采用不同的步长,使得再满足精度前提下积分计算工作量尽可能小。其算法技巧是在不同区间上预测被积函数变化的剧烈程度确定相应步长。这就是自适应积分方法的基本思想。
下面是一个基于复合辛普森法的自适应积分算法的MATLAB代码:
function
下面我们计算积分
clear
结果为
I
高斯求积公式
下面研究带权积分
下面看定义
如果求积公式
具有次代数精度,则称其节点为高斯点,相应公式
称为高斯型求积公式。
这里主要包括四种高斯型求积公式,即
- 高斯-勒让德求积公式
- 高斯-切比雪夫求积公式
- 高斯-拉盖尔求积公式
- 高斯-埃尔米特求积公式
多重积分
这里主要说一下多重积分计算的思路,归结为一句话,就是:多重积分化累次积分,再由里到外使用数值积分公式进行求积计算。
matlab用辛普森公式求积分_数值积分常用方法相关推荐
- matlab用辛普森公式求积分_数值计算实验9 数值积分实验
实验9 数值积分实验 成绩 实验类型:●验证性实验 ○综合性实验 ○设计性实验 实验目的:进一步熟练掌握变步长数值积分算法,提高编程能力和解决定积分问题的实践技能. 实验内容:用龙贝格积分算法计算 ...
- matlab用辛普森公式求积分_标准正态分布概率密度函数的定积分计算方法及Python实现代码...
最近利用碎片时间在读Allen B.Downey的<贝叶斯思维:统计建模的Python学习法>,顺便用手机上的Pythonista写实例.因为Pythonista没有scipy科学计算包, ...
- matlab用辛普森公式求积分_积分近似计算之辛普森公式
对于积分区间[a, b],若 则成立 辛普森公式 辛普森公式可看作是改良的梯形公式.梯形公式是以直线逼近实际曲线,而辛普森公式则以二次曲线(即抛物线)逼近. 以二次曲线逼近实际曲线 根据辛普森公式可得 ...
- matlab用辛普森公式求积分_如何用Excel公式求最大值对应的行列序号
微信公众号: Excel and Python 微信名搜索: 实用办公编程技能 如何用Excel公式求最大值对应的行列序号呢? 下面,我们来看看来自问题互动栏目的一个具体问题. 具体问题:求出哪一天哪 ...
- matlab用辛普森公式求积分_变限积分函数求导以及高阶导数求法的一些总结
感谢 @聚创考研 的张帆老师,给我上了一堂生动的课.特此总结一下课上求导数的方法(怕自己忘了). 1.变限积分函数求导 变限积分函数求导简单的分为三类: 第一类(或者形如 这种)可以直接得到 ,第二. ...
- 2017杭电ACM集训队单人排位赛 - 2 -1002 地狱飞龙 (辛普森公式求积分)(模板)
题干: 最近clover迷上了皇室战争,他抽到了一种地狱飞龙,很开心.假设地域飞龙会对距离为d的敌人每秒造成k/d2k/d^2伤害.假设地域飞龙位于坐标轴原点,以每秒v1的速度向y轴正方向移动,敌人在 ...
- C++实现复化辛普森公式求积分算法
1. 算法原理简介 步1 将积分区间 [a,b] 分成 n 等分,分点为 xk=a+kh(k=0,1,⋯,n),其中 h=(b-a)/n. 步2 记区间 [xk,x(k+1)] 的中点为 x(k+1/ ...
- 自适应复化辛普森公式求积算法(C语言实现)
自适应复化辛普森公式求积算法(C语言实现) 利用复化辛普森公式求积分自适应步骤 基于C语言实现的代码 利用复化辛普森公式求积分自适应步骤 h为步长,a为积分下限,b为积分上限,f为积分函数,n为划分的 ...
- matlab中几种求积分的方法
matlab中几种求积分的方法 举例图形 Midpoint Rule Trapezoid Rule 13 Simpsons 利用integral 结果显示 matlab中几种求积分的方法 最近看了几天 ...
最新文章
- IP数据报-格式-分片
- 排序算法——基数排序
- 2-1 gradle安装
- LeetCode 1444. 切披萨的方案数(DP)
- 寂寞了就去搞钱?俞敏洪举报“俞敏洪”:“搞钱论”没一句话是我说的
- 2009年IT行业最重要的十大认证
- 集美大学计算机工程学院 曾勇进,电子政务评估方法AHP 的研究及实现.pdf
- EPSON/爱普生打印机Linux打印服务器基于ARM驱动安装踩坑CUPS实现支持远程打印AirPrint
- 楪祈机器人_饥荒 Inori楪祈人物MOD
- 领导力教练:世界著名企业教练们的实践心得(原书第3版)
- JetPack之DataStore源码笔记
- 什么是IaaS PaaS SaaS,看这一篇就够了
- BUUCTF 每日打卡 2021-8-18
- 2019年6月20日工作总结---CSS篇
- gensim Dictionary 去除某个词 gensim.corpora.dictionary.Dictionary
- 微软求职攻略之笔试答疑
- .io域名在申请SSL证书时被坑
- 百度是如何计算出关键词指数呢?
- PalmOS开发教程-1
- VirtuaNES.v0.97源码探究6 内存相关
热门文章
- Android RGB颜色值对照表
- 面试官问我like如何优化
- Leetcode 求众数
- 一个平凡但不平庸的程序猿2018个人总结 | 掘金年度征文
- 一些基础的图像颜色特征
- 提示错误“expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘’ token“
- 多线程爬虫(1)-简单线程和面向对象线程
- 树结构的基本概念和理解
- 2023年全国最新食品安全管理员精选真题及答案25
- Python在指定环境下安装第三方库的报错解决办法