NIntegrate

NIntegrate[f,{x,xmin,xmax}]

给出积分的 的数值近似.

NIntegrate[f,{x,xmin,xmax},{y,ymin,ymax},]

给出多重积分 的数值近似.

NIntegrate[f,{x,y,}reg]

在几何区域 reg 上求积分.

更多信息和选项

  • 多重积分使用标准迭代符号的变化形式,给出的第一个变量对应于最外层的积分并最后计算.
  • NIntegrate 缺省下在积分边界上测试奇点,通过 Exclusions 选项设置指定的区域边界.
  • NIntegrate[f,{x,x0,x1,,xk}] 测试一维积分在每个中间点 xi 的奇点. 如果没有奇点,结果等价于从 x0xk 的积分. 您可以用复数 xi 在复平面上指定一个积分等高线.
  • 可以给出以下选项:
  • AccuracyGoal Infinity寻求的绝对准确度
    EvaluationMonitor None每当 expr 计算,也被计算的表达式
    Exclusions None排除的部分积分区域
    MaxPoints Automatic样本点的最大数量
    MaxRecursion Automatic递归子划分的最大数量
    Method Automatic使用的方法
    MinRecursion 0递归子划分的最小数量
    PrecisionGoal Automatic寻求的精度
    WorkingPrecision MachinePrecision内部计算使用的精度
  • NIntegrate 通常使用一个自适应算法,该算法按需要递归地对积分区域进行划分. MinRecursion 给出递归划分的最小数量. MaxRecursion 给出最大数量.
  • NIntegrate 通常不断进行子划分直至达到由 AccuracyGoalPrecisionGoal 指定的最后结果所需要的误差估计为止.
  • 对于较低维的积分,PrecisionGoal 的设置与 WorkingPrecision 相关. 对于较高维积分,它通常指定一个固定值 2.
  • 您可以意识到,在大量的病理学实例中,NIntegrate 采用的算法给出错误的结果. 在多数实例中,您可以通过在 NIntegrate 选项的设置中查看变化的灵敏度来测试结果.
  • Method 选项的可能设置包括:
  • "GlobalAdaptive"全局自适应积分策略
    "LocalAdaptive"局部自适应积分策略
    "DoubleExponential"双倍指数求积
    "MonteCarlo"蒙特卡洛积分
    "AdaptiveMonteCarlo"自适应蒙特卡洛积分
    "QuasiMonteCarlo"准蒙特卡洛积分
    "AdaptiveQuasiMonteCarlo"自适应准蒙特卡洛积分
  • 设置 Method->{"strategy",Method->"rule"}Method->{"strategy",Method->{rule1,rule2,}},可能包括以下政策方法:
  • "GlobalAdaptive"基于整体的误差估计的再分
    "LocalAdaptive"基于局部的误差估计的再分
  • 用作规则的方法包含:
  • "CartesianRule"规则的多维 Cartesian 积
    "ClenshawCurtisRule"ClenshawCurtis 规则
    "GaussKronrodRule"有 Kronrod 展开的 Gauss 点
    "LevinRule"Levin 型振荡规则
    "LobattoKronrodRule"有 Kronrod 展开的 GaussLobatto 点
    "MultidimensionalRule"多维对称规则
    "MultipanelRule"一维规则的混合
    "NewtonCotesRule"NewtonCotes 规则
    "RiemannRule"黎曼求和规则
    "TrapezoidalRule"一维的均匀点
  • 如果设置 Method->"rule",将自动选择策略方法.
  • 用来增加方法的子选项可以以 Method->{,opts} 形式给出.
  • NIntegrate 对输入进行符号式分析,从而对振荡型被积函数或其它被积函数进行变换,进一步划分分段函数,以及选择最优化的算法.
  • 方法的子选项 "SymbolicProcessing" 指定执行被积函数的符号分析的最大秒数.
  • 对于不能符号运算的积分,N[Integrate[]] 调用 NIntegrate.
  • NIntegrate 首先局部化所有变量的值,然后符号计算 f,最后重复数值计算结果.
  • NIntegrate 有属性 HoldAll,实际上用 Block 局部化变量.

范例

打开所有单元关闭所有单元

基本范例  (5)

数值积分的运算:

多维积分的运算 (原点处有奇点):

计算隐式定义的区域的面积和体积:

在任何区域上求积分:

求振荡及其它复杂函数的积分:

范围  (56)

基本用法  (12)

在一个有限的实数范围上求函数的积分:

无限实数范围:

得到高精度的结果:

沿一条有限或无限长的复数直线积分:

在复平面上沿着一条分段线型等高线:

在复平面上沿着一条环形等高线:

对函数实部和积分路径绘图:

为向量和张量定值的函数:Esc

