Pregunta

Esta es una extraña por la que estoy desconcertado. Recientemente me di cuenta en el mensaje de Octave de GNU, es posible ingresar a ceros negativos, como así:

octave:2> abomination = -0

Y también lo recuerda:

octave:3> abomination
abomination = -0

En aras de la cordura, el cero negativo es igual a cero regular. Pero también noté que el signo tiene otros efectos. Como estas:

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

Como se puede ver, el signo se conserva a través de ciertas operaciones. Pero mi pregunta es por qué. Esto parece una desviación radical de las matemáticas estándar, donde cero es esencialmente sin signo. ¿Hay algunas propiedades matemáticas atractivas para tener esto? ¿Esto importa en ciertos campos de matemáticas?

FYI: Matlab, que octava se modela después, no tiene ceros negativos. Cualquier intento de usarlos es tratado como ceros normales.

Editar: MATLAB tiene ceros negativos, pero no se muestran en la salida predeterminada.

¿Fue útil?

Solución

El cero firmados son parte de los formatos IEEE-754, y su semántica está completamente especificada por esos formatos. Resultan ser bastante útiles, especialmente cuando se trata de recortes y transformaciones de ramas complejas del plano complejo (ver muchos de los escritos de W. Kahan sobre el tema para obtener más detalles, como los recortes de ramas clásicas "para funciones elementales complejas, o mucho Ado sobre la señal de nada ").

Versión corta: el cero negativo a menudo es algo bueno tener en cálculos numéricos, y los programas que intentan proteger a los usuarios de encontrarlo a menudo les están perjudicando. FWIW, MATLAB parece usar negativo cero también, pero como imprime números usando el host printf rutina, muestran lo mismo que cero positivo en Windows.

Ver esta discusión en los foros de Matlab para obtener más detalles sobre cero firmado en Matlab.

Otros consejos

Los números de puntos flotantes IEEE-754 también tienen esta propiedad. Puede ser útil para los límites e infinitos. Por ejemplo, el límite de 1/X con X → +∞ es 0, pero la función se acerca desde el lado positivo del eje, con X → −∞ La función se acerca desde el lado negativo, por lo que uno podría dar el límite como −0, en ese caso.

Cero firmado

Cero firmado se hace eco del concepto de análisis matemático de acercarse a 0 desde abajo como un límite unilateral, que puede ser denotado por x → 0−, x → 0− o x → ↑ 0. La notación "−0" puede usarse informalmente para denotar un número negativo que se ha redondeado a cero. El concepto de cero negativo también tiene algunas aplicaciones teóricas en la mecánica estadística y otras disciplinas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top