用Mathematica怎么将输出指定精确到小数

2024-12-31 18:02:04
推荐回答(1个)
回答1:

精度和准确度控制

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