多元函数:

积分变量的限可取决于前面的变量:

在积分区域上绘制被积函数:

在由不等式定义的区域上积分:

绘制积分区域:

在包含特殊区域的任何几何区域上求积分:

公式区域:

网格区域:

求五维单位球体的体积:

通过计算曲面积分,求标准圆柱体的曲面面积:

通过计算直线积分求椭圆长度:

采用蒙特卡洛方法进行多元积分:

奇点积分  (9)

对端点处有代数奇点的函数进行积分:

在积分范围内绘图:

端点处有对数奇点:

在积分范围内绘图:

两个端点均有奇点:

在积分范围内绘图:

使用 Exclusions 在积分区域内部进行奇点测试:

在积分范围内绘图:

在边缘和角落具有奇点的函数的多元积分:

在积分范围内绘图:

奇点位于多维积分区域的角上:

在积分范围内绘图:

在内部点上存在奇点的多元积分:

在内部多个点上存在奇点:

在积分范围内绘图:

在曲线上奇异的函数的多元积分,曲线满足一个方程:

在积分范围内绘图:

函数具有不可积奇点时的柯西主值:

分段积分  (9)

有限个情形的分段函数:

无限个情形的分段函数:

与其它任意函数的复合:

Exclusions 显式指定不连续点或尖锐的转角:

在积分范围内绘图:

具有有限个情形的多元分段积分:

显式指定不连续点和尖锐的转角:

绘制区域上的实部和虚部:

在二维区域上积分:

在三维区域上积分:

维区域上积分:

振荡积分  (15)

在有限范围上对一个高度振荡初级函数进行积分:

在该范围的 上进行绘图:

高振荡特殊函数:

在该范围的 上进行绘图:

在无限范围上对振荡函数进行积分:

在无限范围上的振荡特殊函数:

振荡函数的和:

绘制 的范围:

振荡函数的乘积:

绘制 的范围:

振荡函数的幂:

绘制 的范围:

振荡函数与非振荡函数的复合:

在积分范围内绘图:

振荡函数的加和、乘积、幂乘和复合:

绘制部分积分范围内的图形:

高振荡函数在有限范围上的多元积分:

在范围的百万分之一上绘图:

振荡特殊函数在有限范围上的多元积分:

在无限范围上的多元振荡函数:

奇异振荡函数:

绘制 的范围:

振荡函数与奇异函数的复合:

在积分范围内绘图:

分段振荡函数:

在振荡率为 处绘图:

具有奇点的分段振荡函数:

在积分范围内绘图:

区域积分  (11)

在单位圆盘上求积分的不同方式:

可视化区域上的积分函数:

在单位圆盘上进行更常见的积分:

可视化区域上的积分函数:

在零维区域上求积分对应于对点求和:

在一维区域上求积分对应于曲线积分:

在二维区域上求积分对应于曲面积分:

通常来说,在低维区域上求积分对应于曲面积分:

区域是低维的:

在包含实心平行四边形的任意基本区域上求积分:

实心圆锥体:

球面:

实心椭圆:

半无穷线:

在任意 ImplicitRegion 上求积分:

全维区域:

在任意 ParametricRegion 上求积分:

全维区域:

在任意 MeshRegion 上求积分:

二维空间中的区域:

三维空间中的区域:

在任意 BoundaryMeshRegion 上求积分:

选项  (30)

AccuracyGoal  (1)

AccuracyGoal 选项可用来改变缺省的绝对公差:

一旦超过准确度标准,积分处理停止:

当缺省仅使用一个精度准则时,缺省设置下的结果不同:

EvaluationMonitor  (2)

获得一个数值积分使用的计算点的数量:

显示数值积分使用的计算点:

Exclusions  (1)

积分区域排除使得被积函数的分母为零的曲线:

被积函数的曲线是奇异的:

MaxPoints  (1)

在超过指定数量的点后,停止积分:

MaxRecursion  (1)

没有足够的自适应递归,给出的较差的结果:

MaxRecursion 指定较大的值,给出较好的结果:

指定奇点位置会更有效:

Method  (21)

积分规则  (10)

左侧和右侧黎曼和:

黎曼和在子区域的左端点或右端点均匀采样:

无外推的基本梯形规则,与分段线性逼近对应:

采用 Romberg 外推的梯形规则:

基本梯形规则均匀采样(当自适应关闭时):

采用梯形规则的缺省自适应法:

采样点间距均匀的 NewtonCotes 规则:

封闭公式包括端点,而开放公式不包括:

NewtonCotes 规则对应于多项式插值:

无自适应的逼近等同于对相应多项式的积分:

阶数为 的方法对于次数在 以内的多项式是准确的:

