Подтвердить что ты не робот

Почему 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

Как видно, знак сохраняется через определенные операции. Но мой вопрос - почему. Это похоже на радикальный отход от стандартной математики, где нуль по существу не имеет знака. Есть ли какие-то привлекательные математические свойства для этого? Это имеет значение в некоторых областях математики?

FYI: Matlab, в котором октава смоделирована, не имеет отрицательных нулей. Любые попытки использовать их рассматриваются как обычные нули.

EDIT: Matlab имеет отрицательные нули, но они не отображаются в выводе по умолчанию.

4b9b3361

Ответ 1

Подписанный ноль является частью форматов IEEE-754, и их семантика полностью определяется этими форматами. Они оказываются весьма полезными, особенно при рассмотрении сложных разрезов ветвей и преобразований комплексной плоскости (см. Многие из работ В. Кахана по этому вопросу для более подробной информации, такие как классические "Отрывки ветвей для сложных элементарных функций" или "Многое" Ado about Nothing Sign Bit ").

Короткая версия: отрицательный ноль часто бывает полезен в числовых вычислениях, а программы, которые пытаются защитить пользователей от их столкновения, часто делают их плохими. FWIW, MATLAB, похоже, тоже использует отрицательный ноль, но поскольку он печатает числа с использованием хоста printf, они отображают то же самое, что и положительный ноль в Windows.

См. это обсуждение на форумах MATLAB для получения более подробной информации о подписанном ноте в MATLAB.

Ответ 2

Номера с плавающей запятой IEEE-754 также обладают этим свойством. Это может пригодиться для пределов и бесконечностей. Например, предел 1/x с x → + & INFIN; 0, но функция приближается с положительной стороны оси, причем x → & Минус; & INFIN; функция приближается с отрицательной стороны, поэтому в этом случае можно дать предел как & min 0.

Ответ 3

Подписанный нуль

Подписанный ноль перекликается с математическим концепция анализа приближения 0 от ниже как односторонний предел, который может обозначим через x → 0-, x → 0- или x → ↑ 0. Обозначение "-0" может быть использовано неофициально обозначить отрицательное число который был округлен до нуля. понятие отрицательного нуля также имеет некоторые теоретических приложений в статистическая механика и другие дисциплин.