我想分析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
即使在第三个版本中,它在后台保留了更多数字。
答案 0 :(得分:1)
也许 NumberForm 就是您所需要的。
NumberForm [expr,n]在expr中打印近似实数 给予n位精度。
http://reference.wolfram.com/mathematica/ref/NumberForm.html