自动选择积分策略的 ClenshawCurtis 求积规则:

采样点非均匀:

这些点是 重新调整尺度后的版本:

误差估计采用 Kronrod 外延法的高斯求积规则:

高斯规则使用非均匀分布的采样点:

采用 个高斯点的方法对于次数为 的多项式是准确的:

阶数为 的方法采用足够的点数以保证对次数为 的多项式是准确的:

在 Lobatto 点处采用 Kronrod 外延法的高斯求积规则:

Lobatto 点是不均匀的:

多面板规则(或称复合规则)将指定规则应用于多个子区间:

任何其它规则都可以与多面板规则联用:

使用一维规则的乘积:

一个规则列表自动被解释为规则的乘积:

x 上使用均匀采样,在 y 上使用非均匀采样:

使用多维对称规则的多元积分:

多维规则使用采样点的一个离散对称网格:

增加采样点的个数:

使用不同数目的生成程序有时可以改进计算时效:

使用 Levin 型配位规则的振荡函数的积分:

多元 Levin 型规则:

积分策略  (6)

全局自适应积分策略:

基于最大误差,对区域进行再分,直到全局误差足够小:

局部自适应积分策略:

对每个区域进行再分,直到局部误差足够小:

梯形策略,在密度增加处均匀采样:

对整个区域进行再分,并使用一个较低阶的方法:

双指数("tanh-sinh")策略,在端点附近的采样点密集:

变换后对整个区域进行再分:

采样点均匀随机分布的蒙特卡洛积分:

采样点具有确定的序列:

蒙特卡洛和准蒙特卡洛的全局自适应版:

绘制不同策略所用的采样点:

符号式处理  (5)

缺省时可进行一些符号式处理:

使用自动数值方法,但不采用符号式处理:

对符号式处理设置一个明确的极限:

控制分段函数的自动再分:

分段函数的自动再分通常会导致函数的计算次数减少:

控制奇偶被积函数的自动简化:

自动简化通常会使函数的计算次数减少:

控制高振荡函数的自动方法选择:

对于高振荡函数,专门的方法会使函数的计算次数减少:

对于非振荡函数,将探测关闭可以节省时间:

控制插值函数的节点处的自动再分:

插值函数的再分可减少计算次数:

对于一个平滑函数的精确插值,再分可能是不必要的:

MinRecursion  (1)

NIntegrate 可能会丢失被积函数的峰值:

增加 MinRecursion 强制指定积分区域的一个更细的再分:

PrecisionGoal  (1)

对于不同公差,用于计算 的样本数:

PrecisionGoal,样本数量需要成倍的增加:

WorkingPrecision  (1)

NIntegrate 用较高的工作精度计算积分:

PrecisionGoal 使用 10,这小于 WorkingPrecision

应用  (26)

基本应用  (2)

计算无封闭形式解的积分:

使用 Interpolation 对一组离散数据进行积分:

Integrate 还可用于插值函数:

对数据和插值进行绘图:

概率和期望  (3)

为标准正态分布时,计算 的概率:

直接使用 NProbability

为标准柯西分布时,计算 sqrt(TemplateBox[{x}, Abs]) 的期望:

直接使用 NExpectation

由概率密度函数(PDF)计算累积分布函数(CDF):

通过求解方程计算分位数的值:

直接使用 Quantile

长度,面积和体积  (7)

计算两条曲线之间的面积,将其视作对两者差值的一维积分:

将其视作对两者所包围的区域的二维积分:

绘制计算面积:

计算隐式指定的圆盘的面积:

圆盘环面:

椭圆:

椭圆环面:

扇形:

包括一个球体的简单区域:

球状壳体的一半:

椭圆体:

椭圆壳体的一半:

球面楔:

计算一个区域的面积,该区域使用 Green 定理由参数化曲线定义:

椭圆:

周期性边界曲线:

计算一条参数化曲线的长度:

椭圆:

一条周期性边界曲线:

一个三维圆环:

三维椭圆:

更加一般的曲线:

一个环形弹簧曲线:

计算一个参数式定义曲面的面积:

椭圆体曲面:

环形曲面:

一般的参数式曲面:

使用发散定理计算一个参数式曲面所环绕的体积:

椭圆体体积:

圆环体体积:

一个一般参数式曲面的体积:

线积分、曲面积分和体积积分  (3)

一个循环热力学过程所做的功:

压容图上循环的可视化:

密度均匀的一个区域的质量和质心:

质心的可视化:

三维区域:

质心的可视化:

使用 Stokes 定理,由一个参数式曲面所包围的区域的质心:

质心的可视化:

积分变换  (4)

计算包括傅立叶变换的积分变换:

拉普拉斯变换:

Mellin 变换:

Hilbert 变换:

