求积公式

\[\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. [深度学习] caffe分类模型训练、结果可视化、部署及量化笔记

    本文为本人caffe分类网络训练.结果可视化.部署及量化具体过程的心得笔记.caffe目前官方已经停止支持了,但是caffe是目前工业落地最常用的深度学习框架,用的人挺多.其实主要怕自己忘了,弄个备份 ...

  2. 光速上手k8s(2023)(containerd)(未完待续)

    又过了好久没写了,主要是近来状况也无聊 一.了解概念(参考) 概念 Kubernetes 是一个可移植.可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化. Kubernete ...

  3. 微服务框架——MybatisPlus

    MybatisPlus 一.快速入门 1.mybatisPlus特性 无侵入:只增强,不改变. 损耗小:启动的时候直接注入基本CRUD 强大的CRUD操作:提供通用Mapper,通用service,条 ...

  4. 关系数据库——MySQL

    数据库 1.基本操作 1.1命令行操作 mysql -u username -p+password; --连接数据库 flush privileges; --刷新权限 show databases; ...

  5. 交叉编译esp8089

    交叉编译esp8089 编译环境: 硬件:全志R528 ubuntu:Linux ubuntu 4.15.0-194-generic #205-Ubuntu SMP Fri Sep 16 19:49: ...

  6. 详解 Gulp4 和 Gulp3 的区别

    最近在开发几个网站,为了优化一下前端代码,就复习一下gulpjs,之前工作gulp用的版本比较老,但是今天看了新的版本,新的语法出了一下,但是为了时间,我决定使用之前gulp3的旧版本,后面发现自己环 ...

  7. win32com操作word API精讲 第十集 Paragraphs & Paragraph接口 (一)

    本课程<win32com操作word API精讲&项目实战>以视频为主,文字为辅,公众号ID:一灯编程 在word编程中,Range和Paragraph(s)接口无愧于劳模接口的称 ...

  8. 局部内部类定义-局部内部类的final问题

    局部内部类定义 定义格式: 修饰符 class 外部类名称 { 修饰符 返回值类型 外部类方法名(参数列表){ class 局部内部类名称{// ... } } } 小杰一下类的权限修饰符: publ ...

  9. 车牌识别服务-JAVA+ONNX版本,支持全类型的车牌

    1.车牌识别简介 车牌识别分为车牌检测与识别,检测模型一般需要检查车牌的位置识别模型一般为识别车牌号及车牌的颜色类型等,目前有较多的深度学习模型能支持,这里就不详细说了. 自动识别车辆车牌信息,应用于 ...

  10. supervisor管理java进程

    安装 yum install supervisor 设置开机启动 systemctl enable supervisord 启动supervisord systemctl start supervis ...