数值分析之数值积分 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这些三角函数,人脑尚无可以直接运算的法则,那么计算机是怎么实现的呢?最近 ...
随机推荐
- @LoadBalanced注解原理
在使用springcloud ribbon客户端负载均衡的时候,可以给RestTemplate bean 加一个@LoadBalanced注解,就能让这个RestTemplate在请求时拥有客户端负载 ...
- 如何指定多个项目的 InternalsVisibleTo
InternalsVisibleTo 属性允许你指定一个或多个程序集,这些程序集可以访问当前程序集中的内部类型.经常在进行单元测试时使用,例如,你可以在一个项目中定义一个内部类型,然后在另一个项目中进 ...
- curl请求https报错
curl 一般情况下请求http时不会有问题 但是请求 https 协议的链接时会报错,如下: curl: (60) SSL certificate problem: unable to get lo ...
- [Leetcode] 寻找数组的中心索引
题目 代码 class Solution { public: int pivotIndex(vector<int>& nums) { int right=0; for(auto i ...
- Matplotlib学习笔记1 - 上手制作一些图表吧!
Matplotlib学习笔记1 - 上手制作一些图表吧! Matplotlib是一个面向Python的,专注于数据可视化的模块. 快速上手 这是使用频率最高的几个模块,在接下来的程序中,都需要把它们作 ...
- Mac上优秀的虚拟机软件推荐 PD Parallels Desktop 18.1.1
APPERK 软件信息 软件名称 ParallelsDesktop 版本号 18.1.1 软件类型 官网版 + 商业版 安装包大小 390MB 语言 中文 系统支持 macOS11及以上(M芯片原生) ...
- CSS文字超出宽度---换行总结
2021-5-5重新总结---CSS文字超出宽度---附代码 <!DOCTYPE html> <html lang="en"> <head> ...
- pytorch 配置详细过程
torch github 项目多 方便,api好调用 cpu版本 装torch 安装最新版本的就可以. torchvision 要版本对应 算法: torchvision版本号= torch版本号第一 ...
- Java线程池中的execute和submit
一.概述 execute和submit都是线程池中执行任务的方法. execute是Executor接口中的方法 public interface Executor { void execute(Ru ...
- Unity - 无限滚动
今天学习:Unity - UGUI - 无限滚动 目录 今天学习:Unity - UGUI - 无限滚动 版本: 一:思路分享(Share idea) 二:脚本编写(Scripts) 三:场景面板布置 ...