Mathematica 计算精度怎么设置啊,比如要求整个计算过程中所有数值都保留6位有效数字
1个回答
展开全部
这要看情况的啊……可以用N[ ],也可以用SetPrecision[ ]。WorkingPrecision只是部分函数的选项,比如Plot,比如NDSolve。
追问
用$MinPrecision=$MaxPrecision=n的作用是不是类似于某些函数中用WorkingPrecision=n?
还有,N[]或者SetPrecision[],会影响程序计算精度吗?我主要是想让计算过程中精度低一些,从而速度快一些。p.s.关于精度这一块查了帮助和书,感觉很费解,尤其不懂如何设置计算精度(让机器不要考虑更高位的情况)
追答
精度问题确实是有些麻烦,老实说很多细节我也不是那么清楚,例如你说的$MinPrecision和$MaxPrecision(其实还有一个$MaxExtraPrecision)我就没怎么研究过,但是,这里需要指出的是, 如果真要(真只是)追求速度的话,那就别在精度这问题上纠结了,因为,默认的MachinePrecision(注意不是$MachinePrecision)是最快的,它是一种浮点运算,使用的舍入规则与你上面所提的明确设定精度的运算有所区别,所以在少数极端情况下会得到不合理的结果,但它,至少按帮助的说法,是最快的。
————
你若想深入,不妨去Stackexchange问问:
mathematica.stackexchange.com
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询