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 的奇点. 如果没有奇点,结果等价于从 x0 到 xk 的积分. 您可以用复数 xi 在复平面上指定一个积分等高线.
- 可以给出以下选项:
-
AccuracyGoal Infinity 寻求的绝对准确度 EvaluationMonitor None 每当 expr 计算,也被计算的表达式 Exclusions None 排除的部分积分区域 MaxPoints Automatic 样本点的最大数量 MaxRecursion Automatic 递归子划分的最大数量 Method Automatic 使用的方法 MinRecursion 0 递归子划分的最小数量 PrecisionGoal Automatic 寻求的精度 WorkingPrecision MachinePrecision 内部计算使用的精度 - NIntegrate 通常使用一个自适应算法,该算法按需要递归地对积分区域进行划分. MinRecursion 给出递归划分的最小数量. MaxRecursion 给出最大数量.
- NIntegrate 通常不断进行子划分直至达到由 AccuracyGoal 或 PrecisionGoal 指定的最后结果所需要的误差估计为止.
- 对于较低维的积分,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" Clenshaw–Curtis 规则 "GaussKronrodRule" 有 Kronrod 展开的 Gauss 点 "LevinRule" Levin 型振荡规则 "LobattoKronrodRule" 有 Kronrod 展开的 Gauss–Lobatto 点 "MultidimensionalRule" 多维对称规则 "MultipanelRule" 一维规则的混合 "NewtonCotesRule" Newton–Cotes 规则 "RiemannRule" 黎曼求和规则 "TrapezoidalRule" 一维的均匀点 - 如果设置 Method->"rule",将自动选择策略方法.
- 用来增加方法的子选项可以以 Method->{…,opts} 形式给出.
- NIntegrate 对输入进行符号式分析,从而对振荡型被积函数或其它被积函数进行变换,进一步划分分段函数,以及选择最优化的算法.
- 方法的子选项 "SymbolicProcessing" 指定执行被积函数的符号分析的最大秒数.
- 对于不能符号运算的积分,N[Integrate[…]] 调用 NIntegrate.
- NIntegrate 首先局部化所有变量的值,然后符号计算 f,最后重复数值计算结果.
- NIntegrate 有属性 HoldAll,实际上用 Block 局部化变量.
范例
打开所有单元关闭所有单元范围 (56)
基本用法 (12)
奇点积分 (9)
使用 Exclusions 在积分区域内部进行奇点测试:
分段积分 (9)
用 Exclusions 显式指定不连续点或尖锐的转角:
振荡积分 (15)
区域积分 (11)
在任意 ImplicitRegion 上求积分:
在任意 ParametricRegion 上求积分:
在任意 MeshRegion 上求积分:
在任意 BoundaryMeshRegion 上求积分:
选项 (30)
AccuracyGoal (1)
MaxRecursion (1)
Method (21)
MinRecursion (1)
PrecisionGoal (1)
有 PrecisionGoal,样本数量需要成倍的增加:
WorkingPrecision (1)
NIntegrate 用较高的工作精度计算积分:
PrecisionGoal 使用 10,这小于 WorkingPrecision:
应用 (26)
基本应用 (2)
概率和期望 (3)
线积分、曲面积分和体积积分 (3)
积分变换 (4)
特殊函数的积分表示 (3)
函数范数和内积 (2)
属性和关系 (9)
NIntegrate 计算低维区域的曲面积分:
参数式曲面 的曲面(曲线等)积分 由常积分 给出,其中 是 Gram 判别式:
当存在一个封闭形式解时,Integrate 可以用 NIntegrate 替代:
NIntegrate 的结果接近明确值:
可以用 NDSolve 替代 NIntegrate:
因为 NIntegrate 使用全局性的误差控制,它通常给出更精确的结果:
用 Euler–Maclaurin公式近似值与明确值的比较:
NSum 的 Euler–Maclaurin方法使用Integrate 或 NIntegrate:
CDF 给出相同结果:
在极点处的函数的 Residue 等价于一个等高线积分:
可能存在的问题 (6)
指定有 AccuracyGoal 的绝对公差将减少工作的数量:
降低 PrecisionGoal 会加速计算:
对相同的较低 PrecisionGoal,用一个准 Monte Carlo 方法计算较快:
对于维数高于15,NIntegrate 自动使用蒙特卡洛积分:
对符号参数应用函数,NIntegrate 生成了一条消息:
当该函数与其他数值函数(如 NMinimize)一起使用时,也会产生警告消息:
定义一个仅在其参数为数值时才进行计算的函数,以避免出现这些消息:
现在,该函数可与其他数值函数(如 NMinimize)一起使用:
文本
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 年