数值分析之数值积分 4.X
求积公式
\[\int_{a}^{b} f(x) \mathrm{d} x \approx \sum_{k=0}^{n} A_{k} f\left(x_{k}\right)
\]
\(A_k\) 为求积系数, \(x_k\) 为求积节点
代数精度
定义
如果某个求积公式对于次数不超过 \(m\) 的多项式均能准确地成立, 但对于\(m+1\) 次多项式不准确成立, 则称该求积公式具有 \(m\) 次代数精度
性质
\(n+1\) 个互异节点可唯一确定至少具有 \(n\) 次代数精度的求积公式
插值型求积公式
\[\begin{array}{l}
\int_{a}^{b} \rho(x) f(x) d x \approx \int_{a}^{b} \rho(x) L_{n}(x) d x \\
=\sum_{i=0}^{n}\left(\int_{a}^{b} \rho(x) l_{i}(x) d x\right) f\left(x_{i}\right)=\sum_{i=0}^{n} A_{i} f\left(x_{i}\right) \\
\text { 其中 } A_{i}=\int_{a}^{b} \rho(x) l_{i}(x) d x(i=0,1, \ldots, n)
\end{array}\]
\(l_{i}(x)\) 为第 \(i\) 个节点的拉格朗日插值基函数
此 (\(n+1\) 个节点的) 求积公式至少有 \(n\) 次代数精度的充要条件时, 它是插值型的
求积公式收敛性与稳定性
收敛性
在求积公式中, 若
\[\lim _{\substack{n \rightarrow \infty \\ h \rightarrow 0}} \sum_{k=0}^{n} A_{k} f\left(x_{k}\right)=\int_{a}^{b} f(x) \mathrm{d} x
\]其中
\[h=\max _{1 \leqslant i \leqslant n}\left\{x_{i}-x_{i-1}\right\}
\]则称求积公式是收敛的.
稳定性
稳定性条件: 若求积公式中系数 \(A_k>0\), 则此求积公式是稳定的
牛顿-柯特斯公式 (也为插值型求积公式)
\(\boldsymbol{n}\) 阶 Newton-Cotes公式
\[\int_{a}^{b} f(x) d x \approx(b-a) \sum_{i=0}^{n} C_{i}^{(n)} f\left(x_{i}\right)
\]
令
\[ C_{i}^{(n)}=\frac{A_{i}}{b-a}=\frac{(-1)^{n-i}}{i !(n-i) ! n} \int_{0}^{n} \prod_{\substack{j=0 \\
j \neq i}}^{n}(t-j) d t \quad \text { 称为Cotes系数. }
\]
\[A_{i}=\frac{(-1)^{n-i} h}{i !(n-i) !} \int_{0}^{n} \prod_{\substack{j=0 \\
j \neq i}}^{n}(t-j) d t \quad(i=0: n)\]
\[A_{i}=\int_{a}^{b} l_{i}(x) d x=\frac{(-1)^{n-i} h}{i !(n-i) !} \int_{0}^{n} \prod_{\substack{j=0 \\ j \neq i}}^{n}(t-j) \mathrm{d} t(i=0: n)
\]
将区间 \([\mathbf{a}, \mathrm{b}]\) \(n\) 等分, 取步长 \(h=\frac{b-a}{n}\) , 等距节点 \(x_{i}=a+i h(i=0: n)\) , 权函数 \(\rho(\boldsymbol{x}) \equiv 1\) . 令 \(\boldsymbol{x}=\boldsymbol{a}+\boldsymbol{t h}\) , 则 Lagrange揷值基函数为
\[l_{i}(x)=\prod_{\substack{j=0 \\ j \neq i}}^{n} \frac{x-x_{j}}{x_{i}-x_{j}}=\prod_{\substack{j=0 \\ j \neq i}}^{n} \frac{t-j}{i-j} \quad(i=0: n)
\]
梯形公式 (1次代数精度)
当 \(n=1\) , \(C_{0}^{(1)}=C_{1}^{(1)}=\frac{1}{2}\)
辛普森公式 (3次代数精度)
当 \(n=2\), \(C_{0}^{(2)}=\frac{1}{6}, C_{1}^{(2)}=\frac{4}{6}, \quad C_{2}^{(2)}=\frac{1}{6}\)
\(S=\frac{b-a}{6}\left[f(a)+4 f\left(\frac{a+b}{2}\right)+f(b)\right] .\)
柯特斯公式 (5次代数精度)
当 \(n=4\),Cotes 系数为 \(C_{0}^{(4)}=\frac{7}{90}, C_{1}^{(4)}=\frac{32}{90}, C_{2}^{(4)}=\frac{12}{90}, C_{3}^{(4)}=\frac{32}{90}, C_{4}^{(4)}=\frac{7}{90}\) 故求积公式为
\[\int_{a}^{b} f(x) d x \approx \frac{b-a}{90}\left[7 f(a)+32 f\left(x_{1}\right)+12 f\left(x_{2}\right)+32 f\left(x_{3}\right)+7 f(b)\right]
\]称为Cotes公式。
代数精度
当 \(n\) 为奇数, \(I_n(f)\) 有 \(n\) 次代数精度
当 \(n\) 为偶数, \(I_n(f)\) 至少有 \(n+1\) 次代数精度 (常用) \(n\) 为偶数的N-C公式
复合求积公式
起源:
- N-C公式当 \(n\) 太大时不稳定
- N-C公式当 \(n\) 太小时误差大
复合梯形公式
将区间 \([a, b]\) 划分为 \(n\) 等份, 分点 \(x_{k}=a+k h, h=\frac{b-a}{n}, k=0,1, \cdots, n\) , 在每个子区间 \(\left[x_{k}, x_{k+1}\right](k=0,1, \cdots, n-1)\)
\[T_{n}=\frac{h}{2} \sum_{k=0}^{n-1}\left[f\left(x_{k}\right)+f\left(x_{k+1}\right)\right]=\frac{h}{2}\left[f(a)+2 \sum_{k=1}^{n-1} f\left(x_{k}\right)+f(b)\right]
\]
复合梯形公式是 稳定的
复合辛普森求积公式
将区间 \([a, b]\) 分为 \(n\) 等份, 在每个子区间 \(\left[x_{k}, x_{k+1}\right]\) 上采用辛普森公式, 记 \(x_{k+1 / 2}=x_{k}+\frac{1}{2} h\)
\[\begin{aligned}
S_{n} &=\frac{h}{6} \sum_{k=0}^{n-1}\left[f\left(x_{k}\right)+4 f\left(x_{k+1 / 2}\right)+f\left(x_{k+1}\right)\right] \\
&=\frac{h}{6}\left[f(a)+4 \sum_{k=0}^{n-1} f\left(x_{k+1 / 2}\right)+2 \sum_{k=1}^{n-1} f\left(x_{k}\right)+f(b)\right],
\end{aligned}\]
复合辛普森求积公式是 稳定的
数值分析之数值积分 4.X的更多相关文章
- 开源Math.NET基础数学类库使用(06)数值分析之线性方程组直接求解
原文:[原创]开源Math.NET基础数学类库使用(06)数值分析之线性方程组直接求解 开源Math.NET基础数学类库使用系列文章总目录: 1.开源.NET基础数学计算组件Math.NET(一) ...
- QuantLib 金融计算——数学工具之数值积分
目录 QuantLib 金融计算--数学工具之数值积分 概述 常见积分方法 高斯积分 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--数学工具之数值积分 载入模 ...
- 【原创】开源Math.NET基础数学类库使用(08)C#进行数值积分
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...
- 数值分析之奇异值分解(SVD)篇
在很多线性代数问题中,如果我们首先思考若做SVD,情况将会怎样,那么问题可能会得到更好的理解[1]. --Lloyd N. ...
- Unity 由Verlet数值积分产生的头发运动
先发下效果图. 参考项目unitychan-crs-master与miloyip大神的博客 爱丽丝的发丝,使用Verlet数值积分,根据旧的现在位置与上一桢位置来计算现在的位置,得到新的方向,上面的运 ...
- MATLAB学习笔记(八)——MATLAB数值积分与微分
(一)数值积分 一.数值积分的MATLAB实现方法: 1.变步长辛普生法(quad)法: (1)调用格式: [I,n]=quad('fname',a,b,tol,trace); fname是被积函数: ...
- HDU1724 Ellipse(数值积分)
补一下一些小盲区,譬如simpson这种数值积分的方法虽然一直知道,但是从未实现过,做一道例题存一个模板. #pragma warning(disable:4996) #include<iost ...
- 数值积分NIntegrate中的具体算法
数值积分方法很多,Mathematica中至提供了NIntegrate.具体算法可参照官方帮助. http://reference.wolfram.com/language/tutorial/NInt ...
- 计算方法(二)用C#实现数值积分
在工程中,经常会遇到积分问题,这时原函数往往都是找不到的,因此就需要用计算方法的数值积分来求. public class Integral { /// <summary> /// 梯形公式 ...
- 数值分析1:三角函数的计算(C语言实现)
之前学习C语言的时候,一直有个疑问,计算机从芯片设计的角度来看,只能计算常规的加减乘及移位之类的操作,那么对于像sin .cos这些三角函数,人脑尚无可以直接运算的法则,那么计算机是怎么实现的呢?最近 ...
随机推荐
- DVWA靶场实战(六)——Insecure CAPTCHA
DVWA靶场实战(六) 六.Insecure CAPTCHA: 1.漏洞原理: Insecure CAPTCHA(不安全的验证码),CAPTCHA全程为Completely Automated Pub ...
- xcode运行sh权限问题
Showing Recent Messages Command /bin/sh emitted errors but did not return a nonzero exit code to ind ...
- 毫米波雷达 TI IWR1443 初体验
文章目录 1 前言 2 准备工作 2.1 mmWave SDK 2.2 Code Composer Studio(CCS) 2.3 Uniflash 2.4 MATLAB runtime 2.5 TI ...
- flutter报错The type of the function literal can't be inferred because the literal has a block as its body.A value of type 'String?' can't be assigned to a variable of type 'String'.
flutter有一些报错如下 The type of the function literal can't be inferred because the literal has a block as ...
- drf基础:1、web应用模式、API接口、接口测试工具
drf入门 一.web应用模式 web的应用模式共分为两种,前后端不分离.前后端分离 1.前后端混合 之前所写的bbs项目就是前后端不分离,后端人员在开发过程中使用模板语法,前后端都由一个人员 ...
- vue学习笔记(一)---- vue指令(在vue中使用样式的方式)
认真学习,认真记录,每天都要有进步呀!!! 加油叭!!! 一.在vue中使用样式的方式: 1. 直接传递一个数组,注意: 这里的 class 需要使用 v-bind 做数据绑定 <style&g ...
- ECharts 饼图数据放在饼图内部显示
1.业务需求 将数据显示在饼图内部,格式化百分比显示,鼠标放上去显示具体名称和数值 原样式如下 2.业务实现 调整代码如下,核心语句已标记注释 option = { title: { text: 'R ...
- ROS入门:服务
服务端实现一个加法,将结果反馈给客户端 客户端将要计算的和的两个数发给服务的. 1.自定义服务数据 创建一个srv文件:AddTwoInts.srv int64 a int64 b --- int64 ...
- Vue的基础-属性
VUE vue-cli脚手架,vue-router路由 vuex做状态管理 vue ui 界面 1.下载node.js 2.下载vue-cli cnpm install vue-cli -g 查看模版 ...
- C语言小程序-天天酷跑类游戏 26号完成
1.创建游戏内背景 2.实现人物 奔跑 跳跃 优化帧 3.障碍物 出现 https://kxd.lanzoul.com/iKXU20elmtah 开源地址 半成品