强制Mathematica以有限精度进行数值计算

时间:2014-01-04 15:53:01

标签: precision numeric

我想分析Mathematica中解析表达式的数值稳定性。为此,我想迫使Mathematica以有限精度数值计算表达式,并以更高的精度比较结果。问题是,即使我告诉它明确地这样做,我也不会忘记它在后台保留的额外数字。下面的错误在哪里?

In[466]:= Sin[2.0]
Out[466]= 0.9092974268256817

In[467]:= Block[{$MaxExtraPrecision = 0}, N[Sin[2.0], 2]]
Out[467]= 0.9092974268256817

In[468]:= Block[{$MaxExtraPrecision = 0}, N[Sin[2.0`2], 2]]
Out[468]= 0.91

In[469]:= SetPrecision[%, 16]
Out[469]= 0.9092974268256817

即使在第三个版本中,它在后台保留了更多数字。

1 个答案:

答案 0 :(得分:1)

也许 NumberForm 就是您所需要的。

  

NumberForm [expr,n]在expr中打印近似实数   给予n位精度。

http://reference.wolfram.com/mathematica/ref/NumberForm.html