繁体   English   中英

为什么Gnu Octave具有负零?

[英]Why does Gnu Octave have negative zeroes?

这是我奇怪的一个奇怪的问题。 我最近在Gnu Octave提示中注意到,可以输入负零,如下所示:

octave:2> abomination = -0

它也记得它:

octave:3> abomination
abomination = -0

为了理智,负零等于正零。 但我也注意到该标志还有其他作用。 像这些:

octave:6> 4 * 0
ans = 0
octave:7> 4 * -0
ans = -0
octave:8> 4 / 0
warning: division by zero
ans = Inf
octave:9> 4 / -0
warning: division by zero
ans = -Inf

可以看到,该标志通过某些操作得以保留。 但是我的问题是为什么。 这似乎与标准数学完全不同,在标准数学中,零基本上没有符号。 有一些吸引人的数学性质吗? 在某些数学领域这很重要吗?

仅供参考:以倍频建模的Matlab没有负零。 任何使用它们的尝试都将被视为常规零。

编辑:Matlab确实有负零,但它们不会显示在默认输出中。

带符号的零是IEEE-754格式的一部分,它们的语义完全由这些格式指定。 事实证明,它们非常有用,尤其是在处理复杂的分支切割和复杂平面的转换时(有关更多详细信息,请参阅W. Kahan关于该主题的许多著作,例如经典的《复杂基本功能的分支切割》或《知道什么都没有的迹象”。

简短版:负零在数值计算中通常是一件好事,而试图保护用户免受其侵扰的程序通常会对他们造成伤害。 FWIW,MATLAB似乎也使用负零,但是由于它使用主机的printf例程打印数字,因此它们在Windows上显示与正零相同。

有关MATLAB中有符号零的更多详细信息,请参见MATLAB论坛上的讨论

IEEE-754浮点数也具有此属性。 对于限制和无限性可能会派上用场。 例如,极限的1 / x,其中x→+∞是0,但该功能从轴的正侧接近,其中x→-∞函数从负侧接近这样一个可能会给极限-0 , 在这种情况下。

签名零

有符号的零呼应数学分析的概念,即从下面接近0作为一个单边极限,可以用x→0−,x→0−或x→↑0表示。 可以非正式地使用符号“ -0”来表示已舍入为零的负数。 负零的概念在统计力学和其他学科中也有一些理论应用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM