控制结果的精度
在进行数值操作如 NDSolve 和 NMinimize 时,Mathematica 默认地使用机器精度数. 但是通过设置选项 WorkingPrecision->n 用户可以使用任意 n 位精度的数字.
| Out[1]= |  |
| Out[2]= |  |
如果用户对 WorkingPrecision 给出设置,这就通常定义了计算所得结果的精度的上限. 但是在这个约束条件下,用户可以告诉 Mathematica 自己想要达到的精度和准确度为多少. 用户应该意识到对于许多不同种的数值操作,如果只对精度目标和准确度目标增加小数目的数位,通常会大幅度地增加计算时间. 然而,在许多情况下,确保获得高精度和准确度是很重要的.
控制精度和准确度的选项.
| Out[3]= |  |
给定 WorkingPrecision 的特殊设置,在 Mathematica 中数值操作的每个函数对 PrecisionGoal 和 AccuracyGoal 使用某种默认设置. 典型情况是 NDSolve,其中这些默认设置相当于对 WorkingPrecision 给定的设置的一半大小.
精度和准确度目标通常可以应用于返回的最终结果和关于它们的不同范数或误差估计. 在 Mathematica 中数值操作的函数通常不断尝试修订结果,直到达到指定的精度目标或准确度目标为止. 如果这两个目标之一设置为 Infinity,那么只考虑另一个目标.
在使用 N[expr, n] 进行普通数值计算时,Mathematica 自动调整内部计算以在结果中达到 n 位精度. 但是在对函数进行数值操作时,实际上经常需要更加明确地指明 WorkingPrecision 和 PrecisionGoal.