Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:30   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 为什么Gnu Octave具有负零?

这是我奇怪的一个奇怪的问题。我最近在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论坛上的讨论



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:14


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.