求积公式

\[\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公式

复合求积公式

起源:

  1. N-C公式当 \(n\) 太大时不稳定
  2. 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的更多相关文章

  1. 开源Math.NET基础数学类库使用(06)数值分析之线性方程组直接求解

    原文:[原创]开源Math.NET基础数学类库使用(06)数值分析之线性方程组直接求解 开源Math.NET基础数学类库使用系列文章总目录:   1.开源.NET基础数学计算组件Math.NET(一) ...

  2. QuantLib 金融计算——数学工具之数值积分

    目录 QuantLib 金融计算--数学工具之数值积分 概述 常见积分方法 高斯积分 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--数学工具之数值积分 载入模 ...

  3. 【原创】开源Math.NET基础数学类库使用(08)C#进行数值积分

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

  4. 数值分析之奇异值分解(SVD)篇

    在很多线性代数问题中,如果我们首先思考若做SVD,情况将会怎样,那么问题可能会得到更好的理解[1].                                       --Lloyd N. ...

  5. Unity 由Verlet数值积分产生的头发运动

    先发下效果图. 参考项目unitychan-crs-master与miloyip大神的博客 爱丽丝的发丝,使用Verlet数值积分,根据旧的现在位置与上一桢位置来计算现在的位置,得到新的方向,上面的运 ...

  6. MATLAB学习笔记(八)——MATLAB数值积分与微分

    (一)数值积分 一.数值积分的MATLAB实现方法: 1.变步长辛普生法(quad)法: (1)调用格式: [I,n]=quad('fname',a,b,tol,trace); fname是被积函数: ...

  7. HDU1724 Ellipse(数值积分)

    补一下一些小盲区,譬如simpson这种数值积分的方法虽然一直知道,但是从未实现过,做一道例题存一个模板. #pragma warning(disable:4996) #include<iost ...

  8. 数值积分NIntegrate中的具体算法

    数值积分方法很多,Mathematica中至提供了NIntegrate.具体算法可参照官方帮助. http://reference.wolfram.com/language/tutorial/NInt ...

  9. 计算方法(二)用C#实现数值积分

    在工程中,经常会遇到积分问题,这时原函数往往都是找不到的,因此就需要用计算方法的数值积分来求. public class Integral { /// <summary> /// 梯形公式 ...

  10. 数值分析1:三角函数的计算(C语言实现)

    之前学习C语言的时候,一直有个疑问,计算机从芯片设计的角度来看,只能计算常规的加减乘及移位之类的操作,那么对于像sin .cos这些三角函数,人脑尚无可以直接运算的法则,那么计算机是怎么实现的呢?最近 ...

随机推荐

  1. [深度学习] Pytorch模型转换为onnx模型笔记

    本文主要介绍将pytorch模型准确导出为可用的onnx模型.以方便OpenCV Dnn,NCNN,MNN,TensorRT等框架调用.所有代码见:Python-Study-Notes 文章目录 1 ...

  2. [python]《Python编程快速上手:让繁琐工作自动化》学习笔记1

    1. 模式匹配与正则表达式笔记(第7章)(代码下载) 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念. ...

  3. [OpenCV实战]31 使用OpenCV将一个三角形仿射变换到另一个三角形

    目录 1 什么是仿射变换? 2 使用OpenCV进行三角形仿射变换 2.1 定义输入和输出 2.2 计算边界框 2.3 裁剪图像和更改坐标 2.4 计算仿射变换矩形 2.5 应用仿射变换到三角形 2. ...

  4. kafka详解(03) - kafka JAVA API

    kafka详解(03) - kafka JAVA API Producer (生产者)API 消息发送流程 Kafka的Producer发送消息采用的是异步发送的方式.在消息发送的过程中,涉及到了两个 ...

  5. H5直播技术起航

    作者:京东科技 吴磊 音视频基本概念 视频格式就是通常所说的.mp4,.flv,.ogv,.webm等.简单来说,它其实就是一个盒子,用来将实际的视频流以一定的顺序放入,确保播放的有序和完整性. 视频 ...

  6. 移动端微信小程序开发学习报错记录--toast.js:41 未找到 van-toast 节点,请确认 selector 及 context 是否正确

    这个问题仔细检查了一下代码引入,是没有问题的, 根本原因是在页面上忘了加<van-toast id="van-toast" /> 具体引入代码如下: app.json ...

  7. 【随笔记】NDK 编译开源库 SQLite3

    NDK 编译环境搭建请参考:[工作笔记]NDK 编译开源库 nghttp2/openssl/curl_lovemengx的博客-CSDN博客 一.下载源代码 wget https://github.c ...

  8. Grafana 系列文章(十三):如何用 Loki 收集查看 Kubernetes Events

    前情提要 IoT 边缘集群基于 Kubernetes Events 的告警通知实现 IoT 边缘集群基于 Kubernetes Events 的告警通知实现(二):进一步配置 概述 在分析 K8S 集 ...

  9. 嵌入式Linux—文件IO

    文件IO 在 Linux 系统中,一切都是" 文件":普通文件.驱动程序.网络通信等等.所有的操作,都是通过"文件 IO"来进行的.所以,很有必要掌握文件操作的 ...

  10. JAVA虚拟机15---虚拟机的类加载机制

    1.概述 在Class文件中描述的各类信息,最终都需要加载到虚拟机中之后才能被运行和使用.而虚拟机如何加载这些Class文件,Class文件中的信息进入到虚拟机后会发生什么变化,这就涉及到虚拟机的类加 ...