Este cálculo matemático es una antigualla, ¡pero funciona!
Imprimir

ABC, 12 de Junio de 2017
CIENCIA - El ABCdario de las matemáticas
Luis Rández

Viejas glorias como el lenguaje FORTRAN o el método de Euler han cumplido muchos años sin dejar de dar buenos resultados

Fotograma de «Figuras ocultas»

Fotograma de «Figuras ocultas»

Hace unos meses estuve en el cine viendo la interesante película “Figuras Ocultas” (“Hidden Figures”), cuyo argumento trata sobre tres matemáticas afroamericanas que empezaron trabajando en la NASA como “calculadoras humanas” y acabaron siendo figuras claves en la carrera espacial norteamericana. La primera de ellas fue Katherine Johnson, que fue la persona que calculó las trayectorias para el Proyecto Mercury y el Apolo XI a la Luna. Con sus cálculos, el astronauta John Glenn se convirtió en el primer estadounidense en hacer una órbita completa a la Tierra. Dorothy Vaughan, experta en lenguaje FORTRAN, llegó a ser la primera supervisora de los servicios de IBM y manager de la NASA. Finalmente Mary Jackson consiguió ser la primera ingeniera aeroespacial de la NASA.

En el transcurso de la película, D. Vaughan toma prestado un libro de programación FORTRAN (FORmula TRANslation) de una biblioteca solo para blancos y empieza a estudiarlo de forma autodidacta convirtiéndose prácticamente en la única persona capaz de programar el recién adquirido ordenador IBM 7090 DPS. Inicialmente, este ordenador se programaba con fichas perforadas y la película me recordó que cuando estudiaba la asignatura “Cálculo Numérico” en tercer curso de la carrera de Matemáticas, allá por el año 1983, las prácticas de esta asignatura las hacíamos en FORTRAN 77 con este tipo de fichas y desde la lectura de las fichas hasta la salida de los resultados en papel continuo, que los operadores del Centro de Cálculo colocaban en unas repisas, transcurría como mínimo un día. ¡La misma rapidez que hoy!

La primera versión del lenguaje de programación FORTRAN, que fue desarrollada durante cuatro años por un reducido equipo de personas liderado por John W. Backus (ganador del Premio Turing en 1977 por sus trabajos en sistemas de programación de alto nivel), apareció en 1957 y su objetivo era el cálculo científico para el ordenador IBM 704. Es interesante recordar que el primer compilador optimizado de FORTRAN es uno de los “Top Ten algorithms of the 20th century” (Top 10 de algoritmos del siglo XX’) junto a la Transformada Rápida de Fourier, el método del Simplex, y el de Montecarlo entre otros.

A lo largo de los años ha tenido numerosas revisiones (FORTRAN IV, 66, 77, 90, 95, 2000...) e incluso en la serie “Futurama”, de los mismos creadores de “Los Simpsons”, se le ha rendido un pequeño homenaje a su veteranía, ya que fue el primer lenguaje de programación de alto nivel.

Por otra parte, hay una “leyenda urbana” que asegura que el satélite artificial “MARINER 1” tuvo que ser destruido por el control de la misión, entre otras causas, por un error de programación en el software del sistema de vuelo. Este error se debió a una orden mal escrita, pero sintácticamente correcta que no fue detectada por el compilador de FORTRAN.

Volviendo a la película, para resolver el problema de la reentrada del vehículo espacial, K. Johnson propone utilizar el método de Euler, a lo que Paul Stafford, interpretado por Jim Parsons (“Sheldon Cooper” en The Big Bang Theory) contesta que “¡Eso es antiguo!” a lo que K. Johnson replica “¡Pero funciona! Funciona numéricamente”.

El método de Euler explícito

para la integración numérica de un problema de valor inicial

con paso de integración h suficientemente pequeño, fue utilizado por primera vez por Leonhard Euler en 1768 (E342, Institutionum Calculi Integralis, Cap. VII, §650). Casi 125 años más tarde, en 1895 Carl Runge diseñó nuevos y mejores métodos numéricos que el Euler explícito, y en el libro que sujeta K. Johnson se muestra el método de Euler modificado, también llamado de Runge y descubierto por Gaspard Coriolis en 1837, ¡¡¡casi 60 años antes!!!.

Como integrador numérico, el método de Euler se sigue utilizando en la actualidad en muchos programas y todos los métodos de tipo Runge-Kutta explícitos se basan en él. De hecho, en el videojuego Quake publicado por Id Software el año 1996 se empleaba una variante del método de Euler explícito, llamado Euler particionado, para integrar numéricamente las ecuaciones del movimiento. Se daba la paradoja que si el ordenador era lento (menos de 3 fps) no se podía avanzar en ciertas pantallas debido a que el paso de integración h tomado por el juego era “demasiado grande”. Para ilustrar este punto, muchos desarrolladores de juegos aplican el método de Euler particionado a las ecuaciones del movimiento bajo la acción de un campo gravitatorio como

Por ejemplo, si tomamos un valor de la aceleración de la gravedad de 5 m/s2 y valores iniciales para la velocidad de 3m/s y posición de 0 m, obtenemos las siguientes gráficas con distintos pasos de integración

Puede apreciarse que si hay que rebasar en una pantalla del juego un muro con una altura de 2 m, no sería posible efectuarlo con paso de integración h=0.32. Obviamente, hay métodos de integración numérica, también sencillos, que evitan este tipo de problemas.

Vemos que un resultado obtenido por Euler hace 250 años y que por su edad se podría pensar que es una antigualla sigue de plena actualidad…. como pasa con tantos otros resultados matemáticos.

El ABCDARIO DE LAS MATEMÁTICAS es una sección que surge de la colaboración con la Comisión de Divulgación de la Real Sociedad Matemática Española (RSME).

 
Volver