机器精度
背景和上下文
机器精度 表示数字函数使用的小数位数的符号,例如 N个 , N集成 、和 NSum公司 用于机器精度计算的Wolfram语言。 的数值 机器精度 由提供 $机器精度 ,它本身是一个机器决策数,等于 。用作符号表达式时, 机器精度 被视为具有值的精确数字量 53/ 日志2 [ 10 ] ,对应53位精度的二进制数字。 通常,Wolfram语言中的数字和图形函数采用一个或多个精度选项,用于控制计算中所需的数字精度。 最常见的此类选项包括 工作精度 (指定内部计算中应保持的精度位数)和 精准度目标 (它指定在最终结果中应搜索的有效精度位数)。 机器精度 是所有绘图函数、大多数数值函数以及 编译 (在自动编译期间显式调用和在场景后调用时)。 机器精度数字(通常简称为“机器编号”)始终包含固定数量的数字,并且不保留有关精度的信息。 虽然指数和有效位可以为这些数字独立存储,但它们的“比例”仍然受到指数可能范围的限制。 使用这种固定精度数字的算术称为浮点计算,通常使用IEEE浮点算术标准(IEEE 754)标准实现。 机器精度计算通常使用本机浮点单元和低级数字库操作执行,这些操作通常非常快(尤其是在矩阵运算中),但无法跟踪计算过程中由于数字舍入和其他因素而可能发生的精度损失。 因此,机器算法给出了快速但未经数字验证的结果,这些结果可能与正确的值有很大差异。 除了机器算术之外,Wolfram语言还允许通过涉及精确标记的“任意精度”数字的“显著性算术”进行数值计算。 顾名思义,任意决定数可以包含任意数量的数字,因此可以包含可以通过计算传播的精度信息。 使用这种技术,可以返回一个最终的数值结果,该结果的精度比原始输入少,但返回的数字经过了数值验证。 机械精度 是特殊数值化函数的默认精度目标(即最终结果中所需的精度) N个 .使用 N个 [ 快递 ] 因此相当于设置 前c 到 机器精度 以双论证的形式 N个 [ 快递 , 前c ] 。重要的是要了解 前c 作为符号 机器精度 与指定其数值完全不同 $机器精度 特别是,前者将对机器号进行数字化,而后者将对具有指定有效数字数的任意决定数进行数字化。 例如, N个 [ 圆周率 , 机器精度 ] 和 N个 [ 圆周率 , $机器精度 ] 给出不同的输出。 输入表单 或 FullForm格式 可以用于查看底层的数字表示,它由一个16位或更少的十进制数字组成,用于表示机器号和形式的表达式 数字 ` 前c 对于任意决定数。 机器判决数或任意判决数的底层二进制数字可以使用 真实数字 [ 快递 , 2 ] 。 指定显式数字精度 前c 对于数字,可以使用“回退”语法输入数字 数字 ` 前c 。更一般地说, 设置精度 [ 快递 , 前c ] 可以用于返回的版本 快递 其中所有数字都已设置为具有精度 前c ,以及其中 前c 可以指定为数字, 机器精度 ,或 无限 .一个特殊情况由近似数字给出 0 ,它不带精度,因此即使给定任何显式有限精度,也会强制返回到机器号。 精密度 [ 快递 ] 可用于查找给定表达式的数字精度。 假设使用少量显式数字指定的数字具有机器精度,这意味着 精密度 [ 0.123 ] 收益 机器精度 更一般地,假设近似实数具有由 机器精度 如果小于 $机器精度 输入时输入显式数字。 如果指定了更多的数字,则会为数字指定与指定数字数相对应的精度(参见。 精密度 [ 0.12345678901234567 ] 与 精密度 [ 0.123456789012345678 ] ). 在包含任意数字和机器精度数字的计算中,所有数字都会根据需要强制达到机器精度。 此外,即使任意决定数的精度小于 机器精度 (例如。 N个 [ E类 , 30 ] + N个 [ 圆周率 ] 和 N个 [ E类 , 三 ] + N个 [ 圆周率 ] 都返回机器编号)。 此外,在要求的计算中 机器精度 但是,如果生成的数字太大或太小,无法用53位表示,则结果会自动返回为任意精度的数字(例如。 N个 [ 费用 [ 1000 ] , 机器精度 ] ). 同一类型的机器号和任意决定号都相同 头部 (例如。 真实 或 复杂 ). 然而,机器精度数字在 标准格式 (默认值为6,但可以在 偏好 菜单),而任意精度数字显示所有有效数字。 机器编号Q [ 快递 ] 收益 真的 如果 快递 是一台机器 ‐ 精确实数或复数以及 False(错误) 否则。 测试数字和表达式的其他有用函数包括 数字Q , 数字Q , 精确数字Q 、和 不精确数字Q 。