求积公式

\[\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. DVWA靶场实战(六)——Insecure CAPTCHA

    DVWA靶场实战(六) 六.Insecure CAPTCHA: 1.漏洞原理: Insecure CAPTCHA(不安全的验证码),CAPTCHA全程为Completely Automated Pub ...

  2. xcode运行sh权限问题

    Showing Recent Messages Command /bin/sh emitted errors but did not return a nonzero exit code to ind ...

  3. 毫米波雷达 TI IWR1443 初体验

    文章目录 1 前言 2 准备工作 2.1 mmWave SDK 2.2 Code Composer Studio(CCS) 2.3 Uniflash 2.4 MATLAB runtime 2.5 TI ...

  4. 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 ...

  5. drf基础:1、web应用模式、API接口、接口测试工具

    drf入门 一.web应用模式 ​ web的应用模式共分为两种,前后端不分离.前后端分离 1.前后端混合 ​ 之前所写的bbs项目就是前后端不分离,后端人员在开发过程中使用模板语法,前后端都由一个人员 ...

  6. vue学习笔记(一)---- vue指令(在vue中使用样式的方式)

    认真学习,认真记录,每天都要有进步呀!!! 加油叭!!! 一.在vue中使用样式的方式: 1. 直接传递一个数组,注意: 这里的 class 需要使用 v-bind 做数据绑定 <style&g ...

  7. ECharts 饼图数据放在饼图内部显示

    1.业务需求 将数据显示在饼图内部,格式化百分比显示,鼠标放上去显示具体名称和数值 原样式如下 2.业务实现 调整代码如下,核心语句已标记注释 option = { title: { text: 'R ...

  8. ROS入门:服务

    服务端实现一个加法,将结果反馈给客户端 客户端将要计算的和的两个数发给服务的. 1.自定义服务数据 创建一个srv文件:AddTwoInts.srv int64 a int64 b --- int64 ...

  9. Vue的基础-属性

    VUE vue-cli脚手架,vue-router路由 vuex做状态管理 vue ui 界面 1.下载node.js 2.下载vue-cli cnpm install vue-cli -g 查看模版 ...

  10. C语言小程序-天天酷跑类游戏 26号完成

    1.创建游戏内背景 2.实现人物 奔跑 跳跃 优化帧 3.障碍物 出现 https://kxd.lanzoul.com/iKXU20elmtah 开源地址 半成品