当前位置: 首页 > 知识库问答 >
问题:

机器ε乘法

姜卜霸
2023-03-14

我正在努力更好地理解浮点运算。我知道机器ε(e)的定义是1和下一个最大数之间的差(即1之后的下一个最大数可以用浮点精确表示为1E)。

然而,当我乘以(1e)*(1e)时,浮点值会得到什么?理论上它应该是12*e^2,但是(假设e

共有1个答案

杜绍元
2023-03-14

正如注释中所指出的,eps^2在任何有问题的浮点系统中都是完全可以表示的。但当添加到任何内容时

(1.0 + eps)^2 -> 1.0 + 2*eps

您需要在硬件上验证这一点。我了解到,浮点硬件并不总是像人们预期的那样运行,我看到高级数值软件不仅执行初始化代码来近似可用的eps(不总是浮点系统定义的eps),还执行算法所依赖的eps行为验证提供正确的结果。

职业选手从不认为任何事情都是理所当然的。有时fp硬件的实现不正确。有时fp系统具有奇怪的边界条件行为。信任但核实是我的建议。

 类似资料:
  • 我目前正在学习的一本手册(我是新手)说: “小于机器ε的数字在数字上是相同的” 使用Python,可以通过键入 如果我查一下 我获得False。 但如果我查一下 我明白了。 如果我将eps除以100,我的后一个逻辑表达式将变为False。那么,机器epsilon是如何工作的呢?Python文档只是说 “可表示的最小正数,使1.0 eps!=1.0。eps的类型是合适的浮点类型。” 提前谢谢你。

  • 我已经读到,由于尾数中的位数有限,浮点可能会遇到舍入。另外,我读到机器ε表示一个浮点,使得1ε等于下一个最小可表示数。 a) 然而,我无法连接ε和舍入误差之间的关系。有人能用外行的语言解释一下它们之间的关系吗? b)ε是否只依赖于用于尾数的位,甚至用于指数的位也在确定ε中起作用? c) 1/3是如何用浮点表示的?我知道它是0.3(重复出现),但接下来呢?从这里开始,它将如何以二进制形式表示?

  • 我们知道机器ε是“1和大于1的最小值之间的差值,在给定的浮点类型中可以表示”1 然而,这个定义并没有提到下一个较小的值。1和下一个较小值之间的差异是什么? 笔记 1ISO/IEC C 2011标准,第5.2.4.2.2节,第13段(不是关于浮点的权威,而是机器ε的常见描述的一个示例)。

  • 我有一个关于浮点数的机器ε的天真问题。 我们知道,双浮点数的机器ε约为10^-16,而浮点数的最小严格正值可以小到10^{-300}。既然机器ε是相对误差的上限,那么使用这个比机器ε小得多的数字10^{-300}有什么意义呢? 我一定是误解了浮点表示。你能澄清一下吗?

  • 我如何使程序执行一个新的或重复的操作,或要求用户再次输入一个数字,并知道它的阶乘。

  • 问题内容: 所以, 问题 我对行乘法有问题。在SQL中,有一个函数可以计算一组行中某个字段的总和。我想得到乘法,即表 这将是作为一个结果。我正在使用 DOUBLE 数据类型来存储我的数据值。 我的方法 从学校数学知道,-可以用来创建所需的表达式,例如: -在这里您会看到此方法的弱点-由于何时未定义-我需要在计算整个表达式之前计算负号。该小提琴提供了示例数据和对此的查询。另一个缺点是,我们需要确定列