Hartley 变换:

求一个周期函数在 [0,1] 上的傅立叶系数:

显示近似反变换:

计算一个二次分数傅立叶变换:

由方形孔眼衍射的波幅的 Fraunhofer 积分:

在光轴附近的衍射图:

特殊函数的积分表示  (3)

第一类 TemplateBox[{n, z}, BesselJ] 的 Bessel 函数在实数直线上的积分表示:

与内置函数 BesselJ[n,x] 比较:

在复平面的右半部的 γ 函数 TemplateBox[{z}, Gamma]

与内置函数 Gamma[z] 比较:

第二类 TemplateBox[{z, m}, EllipticE2] 在实数直线上的不完全椭圆积分:

与内置函数 EllipticE[z,m] 比较:

函数范数和内积  (2)

一个函数的 范数:

画作为 的函数的 范数的图形:

作为 的函数, 使 TemplateBox[{f}, Norm]_p 最小化:

关于权重函数 的内积,函数在 上有定义:

Legendre 多项式 TemplateBox[{n, x}, LegendreP] 上的正交,权重函数为1:

切比雪夫多项式 上的正交,权重函数为

Hermite 多项式 上的正交,权重函数为

复分析  (2)

比较 的余数,视作在包围 的一个等高线上的积分:

与准确值进行比较:

函数在 处的数值导数,视作在包围 的一个等高线上的积分:

对数值定义的函数进行微分:

属性和关系  (9)

NIntegrate 计算低维区域的曲面积分:

区域是低维的:

参数式曲面 的曲面(曲线等)积分 由常积分 给出,其中 是 Gram 判别式:

在参数式圆环曲线 上求积分:

在参数式球体曲面 上求积分:

在零维区域上求积分对应于在点上求和:

当存在一个封闭形式解时,Integrate 可以用 NIntegrate 替代:

NIntegrate 的结果接近明确值:

可以用 NDSolve 替代 NIntegrate

因为 NIntegrate 使用全局性的误差控制,它通常给出更精确的结果:

用 EulerMaclaurin公式,求和的尾部近似:

用 EulerMaclaurin公式近似值与明确值的比较:

NSum 的 EulerMaclaurin方法使用IntegrateNIntegrate

求从概率密度函数中求出的累积分布函数:

CDF 给出相同结果:

在极点处的函数的 Residue 等价于一个等高线积分:

在等高线上的数值积分,这个等高线包括从 - 的实数轴:

几个特定函数定义为积分:

对于较高精度,通常指定特定的函数:

可能存在的问题  (6)

对于复杂变化的被积函数,需要多个层次的自适应递归:

指定较高递归的再分层次,将给出一个收敛的结果:

在积分区域内部存在一个奇点的一维积分:

指定奇点的位置,从而可以通过适当变换来处理奇点:

因为缺省使用相对公差,所以零积分计算较慢:

指定有 AccuracyGoal 的绝对公差将减少工作的数量:

在缺省精度下, 高维数的基于容积的积分计算较慢:

降低 PrecisionGoal 会加速计算:

对相同的较低 PrecisionGoal,用一个准 Monte Carlo 方法计算较快:

对于维数高于15,NIntegrate 自动使用蒙特卡洛积分:

计算符号函数可能会需要更长的时间:

限制函数定义以避免符号计算:

定义一个对给定参数进行数值积分的函数:

参数值为 2 时进行计算:

对符号参数应用函数,NIntegrate 生成了一条消息:

当该函数与其他数值函数(如 NMinimize)一起使用时,也会产生警告消息:

定义一个仅在其参数为数值时才进行计算的函数,以避免出现这些消息:

参数为数值时进行计算:

参数不是数值时,函数不会进行计算:

现在,该函数可与其他数值函数(如 NMinimize)一起使用:

巧妙范例  (2)

用一个较低次方法,对一个三维积分的取样:

对具有多个奇异曲线的函数进行积分:

Wolfram Research (1988),NIntegrate,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NIntegrate.html (更新于 2014 年).

文本

Wolfram Research (1988),NIntegrate,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NIntegrate.html (更新于 2014 年).

CMS

Wolfram 语言. 1988. "NIntegrate." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2014. https://reference.wolfram.com/language/ref/NIntegrate.html.

APA

Wolfram 语言. (1988). NIntegrate. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/NIntegrate.html 年

BibTeX

@misc{reference.wolfram_2024_nintegrate, author="Wolfram Research", title="{NIntegrate}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/NIntegrate.html}", note=[Accessed: 17-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_nintegrate, organization={Wolfram Research}, title={NIntegrate}, year={2014}, url={https://reference.wolfram.com/language/ref/NIntegrate.html}, note=[Accessed: 17-November-2024 ]}