En 2019 celebramos el centenario de la histórica observación de un eclipse total de Sol, liderada por Sir Arthur Eddington y que permitió la primera confirmación experimental de las predicciones de la teoría general de la relatividad. El primer día de ese mismo año, una nave espacial, la sonda New Horizons, sobrevoló el cuerpo astronómico más remoto fotografiado por nuestra especie, el objeto transneptuniano (486958) Arrokoth; la misma sonda, cinco años antes, había pasado "rozando" la superficie de Plutón, enviándonos imágenes inesperadas de un mundo sorprendente. Muy lejos de allí, y también en 2019, dos naves espaciales, una japonesa, la sonda Hayabusa 2 y la otra estaudinense, OSIRIS-REx, transmitieron imágenes impactantes desde la superficie de dos pequeños asteroides cercanos a la Tierra, cuerpos que visitaron con el objeto de traer muestras a la Tierra. Lo que aprendamos de esas muestras podría ayudarnos a evitar un impacto catastrófico futuro.
Todas estas hazañas de exploración y conocimiento fueron posibles, entre otras, gracias a la Mecánica Celeste. Esta disciplina científica, combinación asombrosa de astronomía, física y matemáticas, comenzó con el trabajo teórico pionero de Johanes Kepler a principios de los 1600$^1$(03.00.00.00.Introduccion.html#introduccion) haremos claridad sobre la nomenlatura usada en el libro para referirnos a los siglos y decenios.]; se estableció con la obra cumbre de Sir Isaac Newton, los Principios Matemáticos de la Filosofía Natural (Newton, 1780), publicada a finales de los 1600; y alcanzó su apogeo entre los 1700 y los 1800 con los trabajos de matemáticos y astrónomos como Edmund Halley, Leonhard Euler, Pierre-Simon Laplace, Joseph-Louis Lagrange, William Rowan Hamilton y Henri Poincaré (entre muchos otros que mencionaremos en este libro).
Este libro presenta una visión panorámica de la mecánica celeste y en general de la mecánica analítica o mecánica clásica, que se desarrollo de forma paralela a la primera, inspirada, en muchos casos, por sus problemas. El texto esta dirigido especialmente a quiénes, por su formación o trabajo, están interesados en la aplicación de la mecánica celeste en astronomía o en ingeniería aeroespacial. Su extensión, énfasis y nivel de profundidad lo hace especialmente adecuado para estudiantes de pregrado (licenciatura o bachillerato, dependiendo del país) de cualquier programa científico o técnico, especialmente astronomía, física o ingeniería aeroespacial. Su enfoque computacional, lo podría hacer, además, útil como material de referencia para profesionales de estas disciplinas.
Al escribir este libro, no pretendo hacer un compendio exhaustivo de los problemas de la Mecánica Celeste, que, durante más de 400 años de historia se ha convertido en una disciplina científica basta y en constante desarrollo.
Muchos textos en la materia han sido escritos desde los tiempos de Newton, la mayoría en las últimas décadas. Algunos presentan detallados y rigurosos desarrollos matemáticos. Otros están orientados específicamente al Sistema Solar o al movimiento de satélites y vehículos espaciales. Muchos más son buenos libros de texto, la mayoría dirigidos a estudiantes de posgrado (la mecánica celeste es considerada una línea de profundización, tanto en física como en astronomía.) También se han escrito algunos libros divulgativos y al alcance de aficionados.
La bibliografía de este libro recoge apenas una muestra de referencias en la materia, que serán citados a lo largo de sus capítulos, y que, de antemano, invito a los lectores a explorar con curiosidad para no quedarse con la punta de el inmenso iceberg que apenas alcanzará a asomarse en estas páginas.
Siendo este el caso ¿para qué escribir un libro más de mecánica celeste? Existen dos razones fundamentales que me motivaron a emprender esta aventura.
La primera es que, como mencione antes, la mayoría de los libros de mecánica celeste están dirigidos a estudiantes con una formación media o avanzada en matemáticas, mecánica newtoniana y mecánica analítica. Como se acostumbra decir, tienen un nivel de posgrado. En contraste, el número de textos al "alcance" de estudiantes de los primeros años universitarios, no es muy grande. Escribo este libro para contribuir a enriquecer precisamente ese "nicho".
Podría argumentarse que la mecánica celeste, como aplicación específica de la mecánica, es un tema especializado y de allí que sus textos estén dirigidos a estudiantes más avanzados. Sin embargo, la importancia de esta disciplina en la historia de la astronomía y de la física, así como su potencial para describir fenómenos fascinantes, desde el movimiento de planetas y naves espaciales, hasta la colisión de agujeros negros, hace de la mecánica celeste un medio educativo excelente para introducir conceptos teóricos en física y astronomía, que, sin un contexto y motivación apropiado, son difíciles de digerir.
Un buen libro de mecánica celeste o mecánica analítica, sin importar su nivel, debería poder ser estudiado por cualquier estudiante, incluso de pregrado. Esa ha sido la premisa en muchos centros académicos. Pero la realidad es más compleja. Como cualquier profesor sensible sabe, para valorar realmente los logros intelectuales del pasado, entender las motivaciones que llevaron a los padres de una disciplina a introducir hipótesis o formular las leyes de la misma, se necesita experiencia académica. Experiencia que la mayoría de los estudiantes de pregrado no tienen. No es solo un problema de nivel matemático, es también un problema de falta de exposición a la ciencia.
Este libro, pretende ser un buen primer libro de mecánica celeste, pero también de mecánica analítica, como explicaremos más adelante. Un primer escalón para abordar, ya con experiencia, libros más avanzados.
La segunda razón, y la original para mi como profesor del pregrado de Astronomía en la Universidad de Antioquia, fue la necesidad de escribir un texto de mecánica celeste que permitierá además una formación en los principios y métodos de la mecánica analítica (mecánica teórica o mecánica clásica). Esos principios y métodos son instrumentales en la formulación de la mecánica cuántica y lo son además en versiones modernas de otras áreas de la física clásica, como la relatividad, la electrodinámica e incluso la óptica. La mecánica analítica es indispensable entonces en la formación de cualquier estudiante de ciencias físicas.
En la inmensa mayoría de los textos clásicos de mecánica celeste, los resultados se derivan usando, casi exclusivamente, los métodos de lo que llamaremos aquí el formalismo vectorial o geométrico de la mecánica. En este formalismo (originalmente introducido por Newton y desarrollado posteriormente por Euler) las fuerzas juegan el papel central en la descripción de la dinámica (dime cuánto te halan y te diré cómo te mueves.)
Desde los trabajos pioneros de matemáticos y "físicos" de los 1700 y 1800, tales como Alambert, Lagrange, Hamilton y Jacobi, se hizo evidente que algunos problemas complejos de mecánica celeste podían abordarse usando un formalismo analítico o escalar de la mecánica. En este formalismo, los sistemas se describen usando funciones tales como el Lagrangiano o el Hamiltoniano, que contienen toda la información relevante del sistema, sus restricciones y simetrías (dime cuál es tu hamiltoniano y no solo te diré para dónde vas sino también cómo eres.)
Un caso ilustrativo, muy popular y reciente, de como el formalismo analítico de la mecánica es aplicado hoy, de forma generalizada, en mecánica celeste, es la "predicción" de un nuevo planeta en el Sistema Solar, más allá del cinturón de Kuiper, cuya existencia, a la fecha, no se ha confirmado, ni rechazado (Batygin & Brown, 2016). Este trabajo también es la punta de un inmenso "iceberg" de literatura científica en mecánica celeste en la que el formalismo analítico es protagonista.
Más allá entonces de la necesidad práctica de juntar a la mecánica celeste y a la mecánica analítica en un mismo texto, de modo que sirva a estudiantes de programas académicos como astronomía o ingeniería aeroespacial, este libro presenta este particular "matrimonio" entre dos disciplinas clásicas de la astronomía y la física como lo que es: una relación estrecha entre dos cuerpos de conocimiento inseparables.
Un ingrediente adicional hace a este libro diferente. Me refiero al enfásis especial que daremos a los algoritmos de la mecánica celeste a través de todo el libro.
Es un hecho reconocido que la complejidad de muchos problemas de mecánica celeste, en particular aquellos con un interés práctico tales como el diseño de trayectorias de vehículos espaciales, la predicción de la posición precisa de asteroides y cometas que pueden amenazar nuestro planeta o la predicción a largo plazo de la posición de los cuerpos del sistema solar y otros sistema planetarios, ha exigido, casi desde los tiempos de Kepler, el desarrollo y aplicación de métodos numéricos y, más recientemente, su implementación en calculadores y computadores.
En este sentido, la relación de la mecánica celeste con algoritmos de toda clase, no es comparable con la relación, principalmente utilitaria, que tienen la mayoría de las área de la física con la computación. Podría decirse, que hoy, es casi impensable saber de mecánica celeste, sin estar familiarizado también con sus algoritmos.
Pensando en esto, todo el contenido del libro ha sido elaborado usando libretas o notebooks del Proyecto Jupyter
. Estas libretas pueden ser obtenidas y usadas por el lector para interactuar con y modificar los algoritmos (el material electrónico esta disponible en el sitio en línea del libro). Estos medios tecnológicos permiten además aprovechar gráficos interactivos y animaciones para entender mejor conceptos que pueden ser difíciles.
En la versión impresa, los algoritmos se presentarán en cajas especiales de texto como esta:
import math
e=0.3
M=0.5
E=M
Eo=2*M
while abs(E-Eo)>0.01:
Eo=E
E=M+e*math.sin(E)
print("E = ",E)
¿Puede el lector adivinar qué hace este algoritmo?. Si no lo hace, espero que sepa en qué lenguaje de programación está escrito.
Es casi imposible escribir un libro con algoritmos sin comprometerse con un lenguaje de programación específico (especialmente si queremos que los algoritmos funcionen.) En el caso de esta edición del libro, el lenguaje elegido es Python
.
Esta siempre será una apuesta arriesgada. Aunque la mecánica celeste y sus algoritmos no pasarán de "moda", los lenguajes de programación "van y vienen". Es un hecho (poco reconocido) que cientos de libros científicos acumulan polvo por haber comprometido su contenido con lenguajes de programación que hoy no son tan populares (BASIC
o Pascal
por ejemplo).
No sabemos si Python
y este libro sufrirán a la larga la misma suerte. Pero hay tres hechos que sugieren que la popularidad de este lenguaje podría durar más de lo esperado (o al menos esa es mi esperanza).
El primero es que su sintaxis es muy similar a la del "lenguaje natural". Considere, por ejemplo, el algoritmo presentado antes (que ya lo sabe, esta escrito en Python
) o el siguiente algoritmo, aún más simple:
from math import pi
for n in range(1,5):
print("pi a la",n,"es",pi**n)
Es difícil que estos algoritmos se escriban de manera tan natural en casi cualquier otro lenguaje de programación popular en ciencia (C
, FORTRAN
o Java
) como se pueden escribir en Python
. Este hecho, no solo facilita el aprendizaje del lenguaje, sino también la legibilidad de los algoritmos.
El segundo hecho que demuestra el promisorio futuro de Python
como lenguaje de la computación científica, es la creciente cantidad paquetes, en todas las disciplinas de la ciencia y la técnica, que se escriben permanentemente en este lenguaje y que están disponibles en repositorios públicos. Además, herramientas informáticas muy conocidas (bibliotecas de rutinas, bases de datos, sistemas de información, etc.) escritas originalmente en otros lenguajes, han sido ahora traducidas a Python
(pythonizadas si quieren) con el único propósito de que puedan ser usadas por la creciente comunidad de desarrolladores en este lenguaje.
Python
se esta convirtiendo, y esta es una conjetura mía, en depositario de décadas de experiencia en ciencia computacional. ¿Cambiará esta tendencia pronto? Lo dudo (o al menos así lo espero, por el bien de este libro).
Una última razón, pero no por ello, menos importante, para elegir Python
como el idioma oficial de los algoritmos en este libro es la existencia de una biblioteca gráfica, robusta y bien documentada, escrita para este lenguaje. Me refiero por supuesto a matplotlib
.
Con la excepción de paquetes científicos que incluyen avanzadas facilidades de graficación, tales como Mathematica
, Matlab
, o IDL
(todos ellos sujetos a algún tipo de pago), la mayoría de los lenguajes de programación dependen, a veces, de complejas bibliotecas gráficas o programas de terceros para hacer, hasta los más sencillos gráficos.
En Python
, hacer un gráfico elemental, es tan simple como escribir:
%matplotlib inline
from matplotlib.pyplot import plot
plot([1,2,3,4],[1,4,9,16]);
SPICE
¶Con el temor de haberlos aburrido ya suficiente con este largo prefacio, no puedo dejar de mencionar aquí, una última herramienta que será protagonista en este libro. Se trata de SPICE
, una aplicación desarrollado para la NASA's Navigation and Ancillary Information Facility (NAIF).
SPICE
es un sistema de informacióm de uso libre, formado basicamente por una biblioteca de rutinas para realizar cálculos en mecánica celeste y de datos (kernels) que permiten, usando esas mismas rutinas, la determinación de la posición y orientación precisa (pasada y futura) de muchos cuerpos del Sistema Solar y de algunos vehículos espaciales lanzados por nuestra especie.
Esta herramienta ha cobrado, en años recientes, una popularidad significativa en la comunidad académica. Sus rutinas y kernels están detrás de algunas de los servicios en línea más populares de NASA, tales como el sistema NASA Horizons, que permite, a través de distintas interfaces, calcular la posición pasada y futura de cuerpos del sistema solar y naves espaciales; o del simulador NASA's Eyes que ofrece vistas en tiempo real de la posición de los cuerpos del sistema solar y de misiones espaciales de la agencia espacial estadounidense.
En este libro usaremos las rutinas y kernels de SPICE
(a través de la biblioteca spiceypy
, desarrollada en Python
) para ilustrar conceptos, desarrollar ejemplos y resolver problemas que, de otro modo, implicarían un gran esfuerzo algorítmico (el objetivo será no reinventar la rueda redonda.)
Al hacerlo, además, el lector, sin importar su nivel, se familiarizará con una herramienta que usan astrónomos e ingenieros aeroespaciales para resolver problemas reales de mecánica celeste. ¡De la teoría a la acción!
De la misma manera como nos preguntamos en el caso de Python
, nos formulamos la siguienete pregunta: ¿podría SPICE
desaparecer o, mejor, ser reemplazada por un sistema diferente en los próximos años? No podemos asegurarlo, pero la cantidad de herramientas que hoy dependen de este sistema de información, hace dificil suponer que podría cambiar radicalmente en el futuro inmediato.
Un último aspecto hace de SPICE
una opción muy estable para los propósitos de un libro de texto. La biblioteca de rutinas asociada con el sistema esta disponible para un amplio conjunto de lenguajes de programación diferentes a Python
. Familiarizarse con las rutinas y kernels de SPICE
aquí, será suficiente para que pueda usarlo con lenguajes como C/C++
, FORTRAN
e IDL
.
A continuación, y a modo de ilustración, presento un algoritmo, escrito con SPICE
, para calcular la distancia de la Tierra al Sol durante el eclipse total de Sol del 29 de maryo de 1919 en el que se obtuvieron las primeras evidencias empíricas de la relatividad general y con el que abrimos este prefacio. Naturalmente, este algoritmo es mucho más complejo (y menos natural) que los que escribí antes, pero ilustra el poder de esta herramienta para obtener resultados interesantes con muy poco esfuerzo computacional.
import spiceypy as spy
spy.furnsh('pymcel/data/naif0012.tls')
spy.furnsh('pymcel/data/de430.bsp')
et=spy.str2et("05/29/1919 09:08:00 UTC-3")
sol,tluz=spy.spkgeo(10,et,"J2000",0)
tierra,tluz=spy.spkgeo(399,et,"J2000",0)
distancia=spy.vnorm(tierra-sol)
Para resumir, enumero a continuación las 10 cosas que hacen de este un libro distinto de los muchos que se han escrito en casi 400 años de historia de la mecánica celeste. Este decálogo, como la mayor parte de este prefacio, es, además de una descripción abreviada de las características únicas del libro, una lista de razones que justifican la existencia de un libro más en el "basto océano" de literatura en la materia.
¿Ya les mencione que es un libro para estudiantes de pregrado? Para entender su contenido no es necesario haber visto previamente un curso de mecánica analítica o matemáticas especiales. Solo se necesita una fundamentación mínima en geometría, cálculo y física.
El libro ha sido escrito, en la medida de las posibilidades, para ser autocontenido. Todo lo que un lector necesita saber de los fundamentos matemáticos (geometría, cálculo vectorial, ecuaciones diferenciales), los fundamentos físicos (mecánica newtoniana), astronómicos o de computación, ha sido incluído en los capítulos o en apéndices. Esto hace del libro, un texto que puede ser leído o estudiado por personas ajenas a la disciplina, incluso por aficionados.
El libro utiliza, como la mayoría de los textos en el área, el formalismo geométrico y vectorial de la mecánica para presentar y desarrollar los problemas centrales de la mecánica celeste. Pero también introduce el formalismo analítico (mecánica analítica o mecánica clásica) y lo aplica a la mecánica celeste. Es por tanto un libro de mecánica celeste y al mismo tiempo uno de mecánica analítica.
El libro no profundiza en todos los temas de la mecánica celeste o la mecánica analítica como lo hacen textos más avanzados. Pero, para un estudiante de pregrado, esta podría ser su primera lectura antes de abordar esos textos.
El texto hace un enfasis especial en los algoritmos de la mecánica celeste, que implementa usando códigos en Python
, gráficas en matplotlib
y, en ocasiones, usando algunas de las rutinas y datos del sistema SPICE
de NASA.
Todo el libro esta disponible como notebooks de Jupyter
que pueden ser modificados por el lector o ejecutados durante una clase (¡es un libro para enseñar!) Los notebooks contienen gráficos interactivos y animaciones que ilustran conceptos que pueden resultar difíciles.
El libro no requiere conocimientos previos de programación en Python
(aunque tenerlos puede ser muy útil.) En realidad, el libro podría utilizarse como una manera de aprender el lenguaje en contexto, algo que es difícil de conseguir en libros dedicados específicamente a la enseñanza de la programación.
Los temas no se desarrollan en el orden en el que aparecieron en la historia: problema de los dos cuerpos $\rightarrow$ teoría de perturbaciones $\rightarrow$ problema de los tres cuerpos $\rightarrow$ mecánica celeste relativistica, etc. He preferido presentarlos como me hubiera gustado conocerlos desde el principio, siguiendo un orden más lógico y un poco atemporal. Esta es la manera en la que, creo, un viajero en el tiempo, que retrocediera a 1700, se lo explicaría a un sorprendido Newton.
A pesar de lo anterior, la historia es importante en el libro. A través de los capítulos y en recuadros especiales he incluído anédotas y biografías que permitirán hacerse a una idea del contexto en el que surgieron las principales ideas de la mecánica celeste y la mecánica analítica y de los personajes, hombres y mujeres, que las concibieron.
Por muchas de las razones descritas arriba podría decirse que este es un libro "moderno" de mecánica celeste. uno que en lugar de ocuparse de llenar cientos de páginas con sesudos y rigurosos desarrollos matemáticos, le apunta directamente a dar vida a esas ideas y a ofrecer las herramientas prácticas para su aplicación.
Jorge I. Zuluaga
Abril de 2020
Indice | Siguiente: Agradecimientos