lunes, diciembre 18, 2006

Simulaciones y modelos informáticos

Hace algunos días, leí una noticia en la que se afirmaba de forma sensacionalista, que el hielo del Ártico se va a derretir por completo en el año 2040. Veo que Malaprensa se me ha adelantado (saludos Josu) y ha puesto de manifiesto la poca relación entre los exagerados titulares y la realidad. Yo iré un poco más allá diciendo que cualquier predicción climática hecha a tan largo plazo, debe de tomarse con muchas precauciones. Y el motivo es muy sencillo: no conocemos aún lo suficiente las leyes que rigen el clima, y hay incontables variables a tener en cuenta. Aún así, se publican en ocasiones noticias que afirman como algo cierto y demostrado, predicciones que pueden llegar a tener un margen enorme de error. Y en la mayoría de ellas aparecen unas palabras mágicas: “simulación con ordenadores” (y si se quiere dar más importancia, “con superordenadores”)

La mayoría de la gente olvida (o ignora) que un ordenador, por muy potente que sea, no es más que una herramienta que nos permite hacer un elevadísimo número de operaciones matemáticas por segundo, y manejar una enorma cantidad de datos. Esto nos permite realizar cálculos que de otra manera podría llevar años a un enorme grupo de personas dedicadas exclusivamente a ello. Pero sólo nos permite eso. Si los algoritmos matemáticos utilizados no son correctos, o los datos iniciales son erróneos, el resultado no nos sirve.

Para ilustrar esto pondré un ejemplo sencillo. Hace unos meses, os hablé sobre el problema de los tres cuerpos y el análisis numérico. Con un ordenador y el software adecuado, se puede realizar una simulación del movimiento de los planetas, sin más que implementar correctamente la conocida Ley de Gravitación Universal de Newton y las Tres Leyes de Newton de la mecánica clásica, e introducir las masas de los planetas, así como sus posiciones y velocidades en un instante de tiempo determinado.

Fácil ¿verdad? Bien, pensad en qué ocurriría si nos olvidamos, de Neptuno en nuestro modelo. El movimiento real de Urano no coincidiría con el previsto, pues no tendríamos en cuenta la gravedad de Neptuno. De hecho, fue así como se dedujo la existencia de este planeta, como comenté hace tiempo. Por otro lado este modelo es demasiado simple. Deberíamos tener en cuenta los satélites de cada planeta, ya que producen perturbaciones en los cuerpos que orbitan. Nuestra Tierra, por ejemplo, oscila levemente en torno al centro de masas del sistema Tierra-Luna. Así que hay que realizar más mediciones para obtener los datos (masa, posición y velocidad) de todos los satélites. Ya puestos, habría que tener en cuenta planetas menores, asteroides, cometas, y un gran número de objetos, ya que igualmente afectan nuestro sistema.

Una vez hecho esto, la simulación seguiría teniendo alguna diferencia con respecto a la realidad, ya que todos los cuerpos tienen volumen. Supongo que todos sabéis también que las mareas se producen por eso. La cara de la Tierra que esté mirando a la Luna, es atraída con más fuerza por ésta, que la cara opuesta. Así que en nuestra simulación, deberíamos dividir cada objeto en “porciones” (cuantas más, mejor), y tratar por separado la interacción de cada porción. Como veis, partiendo de unas fórmulas muy simples, la cosa se va complicando cada vez más.

Si incluyéramos todos los datos de todos los cuerpos observables de nuestro Sistema Solar, veríamos que aún así hay diferencias con la realidad. El movimiento de Mercurio sería diferente al previsto. ¿Por qué? Pues porque las Leyes de Newton no son suficiente. La órbita de Mercurio sufre una precesión mayor de la prevista por la mecánica clásica, y que sólo puede ser explicada por la Relatividad General de Einstein. Por tanto, nuestro modelo informático es erróneo.

Como veis, algo aparentemente sencillo como un sistema planetario, se convierte en algo muy complicado de modelar con exactitud. Uno podría tener la tentación de obviar la física subyacente, y utilizar un modelo empírico. Es decir, en vez de utilizar las leyes físicas en nuestro modelo, utilizaríamos datos obtenidos a través de observaciones realizadas durante años y años, puesto que sabemos que el movimiento de cada cuerpo es cíclico y repetitivo. De hecho, seguro que muchos programas astronómicos de ámbito doméstico, utilizan esta aproximación. Parece obvio que si lo hacemos así, nuestro modelo no contemplará “desviaciones de la norma”, como por ejemplo, que un cometa se acerce demasiado a un planeta, alterando su trayectoria.

En este ejemplo, los pequeños errores de partida no son problema, pues nos encontramos ante un sistema bastante estable. Las discrepancias entre la posición observada y la prevista, sólo serían apreciables en periodos de tiempo muy grandes. No ocurriría así en un sistema caótico. ¿Qué es un sistema caótico? Pues es un sistema en el que pequeñas variaciones en las condiciones iniciales, se traducen en grandes variaciones en el resultado final. Supongo que todos habréis oído hablar del famoso efecto mariposa. Ya sabéis, eso de “el batir de las alas de una mariposa en Hong Kong, puede producir una tormenta en Nueva York”. Por supuesto, no hay que tomarse la frase al pie de la letra. La mariposas no producen tormentas (como bien explica Remo en CPI), pero la metáfora da una idea de lo que es un sistema caotico.

Un ejemplo de un sistema caótico podría ser el lanzamiento de unos dados. Si lanzáis unos dados varias veces, aunque los cojáis siempre de la misma forma, en la misma postura, e intentéis realizar siempre el mismo movimiento con la mano, caerán de forma diferente. Una pequeña variación casi inapreciable en la fuerza de lanzamiento o en la altura, produce un resultado final completamente diferente.

Pues bien, todo lo que hemos comentado se nos junta en cualquier modelo informático que hagamos del clima. No conocemos todas las leyes físicas que lo rigen. No conocemos todas las relaciones entre ellas. No conocemos todos los datos iniciales. Y encima, es un sistema caótico. A día de hoy, la ciencia es capaz de predecir con cierta exactitud el clima, hasta unos días en el futuro. Y aun así, a veces ocurren errores. Imaginad una predicción de varios años o décadas.

Todo esto no quiere decir que una simulación por ordenador sea inútil. No, claro que no. Es la única forma de realizar predicciones, dados los complejos modelos matemáticos y la inmensa cantidad de datos que definen el estado inicial del sistema. Y en ciencia, la única forma de comprobar la validez de una teoría, es realizar predicciones, y comprobar si éstas se cumplen. Si no se cumplen, el modelo es erróneo. Si se cumplen, puede que sea correcto (y fijáos que he dicho “puede”, ya que una teoría científica nunca puede ser demostrada completamente, sólo rebatida, o corroborada). En el caso de la climatología, las teorías y modelos aún están en pañales, y necesitan ser corroborados por la observación del mundo real. Y para eso necesitamos mucho tiempo, ya que una predicción para dentro de, por ejemplo, 10 años, sólo podemos comprobar si es correcta, transcurridos esos 10 años.