请问Mathematica NIntegrate 的精度如何设置?

请问Mathematica NIntegrate 的精度如何设置?,第1张

精确2位数字就加参数

WorkingPrecision

->

12,

PrecisionGoal->2(这是默认值)

前面是计算精度,后面是显示的精度。通常计算精度比显示精度高10位以保证不出现误差。不过实宽脊际的计算精确度与其他参数衡雹还有关,比较复杂,只靠上面咐巧帆的参数不一定特别准确,可以再去看帮助文件。

精度和准确度控制

Wolfram 语言具有先进的内置数值精度控制和准橘缓确度控敏陵制. 对于特定用途的数值计算优化,或数值分析的研究,Wolfram 语言同样允许详细的精度和准确度控制.

N - 指定精度和准确度的数值计算

PrecisionGoal, AccuracyGoal -计算精度和准确度的目标

WorkingPrecision - 内部算法使用的精度

Precision -求数值的精度

Accuracy -求数值的准确度

Chop - 设置足够小的数字或虚部为零

SetPrecision, SetAccuracy - 重设数值的精度和准确度

$MinPrecision, $MaxPrecision  - 设置全局精度边界

$MaxExtraPrecision - 内部算法使用的最大精度

控制结果的精度

在进行数值 *** 作如 NDSolve 和 NMinimize 时,Wolfram 语言默认地使用机器精度数. 但是通过设置选项 WorkingPrecision->n 用户可以使用任意 n 位精度的数桥伍戚字.

这里进行数值积分的机器精度数的计算.

In[1]:= NIntegrate[Sin[Sin[x]], {x, 0, 1}]

Out[1]= 0.430606

这里进行使用30位任意精度数进行计算. 

In[2]:= NIntegrate[Sin[Sin[x]], {x, 0, 1}, WorkingPrecision ->30]

Out[2]= 0.430606103120690604912377355248

如果用户对 WorkingPrecision 给出设置,这就通常定义了计算所得结果的精度的上限. 但是在这个约束条件下,用户可以告诉 Wolfram 语言自己想要达到的精度和准确度为多少. 用户应该意识到对于许多不同种的数值 *** 作,如果只对精度目标和准确度目标增加小数目的数位,通常会大幅度地增加计算时间. 然而,在许多情况下,确保获得高精度和准确度是很重要的. 

另外相关的参数设置是:

WorkingPrecision 内部计算中保持的精度位数

PrecisionGoal 尝试获得的精度的位数

AccuracyGoal 尝试获得的准确度的位数

用N[]设置数值结果的精度:

In[1]:= N[Pi, 10]

Out[1]= 3.141592654


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/12248308.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存