Ensayo: “ La computadora me mintió, así que le di una paliza con las matemáticas “.
Esta no es una respuesta matemáticamente intensa. Está destinado principalmente para el beneficio de aquellos que intentan resolver el problema numéricamente con una calculadora gráfica o un sistema de gama baja. Otros contribuyentes a esta página han explicado muy bien las matemáticas. No tengo mejoras para ofrecer en ese puntaje.
El problema también es interesante desde la perspectiva de la informática y el comportamiento del usuario porque demuestra las limitaciones de las matemáticas de coma flotante en el cálculo numérico por computadora y cómo esto a veces puede entrar en conflicto con la realidad matemática.
__________________________________________________________
- Cómo probar f (x) = x ^ 2 si f (x / y) = f (x) / f (y), f (y) no es igual a cero y f ‘(1) = 2
- Cómo determinar el polinomio de Taylor del grado 2 de la función [matemáticas] g (x, y) = (x ^ 2 + y) e ^ {xy} [/ matemáticas] en desarrollo en el punto [matemáticas] (x_0, y_0) = ( 1, -2) [/ matemáticas]
- ¿Por qué d (lnx) / dx = 1 / x? ¿Por qué la derivada de lnx es 1 / x?
- ¿Qué se entiende por self-dual en álgebra booleana?
- Cómo simplificar la expresión sqrt (4x ^ 2)
Los científicos informáticos desde Konrad Zuse (c. 1938) hasta el presente han reconocido que la naturaleza abstracta del sistema de números reales es un desafío para modelar con lenguaje de máquina: bits que están en estado ON (1) u OFF (0). Todos los enfoques probados hasta ahora han tenido limitaciones y compensaciones.
Varias décadas atrás, hubo un episodio tortuoso dentro de la naciente industria de la informática para establecer un modelo estándar. Hubiera sido divertido observar los giros humanos, porque hubo mucho debate y compromiso frenéticos. Eventualmente hubo una resolución, pero casi todos encontraron algún fallo en ella. Después de varios ciclos de revisión, ese estándar ahora se conoce como el Estándar IEEE 2008 para Aritmética de coma flotante, también conocido como IEEE 754. Hoy en día, es parte del diseño de casi todos los microprocesadores y sistemas operativos que se utilizan comercialmente. Si bien es práctico para la mayoría de los propósitos del mundo real donde solo importan unos pocos puntos decimales, cuando se trata del sistema de números reales, muestra rápidamente limitaciones conceptuales, especialmente cuando su implementación está restringida por la precisión de salida específica de la plataforma, como lo haremos ver. Para obtener información técnica, consulte, por ejemplo, el estándar 754 de punto flotante IEEE.
Con esto como fondo, supongamos que nos proponemos resolver este problema matemático. Es evidente de inmediato que el problema no puede resolverse algebraicamente. (Siga adelante e intente, pero si cree que [math] \ log {(a + b)} = \ log {a} + \ log {b} [/ math] es una identidad válida, es un buen candidato para algunas matemáticas correctivas.) Las leyes de exponentes y logaritmos simplemente no lo permiten.
Si postulamos la existencia de soluciones reales basadas en la inspección gráfica, nuestra posición alternativa es resolverla numéricamente. Y tenemos varios buenos métodos para hacerlo: expansiones de Newton-Raphson, Taylor, etc. Reconocemos de antemano que nuestros métodos numéricos pueden llevarnos a un resultado aproximado que aceptamos como la mejor representación de la realidad matemática.
A continuación, enlistamos el viejo iCompute o nuestra nueva calculadora gráfica en el esfuerzo por realizar el laborioso cálculo de números que tenemos ante nosotros. Hasta ahora no hemos hecho mucho análisis matemático, pero estamos listos para iniciar nuestro amigo electrónico, abrir el CAS, ingresar los parámetros necesarios en el Solver y ver a dónde nos lleva. Lo que nos lleva a esta peculiar ecuación.
¿Notaste algo mal? Probablemente no. Al ser casi ajeno al comportamiento matemático de la función, no nos damos cuenta de que existe una raíz positiva real, posiblemente irracional, que se ve fácilmente oscurecida por la imprecisión de la máquina. Específicamente, nos engañamos al concluir que el entero 8 es una solución debido a lo que observamos en la pantalla de salida.
Confía en mí, el número entero 8 no es una solución, y tu profesor de física de primer año no te cegó con la ciencia, aunque el entorno de aprendizaje puede haber tenido algunas distracciones.
Para los propósitos actuales, supongamos que estamos temporalmente afectados por la visión del túnel provocada por la ingenuidad. Nuestra falacia no se revelará a menos que examinemos cómo la unidad de lógica aritmética de nuestro microprocesador rinde almacenamiento y salida IEEE 754 con una configuración de precisión dada en nuestro CAS o calculadora.
Analíticamente, debería ser obvio que la función se evalúa como [matemática] −6 [/ matemática], no [matemática] 0 [/ matemática], en [matemática] x = 8 [/ matemática]. Entonces, ¿qué está causando los retornos infelices? Este es un caso en el que la función está mal condicionada en la vecindad de [math] x = 8 [/ math] porque la primera derivada está divergiendo rápidamente al infinito al aumentar [math] x [/ math]. Un pequeño cambio infinitesimal en la variable independiente [math] x [/ math] provoca un cambio descomunal en el valor de la función. Sin compensar el número de condición de la función, las limitaciones de la aritmética de coma flotante de la máquina devolverán una solución falsa que se presenta en la salida como un número entero pero que no posee el almacenamiento interno o el atributo matemático de “Entero”. A nivel de la máquina, la salida simplemente se trunca y luego se enmascara para su visualización. En otras palabras, el viejo iCompute está mintiendo.
Mirando más de cerca la función, parece estar “bien comportada” en el sentido matemático. Se define, tiene un valor real, es continuo y diferenciable a cualquier orden para todos los [math] x [/ math] reales. No hay singularidades, no hay división entre [matemáticas] 0 [/ matemáticas], ni siquiera raíces o logaritmos de números negativos. No pasa nada sinusoidal o periódico.
Es difícil escalar un diagrama gráfico de la función sin ocultar algunos de los cambios e inflexiones de los signos. Esencialmente, corta una curva empinada en forma de U a través del cuarto cuadrante entre [matemática] x = 0 [/ matemática] y [matemática] x = 8 [/ matemática]. Alrededor de [matemática] x \ aprox 7.9215 [/ matemática], la primera derivada se vuelve positiva, que es el mínimo local de la función. La función se evalúa como [matemática] f (x) \ aprox-8.5254 \ cdot10 ^ {29} [/ matemática] en este punto. La segunda derivada se vuelve positiva en [matemáticas] x \ aprox7.8426 [/ matemáticas]. Este es un punto de inflexión en la función donde se vuelve “cóncavo” por última vez. Por lo tanto, en un intervalo estrecho en el dominio cerca del número entero [matemáticas] x = 8 [/ matemáticas], observamos que la función y sus dos primeras derivadas divergen rápidamente al infinito positivo. Pero no hay asíntotas verticales; la función y sus derivados existen para todos los [math] x [/ math] reales.
Y esta es la fuente de la peculiaridad; En muy poco tiempo, la función vuelve a cero y va casi hacia arriba. Simplemente sucede que hace un sobrevuelo imperceptiblemente cercano al número entero [math] x = 8 [/ math] mientras se dirige al infinito. El fallo cercano es tan minúsculo que, a menos que sea consciente de ello de antemano, el viejo iCompute o su calculadora gráfica lo traicionarán, como demostraré ahora.
Por ejemplo, el ya obsoleto Derive 6.1 CAS (Texas Instruments) puede localizar (dentro de los límites) la raíz real positiva cerca de 8 utilizando su algoritmo interno Householder solo si está preconfigurado con la configuración requerida. Aquí está el resultado a 59 decimales y luego nuevamente a 58 decimales:
Observe la diferencia en la salida entre la línea # 7 y la línea # 11. El mal acondicionamiento en este caso requiere una configuración de precisión inusualmente alta para dilucidar la raíz Not-An-Integer. Tenga en cuenta que solo comienza a revelarse en el marcador de posición para [math] 10 ^ {- 31} [/ math]. En este sistema basado en Windows, cualquier ajuste de precisión menor que [math] 2 \ cdot30–1 = 59 [/ math] puede engañar a un usuario ingenuo al pensar que hay una buena solución entera cuando realmente no la hay.
La captura de pantalla anterior cerca del comienzo de este ensayo es de una computadora de mano TI-nspire CX CAS de Texas Instruments. El poder de búsqueda de raíz de este dispositivo es limitado porque solo permite la precisión de coma flotante a doce decimales, por lo que previsiblemente, su función [matemática] Resolver () [/ matemática] es ciega a las raíces en este orden de magnitud. Simplemente devuelve un entero falso 8 sin avisar al usuario sobre las restricciones en su arquitectura. El problema no es un error: el problema es la precisión intencionalmente limitada en el diseño e implementación de la máquina. Por supuesto, Texas Instruments argumentaría que obtienes lo que pagas, y esa es toda la precisión que puedes obtener por $ 175. Y ese sería un punto válido: más precisión cuesta más dinero.
Aún así, no querrá ser visto afirmando dogmáticamente que hay una solución entera para esta ecuación, especialmente en torno a matemáticos, físicos e ingenieros expertos. Lo llamamos un CLM (es decir, movimiento de limitación de carrera).
Pruebe el experimento con su computadora o calculadora usando diferentes configuraciones de precisión para ver si el carácter No-Entero de la raíz se revela. Si tu computadora te miente, ¡dale un puntapié a las matemáticas!