math - tutorial - ¿Por qué Gnu Octave tiene ceros negativos?
octave tutorial (3)
Esta es una extraña que me deja perpleja. Recientemente me di cuenta en el prompt de Gnu Octave, que es posible ingresar ceros negativos, así:
octave:2> abomination = -0
Y lo recuerda también:
octave:3> abomination
abomination = -0
En interés de la cordura, el cero negativo es igual al cero normal. 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 mediante 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 es importante en ciertos campos de las matemáticas?
FYI: Matlab, cuya octava se modela después, no tiene ceros negativos. Cualquier intento de usarlos se trata como ceros regulares.
EDITAR: Matlab tiene ceros negativos, pero no se muestran en la salida predeterminada.
Los cero firmados son parte de los formatos IEEE-754, y su semántica está completamente especificada por esos formatos. Resultan bastante útiles, especialmente cuando se trata de cortes de ramas complejas y transformaciones del plano complejo (ver muchos de los escritos de W. Kahan sobre el tema para más detalles, como el clásico "Corte de ramas para funciones elementales complejas", o mucho Ado sobre Nothing''s Sign Bit ").
Versión corta: el cero negativo a menudo es bueno tenerlo en los cálculos numéricos, y los programas que intentan proteger a los usuarios de encontrarlo a menudo les hacen un flaco servicio. FWIW, MATLAB parece usar cero negativo también, pero como imprime números usando la rutina printf
del host, muestran lo mismo que cero positivo en Windows.
Consulte esta discusión en los foros de MATLAB para obtener más detalles sobre el cero firmado en MATLAB.
Los números de punto flotante IEEE-754 tienen esta propiedad también. Puede ser útil para los límites y las infinidades. Por ejemplo, el límite de 1 / x con x → + ∞ es 0, pero la función se aproxima desde el lado positivo del eje, con x → -∞ la función se aproxima desde el lado negativo para que uno pueda dar el límite como -0 , en ese caso.
El cero firmado hace eco del concepto de análisis matemático de acercarse a 0 desde abajo como un límite de un lado, que puede denotarse 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 mecánica estadística y otras disciplinas.