Cálculo numérico aplicado
La computadora no calcula con números reales sino con aproximaciones, y esa diferencia tiene consecuencias. Los métodos numéricos resuelven lo que no tiene solución analítica, siempre con un error que hay que saber acotar.
01La computadora no calcula con números reales
Un double guarda 64 bits: un signo, 11 de exponente y 52 de mantisa. Con eso representa
unos 16 dígitos decimales significativos y nada más. Todo lo demás se redondea.
- 0,1 + 0,2 no da 0,3. Da 0,30000000000000004, porque 0,1 no existe exactamente en binario.
Nunca se comparan flotantes con
==: se compara \( |a-b| \lt \varepsilon \). - Cancelación catastrófica. Restar dos números parecidos destruye las cifras significativas: si cada uno tiene 16 dígitos buenos y coinciden en 15, la resta deja uno solo.
- El orden importa. Sumar un millón de números chicos a uno grande pierde los chicos; sumar de menor a mayor conserva más.
El épsilon de máquina es el menor número que sumado a 1 da algo distinto de 1: unos \( 2{,}2 \times 10^{-16} \) en doble precisión. Fija el piso del error relativo de cualquier cuenta.
02Error, convergencia y criterio de corte
| Tipo de error | De dónde viene |
|---|---|
| De redondeo | De la aritmética finita de la máquina |
| De truncamiento | De cortar un proceso infinito: una serie, un límite |
| De los datos | De la medición que entró al cálculo |
Un método converge linealmente si cada paso multiplica el error por una constante, y cuadráticamente si lo eleva al cuadrado: en ese caso los dígitos correctos se duplican en cada iteración. Como casi nunca se conoce la respuesta exacta, el criterio de corte práctico combina tres cosas: que el cambio entre iteraciones sea chico, que el residuo \( |f(x)| \) sea chico, y un tope de iteraciones para no quedarse girando si no converge.
Elegí la función y el método, y avanzá iteración por iteración mirando cómo baja el error.
03Raíces de una ecuación
| Método | Iteración | Convergencia | Requiere |
|---|---|---|---|
| Bisección | \( x_{k+1} = \dfrac{a_k + b_k}{2} \) | Lineal, un bit por paso | Cambio de signo |
| Newton-Raphson | \( x_{k+1} = x_k - \dfrac{f(x_k)}{f'(x_k)} \) | Cuadrática | La derivada |
| Secante | \( x_{k+1} = x_k - f(x_k)\dfrac{x_k - x_{k-1}}{f(x_k) - f(x_{k-1})} \) | Orden 1,618 | Dos puntos iniciales |
| Punto fijo | \( x_{k+1} = g(x_k) \) | Lineal, si \( |g'| \lt 1 \) | Reescribir la ecuación |
La bisección nunca falla si hay cambio de signo, pero es lenta: cada paso gana un bit, así que
hacen falta unas 50 iteraciones para agotar un double. Newton vuela —duplica los dígitos
correctos en cada paso— pero puede irse a cualquier lado si la derivada es chica o el punto inicial está
lejos. En la práctica se combinan: bisección para acercarse, Newton para terminar.
04Las otras tres cuentas que siempre aparecen
Integración numérica
Ajuste por mínimos cuadrados
Para una recta \( y = mx + b \) que pase lo más cerca posible de \( n \) puntos medidos:
Es la cuenta que hay detrás de cada calibración de sensor: se miden pares y se ajusta la recta que convierte cuentas del conversor en unidades físicas.
Sistemas de ecuaciones
Para pocos nodos alcanza la eliminación de Gauss con pivoteo parcial —elegir como pivote el mayor elemento de la columna— que evita dividir por números chicos. Para sistemas grandes y dispersos, como los que salen de una red de resistencias, convienen los métodos iterativos de Jacobi y Gauss-Seidel.
05Dónde aparece en electrónica
- Calibrar un sensor. Mínimos cuadrados sobre los pares medidos.
- Punto de trabajo de un circuito no lineal. Resolver la intersección de la recta de carga con la curva del diodo es exactamente el problema de esta página.
- Simulación. SPICE resuelve en cada paso un sistema no lineal con Newton-Raphson, y avanza en el tiempo integrando numéricamente.
- Filtrado digital. Promedios móviles, filtros de mediana y acumuladores, con cuidado de no perder precisión por el orden de las sumas.
- Microcontroladores sin unidad de punto flotante. Ahí se trabaja en coma fija: más rápido, pero hay que administrar la escala a mano.
06En el laboratorio
Imprimir 0.1 + 0.2 == 0.3, y después el valor con veinte decimales. Calcular el épsilon
de máquina con un bucle que divida por dos hasta que 1 + e == 1.
Resolver \( x^2 = 2 \) por bisección y por Newton, tabulando el error en cada iteración. Graficar el logaritmo del error: la bisección da una recta y Newton, una curva que se desploma.
Medir con un sensor de temperatura y un termómetro patrón diez pares de valores, ajustar la recta por mínimos cuadrados y programar esa conversión en el microcontrolador. Comparar el error antes y después de calibrar.
07Errores frecuentes
- Comparar flotantes con
==. - Restar cantidades parecidas sin darse cuenta de que se pierden cifras.
- Iterar sin tope y quedarse en un bucle infinito cuando el método no converge.
- Usar Newton con un punto inicial cualquiera y terminar en otra raíz, o divergiendo.
- Confundir precisión con exactitud: imprimir quince decimales de un dato medido con dos cifras significativas.
- No verificar el resultado reemplazándolo en la ecuación original.
08Autoevaluación
¿Por qué 0,1 + 0,2 no da exactamente 0,3?
Porque 0,1 y 0,2 no tienen representación binaria finita: se guardan redondeados y el error aparece al sumar.
¿Cuántas iteraciones de bisección hacen falta para ganar tres decimales?
Cada iteración divide el intervalo por dos, así que gana un bit. Para un factor 1000 hacen falta unas 10 iteraciones, porque \( 2^{10} = 1024 \).
¿Qué quiere decir que Newton converge cuadráticamente?
Que el error nuevo es proporcional al cuadrado del anterior: los dígitos correctos se duplican en cada paso. De 2 a 4, de 4 a 8, de 8 a 16.
¿Cuándo falla Newton?
Cuando la derivada es chica o nula cerca del punto, cuando el arranque está lejos, o cuando la función oscila: puede divergir o saltar a otra raíz.
¿Qué error tiene la regla de Simpson frente a la de trapecios?
\( O(h^4) \) contra \( O(h^2) \): al partir el paso a la mitad, el error de Simpson cae 16 veces y el de trapecios, 4.
¿Para qué sirve el pivoteo parcial en la eliminación de Gauss?
Para no dividir por un número muy chico, que amplificaría el error de redondeo. Se elige como pivote el mayor elemento de la columna.
09Para ampliar
- Richard L. Burden y J. Douglas Faires. Análisis numérico. 10.ª ed., Cengage Learning, 2016. El texto estándar de la materia, con algoritmos y análisis de error.
- Steven C. Chapra y Raymond P. Canale. Métodos numéricos para ingenieros. 7.ª ed., McGraw-Hill, 2015. Muy orientado a la aplicación, con código y casos de ingeniería.
- William H. Press y otros. Numerical Recipes. 3.ª ed., Cambridge University Press, 2007. Implementaciones reales, con los comentarios honestos sobre cuándo cada método falla.
- David Goldberg. What Every Computer Scientist Should Know About Floating-Point Arithmetic. ACM Computing Surveys, 1991. El artículo que hay que leer una vez en la vida sobre punto flotante.