簡體   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