Indice | Previo: Agradecimientos | Siguiente: Fundamentos
Como mencionamos en la Sección de Prefacio, una de las cosas hace a este libro diferente de otros textos de mecánica celeste, es la manera y el orden particular en el que se desarrollan los temas. El libro esta dividido en tres grandes partes:
En los siguiente párrafos encontrarán una síntesis narrada del libro; algo así como una tabla de contenido comentada que le permitirá al lector, no solo orientarse en el texto, sino también entender la manera como se encadenan cada una de sus partes.
Y es que todo libro debería contar una historia. En los textos académicos, lamentablemente, esa "vocación" narrativa parece perderse en medio de figuras, teoremas y algoritmos. Esta sección puede ser entonces entendida, como un esfuerzo para esbozar la historia que se hila a través de sus capítulos.
Parte 1: Fundamentos matemáticos y físicos. Antes de comenzar, respasaremos algunos temas de matemáticas y de física necesarios para estudiar mecánica celeste. Si bien el lector debería estar familiarizado con la mayoría de estos temas, he decidido incluir este capítulo no solo para hacer al texto autocontenido, sino también con el propósito de compilar resultados útiles, definiciones y algorítmos, en el formato y notación del texto, que se usarán en capítulos posteriores.
Capítulo de Fundamentos matematicos. Algunos consideran a la mecánica celeste un área de las matemáticas aplicadas. En ella confluyen técnicas matemáticas de todos los orígenes. Por esta misma razón para comprender incluso los aspectos más básicos de la teoría es necesario contar con una sólida fundamentación matemática. Por razones de espacio no podemos cubrir todos los temás relevantes en esta sección, pero nos hemos concentrado en dos de particular importancia en todo el texto:
Sección de Cálculo infinitesimal: El cálculo infinitesimal fue descubierto por Isaac Newton a finales de los 1600 (y más tarde descubierto independientemente también por Gottfried Leibniz), inspirado, en parte en problemas mecánicos. Estos métodos matemáticos permitieron a Newton, sus contemporáneos y suscesores resolver los complicados problemas de la mecánica celeste que inauguraron la disciplina. Por la misma razón es indispensable que el lector repase las cantidades y resultados centrales de este método analítico, que es justamente el tema de esta sección. Al hacerlo aprovecharemos además para recoger algunas definiciones y resultados importantes de la geometría y el cálculo de vectores, los elementos básicos de la teoría de ecuaciones diferenciales y del más exótico cálculo de variaciones. Ninguno de los apartes de este capítulo cumple funciones decorativas o es completamente prescindible. A pesar de parecer una sección ajeno al libro, un material que debería dejarse solo a los autores expertos en el tema, en realidad todos los resultados expuestos aquí serán usados en el resto de capítulos.
Sección de Curvas cónicas: En esta sección nos concentraremos en repasar (o presentar) las propiedades de las figuras cónicas, su definición y descripción geométrica más general, así como su descripción algebraica. Las cónicas juegan un papel central en la mecánica celeste y estar familiarizado con ellas, permitirá resolver más fácilmente problemas físicos relativamente complejos. Estudiaremos esta familia particular de curvas, tanto en el plano, como en el espacio de tres dimensiones. Con este propósito, introduciremos aquí el tema de las rotaciones en dos y tres dimensiones (ángulos de Euler) que son usados con frecuencia en la mecánica celeste pero también en la mecánica analítica.
Capítulo de Mecánica newtoniana. Es casi imposible presentar la mecánica celeste y menos aún la mecánica analítica, sin repasar primero las definiciones, postulados y proposiciones de la mecánica básica, o mecánica newtoniana, como se la llama comunmente. Este capítulo esta justamente dedicado a presentar el que llamaremos formalismo vectorial o geométrico de la mecánica, desarrollado a partir de las ideas mismas de Newton pero enriquecidas significativamente por sus sucesores en los siguientes dos siglos. Si bien, de nuevo, este podría parecer un tema elemental para tratar en otro libro, la manera en la que se presenta aquí es particularmente única. He tratado de formular las ideas de siempre en un orden más moderno y en algunos casos poco ortodoxo. No pretendo con ello producir ninguna revolución, pero al hacerlo, la presentación de los tema centrales del libro se hace más natural. El capítulo se concentra en la mecánica de partículas y sistemas de partículas, sin ocuparse de otros temas interesantes de la mecánica, la dinámica de cuerpos rígidos o de fluídos, que no serán aplicados en el resto del texto.
Parte 2: El formalismo vectorial de la mecánica celeste. Como veremos a lo largo del libro, la mecánica puede ser presentada usandos dos enfoques matemáticas o formalismos diferentes. En esta parte del curso nos concentraremos en la formulación geométrica o vectorial de la mecánica celeste, la más popular y la que uso originalmente Newton en sus Principia y que fue desarrollada posteiormente por sus sucesores.
Capítulo El problema de los N cuerpos. A diferencia de la mayoría de los textos en mecánica celeste, en este libro comenzamos por abordar y estudiar con algún detalle, el más general de los problemas de esta disciplina: el problema de los N cuerpos. En este problema, el reto consiste en predecir la posición y velocidad de muchos cuerpos que interactúan gravitacionalmente. Si bien el problema de los N cuerpos fue posiblemente el último de los grandes problemas de mecánica celeste en ser formulado y abordado rigurosamente en la historia, su presentación temprana en este libro, permitirá introducir resultados y métodos que serán de utilidad para el resto del texto. De particular interés será la introducción en este capítulo de los algoritmos para resolver numéricamente el problema. Estos algoritmos y algunas herramientas computacionales relacionadas, serán muy importante en el resto del texto, para comparar y validar resultados de modelos analíticos. Se presentará también aquí el concepto de integrales de movimiento o cuadraturas, uno de los métodos usados clásicamente para extraer información sobre un sistema dinámico sin resolverlo completamente. Este método será usado regularmente en los demás capítulos.
Capítulo El problema de los dos cuerpos. Una de las idealizaciones más conocidas de la mecánica celeste es aquella que consiste en suponer que cuando dos cuerpos astronómicos interactúan gravitacionalmente, el efecto del resto del Universo es completamente despreciable. Naturalmente, no existe ningún sistema astronómico real que cumpla cabalmente estas condición. Todos los sistemas del universo, en sentido estricto, son sistemas de N cuerpos. En este capítulo mostraremos, a través de experimentos numéricos y ejemplos astronómicos reales, que la mayoría de los sistemas astronómicos se pueden analizar dinámicamente como sistemas de N cuerpos jerárquicos, es decir, sistemas en los que las partículas se agrupan por pares (pares de partículas, pares de pares, etc.) que se perturban mutuamente. El problema de los dos cuerpos no es, sin embargo, el destino final de la mecánica celeste, sino su punto de partida. Es un resultado útil para estudiar sistemas mucho más complejos. Resolveremos en este capítulo el problema de los dos cuerpos usando el método de las cuadraturas (primeras integrales de movimiento) introducido en el capítulo anterior. Demostraremos que el movimiento relativo de dos cuerpos se realiza sobre una cónica y desarrollaremos en detalle las relaciones entre las propiedades geométricas de esa cónica y las propiedades dinámicas del sistema. Resolveremos también, usando métodos geométricos primero y después métodos del cálculo, el denominado problema de los dos cuerpos en el tiempo, que conducirá a la famosa ecuación de Kepler.
Capítulo El problema restringido de los tres cuerpos. A pesar del poder que la teoría desarrollada en el capítulo anterior tiene para describir el movimiento de muchos sistemas astronómicos, existen situaciones que escapan a una descripción kepleriana del movimiento orbital (incluso, una que incluye perturbaciones). El caso de la Luna, el de algunos cometas perturbados por Júpiter y el de vehículos espaciales modernos, son especialmente significativos. En este capítulo abordaremos, inicialmente, el problema general de los tres cuerpos, es decir, aquel en el que la dinámica no es jerarquica. A diferencia del problema de los dos cuerpos, no se conoce una solución general en términos de funciones analíticas al problema de los tres cuerpos. Una versión restringida de este problema, a saber el problema circular restringido de tres cuerpos (CRTBP por su sigla en inglés), tiene propiedades teóricas que han resultado de interés en la descripción de sistemas astronómicos reales. Estudiaremos aquí en detalle el CRTBP, su descripción dinámica y cinemática, tanto en sistemas inerciales como no inerciales. Introduciremos algoritmos para la solución numérica del problema en el sistema rotante. Encontraremos su constante de movimiento, la constante de Jacobi y una aproximación astronómica en términos de elementos orbitales, el parámetro de Tisserand. Deduciremos las propiedades y visualizaremos las denominadas regiones de exclusión y curvas de cero velocidad (conceptos interesantes que permiten, si no predecir dónde estarán los cuerpos, al menos, donde no estarán). Finalmente se deducirán las propiedades de los puntos de equilibrio de Lagrange y algunas aplicaciones astronómicas y en mecánica orbital del problema.
Parte 3: El formalismo analítico de la mecánica. En esta parte del libro, introduciremos el formalismo analítico de la mecánica y su aplicación en la solución de problemas de mecánica celeste. El formalismo analítico tiene una importancia central en la física que trasciende a la mecánica celeste (se usa por ejemplo para estudiar la dinámica de cuerpos rígidos y sistemas oscilantes, el caos en sistemas dinámicos, la mecánica relativista, el electromagnetismo, la teoría de campos clásica y la mecánica cuántica). Si bien pocas aplicaciones del formalismo, distintas a la mecánica celeste, se desarrollara en este texto (como si sucede en algunos textos avanzados de mecánica clásica) los fundamentos teóricos presentados en esta parte le permitiran al lector abordar el estudio de esas otras disciplinas en textos específicos de mecánica analítico o en textos más avanzados.
Capítulo El formalismo lagrangiano y la mecánica celeste. En este capítulo se introducen los principios y teoremas centrales del formalismo analítico de la mecánica, en particular los principios de Alambert-Lagrange y de Hamilton. Haremos aquí, un especial énfasis en las motivaciones teóricas que llevaron a matemáticos y físicos de los 1700 a introducir este formalismo (un tema en el que los textos más avanzados de mecánica clásica, apenas si consideran.) Se introducirá aquí la función lagrangiana, las ecuaciones de Lagrange y, a través de la aplicación del cálculo variacional, se deduciran las ecuaciones generales de Euler-Lagrange (que tienen una aplicación amplia en muchas áreas de la física). Como un elemento novedoso se presentarán en este capítulo algunos algoritmos aplicados al formalismo lagrangiano, y en particular a la comprensión mejor del principio de Hamilton y los métodos del cálculo variacional. Con los elementos básicos del formalismo lagrangiano a la mano, procedermos a aplicarlo en la solución de problemas concretos en mecánica celeste. Para ello presentaremos, primero, resultados importantes sobre la relación entre las simetrías de la función lagrangiana y las cantidades conservadas en el movimiento (teorema de Noether). A partir de allí, procederemos de forma similar a como lo hicimos con el formalismo vectorial, a resolver el problema general de los N cuerpos y el de los dos cuerpos. Deduciremos el lagrangiano de los N cuerpos y de sus simetrías obtendremos las cantidades conservadas en el sistema. Pero ¿de qué sirve deducir los mismos resultados que ya habíamos visto en el capítulo correspondiente de la segunda parte?. Usaremos lo que sabemos de mecánica celeste para ilustrar el poder del formalismo lagrangiano frente al formalismo vectorial. Posteriormente, abordaremos el problema de los dos cuerpos usando el formalismo lagrangiano. En este caso, a diferencia del problema de los N cuerpos, tendremos una novedad. En lugar de restringirnos al caso de la gravitación Newtoniano, estudiaremos aquí el problema más general de sistemas de dos cuerpos sometidos a fuerzas centrales con un potencial generalizado. Los resultados obtenidos aquí, tendrán un rango más amplio de aplicación. Podrán por ejemplo usarse para estudiar la física de sólidos, moléculas y átomos, pero también la mecánica celeste postnewtoniana. Estudiaremos, en este contexto, el problema de fuerzas centrales reducido a una dimensión, el potencial efectivo (y las correspondientes zonas de exclusión). Para el caso del potencial newtoniano deduciremos la denominada ecuación de la forma orbital y resolveremos el problema de los dos cuerpos a partir de ella. Para el caso de un potencial general, pero no muy distinto del potencial Newtoniano, estudiaremos el denominado avance del perihelio uno de los resultados teóricos de la mecánicaceleste que a la larga serían de la mayor importancia histórica al ofrecer las primeras evidencias de la validez de la teoría general de la relatividad.
Capítulo El formalismo hamiltoniano y la mecánica celeste. En este capítulo abordamos el más general (y poderoso) formalismo analítico de la mecánica: el formalismo Hamiltoniano. Después de discutir las motivación para la introducción de este formalismo (motivaciones de naturaleza principalmente geométrica), deduciremos de forma heurística las ecuaciones canónicas (de primer orden) de Hamilton; introduciremos la función Hamiltoniana y demostraremos su equivalencia con las ecuaciones (de segundo orden) de Euler-Lagrange. Ilustraremos el poder del formalismo y la descripción de los sistemas en el denominado espacio de fase; para ello nos valdremos inicialmente de sistemas dinámicos simples (péndulos y bloques), como hicimos en el primer capítulo de esta parte. Posteriormente abordaremos (sin el detalle en el que lo hicimos en el caso del formalismo Lagrangiano y por las obvias analogías entre los dos formalismos) el tema de las simetrías y las cantidades conservadas, e introduciremos los útiles corchetes de Poisson, como herramienta matemática para estudiar dichas simetrías. Escribiremos los hamiltonianos del problema general de los N cuerpos, el del problema de los dos cuerpos y el del problema circular restringido de los tres cuerpos, y redescubriremos, usando los elementos de este nuevo formalismo, las propiedades ya conocidas de estos sistemas. Una de las aplicaciones más poderosas del formalismo Hamiltoniano, se consigue al aprovechar las simetrías de los sistemas gravitacionales, para, a través de transformaciones de coordenadas en el espacio de fase, escribir formas simplificadas de los Hamiltonianos. Estas formas simplificadas, además, permiten aplicar de forma más directa la teoría de perturbaciones y así estudiar sistemas muy complejos (un tema que no esta incluído en este libro.) En este capítulo introduciremos, primero, el tema de las transformaciones canónicas, que son transformaciones de coordenadas en el espacio de fase que mantienen la estructura hamiltoniana de los sistemas (es decir, que hacen que los sistemas sigan siendo descritos con las ecuaciones canónicas). Nos concentraremos, especialmente en el formalismo de la función generatriz de las transformaciones canónicas. A continuación, aplicando la teoría de transformaciones canónicas presentaremos el método de Hamilton-Jacobi que permite, entre otras cosas, encontrar sistemas de coordenadas que simplifican significativamente la descripción de ciertos sistemas físicos. En particular utilizaremos este formalismo para deducir, en el problema de los dos cuerpos, el Hamiltoniano del sistema en términos de elementos orbitales; en particular, en términos de funciones específicas de esos elementos orbitales, que hacen lo más simple posible el hamiltoniano del sistema. El resultado más importante de este capítulo será la deducción de las denominadas variables de Dalaunay que son de gran utilidad y poder en la mecánica celeste moderna y posiblemente el punto de partida de algunos textos de mecánica celeste avanzados.
Todos los capítulos hasta aquí contarán con un conjunto completo de preguntas, ejercicios y problemas, que permitiran al lector poner a prueba los conocimientos adquiridos y las habilidades desarrolladas, pero también, descubrir como estas ideas, métodos y herramientas, se aplican en otras situaciones específicas.
Este libro puede ser utilizado de tres formas diferentes:
Como un texto para el autoaprendizaje de la mecánica celeste y la mecánica analítica. Estudiantes y profesionales de muchas disciplinas, se pueden valer de él para tener su primer acercarmiento a estas disciplinas.
Como el texto guía de un primer curso de mecánica celeste y de mecánica analítica. El texto es una fuente de lecciones y problemas útiles para organizar un curso de pregrado.
Como material de referencia para estudaintes y profesionales. Muchas fórmulas, algoritmos, e incluso anécdotas e historias interesantes, podrían resultar útiles para quiénes ya tienen una formación en el área.
Como texto para el autoaprendizaje, recomiendo leer el texto en su totalidad incluyendo la primera parte de Fundamentación matemática y física, en la que se encuentran algunos elementos teóricos requeridos para el resto del libro.
Para quiénes tengan una formación avanzada en física, astronomía o ingeniería, es posible que una buena fracción de los temas de esa primera parte resulten sencillos y puedan obviarse. Sin embargo, aunque los tópicos tratados allí parezcan conocidos (al menos nominalmente), su tratamiento puede resultar novedoso. Si este es su caso, no deje de echarle una mirada a esos primeros capítulos. En particular recomiendo revisar, como mínimo, las secciones dedicadas a la solución numérica de ecuaciones diferenciales, incluyendo las ecuaciones de movimiento en mecánica newtoniana, los rudimentos de cálculo variacional y la dinámica en sistemas rotantes, donde podrían encontrarse las diferencias más significativas respecto a los textos canónicos de matemáticas y física, y donde además se introducen herramientas algorítmicas que serán de uso muy corriente en el resto del libro.
El uso ideal de este libro es como texto guía de un primer curso de mecánica celeste y mecánica analítica. El libro fue escrito a partir de la experiencia de más de 5 años ofreciendo el curso en el pregrado de astronomía de la Universidad de Antioquia (en Medellín, Colombia). Por la misma razón, la extensión y organización particular del texto, se adapta de forma precisa a las condiciones propias de un curso universitario de un semestre de duración (cuatro meses efectivos de lecciones.) El curso se ha ofrecido exitosamente a estudiantes que han aprobado los cursos básicos de física (hasta el tema de oscilaciones y ondas) y de cálculo (incluyendo cálculo vectorial y ecuaciones diferenciales.)
Todos los capítulos del libro libro han sido dictados dentro del plazo del curso. Sin embargo, dependiendo del nivel académico de los estudiantes y de su independencia intelectual, el curso puede dictarse sin incluir todos los temas de la primera parte.
Por mi experiencia dictando el curso, el repaso de los fundamentos puede resultar extenso (como mínimo toma un mes que es justamente el período en el que los estudiantes tienen una motivación y disposición mayor, además de menos distracciones de otros cursos.) Sugeriría, entonces, que de sacrificarse algunos temas de esa parte, se asigne la lectura independiente a los estudiantes de los temas mejor conocidos y se evalúe a través de la lista de problemas incluídos al final de los capítulos de esa parte.
Como mencioné en la Sección Mecánica celeste en la era de la información del Prefacio, y se detallará abajo, el libro fue escrito usando libretas de Jupyter
, una por cada clase (a lo sumo se pueden dictar dos clases con cada libreta). Es decir, el número de libretas y su organización puede ofrecer una idea del programa detallado de actividades del curso o del plan de lecturas.
El libro ha sido concebido, escrito y compilado enteramente usando libretas de Jupyter
. Las libretas, que están disponibles en la versión electrónica del texto, son archivos en un formato especial (no son programa de Python
, ni páginas web) que pueden ser visualizadas y ejecutadas usando un navegador de Internet.
El uso de las libretas no es indispensable para entender el contenido del libro, pero puede ofrecer una experiencia interactiva muy enriquecedora y a veces acelerar el proceso de aprendizaje. El uso de las libretas en clase puede, además, hacer más dinámica y amena la interacción entre el profesor y los estudiantes.
Para hacer uso de las libretas se debe contar con un computador de escritorio que use cualquier sistema operativo (Windows
, Linux
o MacOS
). Por la misma razón, en caso de usarla, recomiendo que el curso se desarrolle en una sala de computo. Para ejecutar las libretas es necesario instalar primero el interprete y la biblioteca base del lenguaje Python
, un conjunto específico de paquetes y el sistema Jupyter
, además de varias de sus extensiones (los detalles se presentan en la siguiente sección.)
La versión en línea de este libro (páginas web), puede ser también una alternativa a las libretas de Jupyter
. Este formato tiene la ventaja que solo requiere un dispositivo con conexión a Internet (de escritorio o móvil) y puede manipularse en cualquier contexto. Aunque la versión web carece de casi todas las características interactivas de las libretas de Jupyter
, en ella encontraran, además de todos los algoritmos y gráficos, animaciones y otros elementos de hipertexto.
Para aquellos que deseen aprovechar las libretas de Jupyter
como medio didáctico, se ofrece a continuación una guía básica de cómo preparar un computador para ejecutarlas. Instrucciones adicionales pueden encontrarse en la versión en línea del libro.
Instalación del lenguaje Python
y las bibliotecas básicas del lenguaje. El primer requisito para utilizar las libretas es instalar el interprete y las bibliotecas del sistema del lenguaje Python
. Existen diversas maneras para hacerlo en cada sistema operativo y abundantes instrucciones en Internet. Mi recomendación es utilizar el sistema Anaconda
que ofrece, en una plataforma integrada, los archivos del lenguaje Python
, una amplia diversidad de paquetes científicos, el sistema Jupyter
y todas las herramientas necesarias para la instalación de otros paquetes.
Descargar las libretas. Una vez haya instalado Python
y Jupyter
, puede descargar las libretas del libro los archivos adicionales requeridos por ellas del sitio web del libro. Para ello siga las instrucciones provistas allí.
Ejecución de pruebas. Para verificar si las libretas funcionan correctamente, una vez descargadas, busque y abra la libreta Pruebas.html
. Una vez abierta ejecute todas sus celdas (Cell / Run all
). Si la ejecución se realiza completa, en la última celda aparecera un reporte completo con los resultados de la prueba. Si alguna de las prueba individuales falla, es posible que sea necesario instalar paquetes, datos adicionales y otras dependencias.
Instalación de dependencias. Para instalar todas las dependencias del libro abra la libreta Instalacion.html
y siga las instrucciones descritas allí.
El libro está escrito en español. Sin embargo, y como sucede con todas las ciencias, habrán muchos apartes en los que es necesario introducir términos técnicos y acrónimos procedentes de la lengua inglesa. En estos casos las palabras y acrónimos se presentarán en itálica. Así por ejemplo, al referirnos al problema matemático de resolver la ecuación de movimiento de una partícula hablaremos del initial value problem o su acrónimo IVP, en contraposición al boundary condition problem. Por otro lado en el Capítulo El problema de los tres cuerpos estudiaremos el CRTBP o circular restricted three body problem.
Muchos de los científicos (hombres y mujeres) que han contribuído con el desarrollo de la mecánica celeste en sus cuatro siglos de historia, tienen nombres y apellidos no hispanos. Su correcta pronunciación, especialmente en el caso de autores franceses o de origen germano, es difícil para quienes no hablamos las lenguas de esos pueblos.
Un caso notable, por ejemplo, es el nombre de la matemática alemana Emmy Noether. En castellano la mayoría pronunciaríamos "emi noeter" o "emmi neder" (siguiendo la tradición inglesa con la que estamos más familiarizados.) Como una primera guía para la correcta pronunciación de estos nombres, a lo largo del libro presentaremos "transliteraciones" al castellano, indicando, entre comillas las letras y palabras más cercanas que un hispanohablante podría usar. Así por ejemplo "niuton" será la trasliteración fonética de Newton y la pronunciación "correcta" (en alemán) del nombre de Emmy Noether, será "emmi noutar".
Para hacernos a una idea fonética más precisa nos apoyaremos a lo largo del libro de la increíble colección compilada en este sitio web que ofrece pronunciaciones en línea, en decenas de idiomas, de miles de nombres, palabras y frases. Allí encontrará por ejemplo la pronunciación correcta, en su idioma original del nombre Emmy Noether.
¿Es todo esto indispensable para entender la mecánica celeste o la mecánica analítica?. Ciertamente no. Pero no solo de teoría vivimos los humanos. La comunicación y socialización es central al proyecto científico y es bueno entender y hacerse entender especialmente en contextos internacionales.
La historia de la mecánica celeste y análitica, así como la historia de las áreas de la física y las matemáticas con las que se relaciona, es fascinante. En el libro, como detallamaos en la próxima sección, incluiremos abundantes referencias históricas sobre los personajes y los momentos claves en el desarrollo de las ideas de la mecánica celeste.
Para referirnos a los siglos, sin embargo, nos desviaremos de las reglas convencionales del español. Según esas reglas al período comprendido, por ejemplo, entre 1701 y 1800, se lo llama el siglo XVIII. Para este autor, la notación usando números romanos, si bien ampliamente aceptada, es confusa y exige realizar operaciones mentales innecesarias (número romano $\rightarrow$ número indoarabigo $\rightarrow$ restar uno $\rightarrow$ multiplicar por 100).
En los sucesivo para referirnos al período comprendido entre 1700 y 1799 (comenzando en el año cero y no en el año uno como dicta la regla) hablaremos de los 1700. Así mismo el siglo XX será los 1900 y así sucesivamente.
Dado que en las reglas establecidas del español, los 1900 hacen referencia en realidad a la década entre 1901 y 1910, cuando queramos refereirnos a un período de diez años siempre usaremos explícitamente la palábra década: década de 1680, decada de 1960, etc.
No pretendó, con este acto de rebeldía idiomática, cambiar el castellano. Pero sí, al menos en lo que respecta a este libro, faciltar la lectura de los períodos históricos.
Todos los libros de ciencias físicas o matemáticas se "casan" con una notación específica. La elección de la notación, no es sin embargo una tarea sencilla, en tanto son muy comunes los casos de textos que en virtud de su notación se hacen practicamente ilegibles aunque traten los mismos temas o problemas de otros que usan notaciones más comunes.
Pensando justamente en esto, he tomado la decisión de utilizar, en la medida de las posibilidades, la misma notación de algunos textos clásicos de mecánica celeste, que se diferencia, a veces significativamente, de la que utilizan libros de matemáticas e incluso de física, con los que el lector puede estar familiarizado.
El lector encontrará los detalles específicos de la notación usada en el libro en la Sección Vectores y cálculo.
Para facilitar la lectura del libro y hacer de la experiencia de leerlo algo más agradable e incluso excitante, el texto contiene una serie de elementos gráficos con los que debemos familiarizarnos.
Mucha información importante texto se presenta en cajas independientes al texto principal y cuyas características gráficas resaltan del resto del documento. En particular existen 5 tipos de cajas:
Resumen del capítulo. Esta caja aparece normalmente al principio de cada capítulo y contiene una breve síntesis del mismo. No deje de leer este resumen para identificar los temas centrales de cada parte del libro. El profesor podría usar la información contenida allí para definir los objetivos específicos de la evaluación.
Notas. A veces es necesario desviarse un momento del hilo del texto para aclarar o ampliar asuntos relacionados con la notación, los paquetes y algorítmos utilizados, o simplemente llamar la atención sobre un asunto importante. A continuación se muestra un ejemplo de una caja de nota.
Nota: El lenguaje Markdown. La mayor parte del contenido textual de este libro, ha sido escrito en las celdas de libretas de Jupyter
en un lenguaje de descripción de documentos conocido como Markdown. Puede explorar la sintaxis del lenguaje, o bien desplegando el contenido de las celdas de las libretas, o bien consultando la abundante documentación en línea.
Definición 11.1. Mecánica celeste. Llamamos Mecánica Celeste a la disciplina científica que aplica las leyes de la mecánica para estudiar el movimiento de cuerpos bajo la acción dominante de la gravedad. Dado que solo en lugares lejanos a la superficie terrestre (normalmente fuera de su atmósfera), la gravedad es la fuerza dominante, la mecánica celeste normalmente describe el movimiento de cuerpos astronómicos (desde partículas pequeñas, hielo o polvo interestelar, hasta planetas y estrellas) y de vehículos espaciales. En este último caso se habla normalmente de Mecánica orbital.
Un poco de historia: ¿Kepler o Newton?. En el Prefacio daba a entender que la mecánica celeste posiblemente había comenzado con los trabajos pioneros de Johannes Kepler (ver Figura (kepler)). Otros autores van más lejos y apuntan a los astrónomos de la antigüedad y la edad media, especialmente indios, chinos, arabes y griegos, que desarrollaron modelos complejos para la descripción del movimiento de los cuerpos celestes. Los más conservadores apuntan a Sir Isaac Newton, quien después de la publicación de su obra cumbre, los Principia, sentó las bases físicas, no solo para la mecánica celeste, sino también, en general, para toda la mecánica.
La razón en este libro para escoger a Kepler, como el padre de la disciplina (y en general de la astronomía física) fueron sus contribuciones decisivas y bastante bien conocidas para esclarecer definitivamente la cinemática del movimiento planetario. En particular, el descubrimiento (o el enunciado matemático) de sus conocidas leyes del movimiento planetario representaron un cambio cualitativo en el desarrollo de la teoría del movimiento planetario e inspiraron en últimas el trabajo de Newton y sus contemporáneos.
Adicionalmente, y esto es aún más importante, Kepler fue uno de los primeros astrónomos modernos (renacentistas europeos) en hacer consideraciones teóricas sobre la causa del movimiento planetario, más allá de ocuparse de su descripción, como lo hicieron la mayoría de los astrónomos de la antigüedad y la edad media. Esto pone a Kepler, entre esos astrónomos, como el primer astrofísico de la historia.
Como he insistido hasta aquí, una de las novedades más importantes de este libro es el énfasis que he querido dar a los algoritmos. Por algoritmo entenderemos aquí pequeños (o no tan pequeños) fragmentos de código (code snippet en inglés) que realizan tareas numéricas específicas o son parte de un algoritmo mayor.
He evitado hablar de programas o códigos para resaltar el hecho de que lo importante en ellos es la lógica de las operaciones y no el lenguaje específico en el que están escritos. A pesar de este esfuerzo por mantener el tema lo más general posible, es virtualmente imposible escribir algoritmos que se puedan ejecutar realmente en las libretas, sin recurrir a ciertas particularidades del lenguaje en el que están descritos, Python
.
Existen en general tres tipos de algoritmos que encontraremos a lo largo del texto. En primer lugar están los algoritmos más sencillos, aquellos que ejecutan tareas básicas de preparación de datos para algoritmos más complejos. Este es un caso de ellos:
a=1
b=-1
c=2
disc=b**2-4*a*c
Muchos de estos algoritmos simples vienen seguidos del resultado más importante de las operaciones que codifican. En el caso anterior se muestra por ejemplo el valor del discriminante (el valor de la variable disc
). El algoritmo (o código) para producir ese resultado:
print(f"Discriminante = {disc:.1f}")
Pero este algoritmo (y la celda correspondiente) no se muestra en el libro impreso para evitar la proliferación de código irrelevante.
Los algoritmos más complejos pueden, como las ecuaciones, estar numerados:
def calcula_discriminante(a,b,c):
disc=b**2-4*a*c
return disc
En este caso, el algoritmo contiene una rutina o función, que podría ser usada más adelante, incluso en un capítulo posterior. Todas las rutinas como estas, hacen parte de un paquete incluído con las libretas llamado pymcel
. Para usar la rutina en el Alg. (rutina_discriminante) en otra parte del libro se usa:
from pymcel.export import calcula_discriminante
d=calcula_discriminante(1,2,3)
Cualquier lenguaje de programación moderno depende de numerosas bibliotecas en las que están codificados procedimientos de uso regular o muy especializados. En todos los algoritmos presentados en el libro, siempre que se use una rutina de una biblioteca externa, se presentará el código que hace referencia a la biblioteca de forma explícita. Consider por ejemplo este algoritmo:
#Coeficientes de un polinomio de segundo grado
a=1
b=3
c=-2
#Calcula discriminante
from pymcel.export import calcula_discriminante
d=calcula_discriminante(a,b,c)
#Calcula raices
if d>=0:
from numpy import sqrt
x1=(-b+sqrt(d))/(2*a)
x2=(-b-sqrt(d))/(2*a)
else:
print("El polinomio no tiene raices reales")
En él hemos usado la rutina sqrt
(raíz cuadrada) de la biblioteca NumPy
para calcular, en este caso, las raices de un polinomio de segundo grado. Para ello, antes de la línea que usa la raíz cuadrada hemos incluido la instrucción:
from numpy import sqrt
Aunque en los programas regurales, estas instrucciones se ponen al principio, he decidido colocarlas lo más cerca posible al lugar donde se usan de modo que los fragmentos de código funcionen fuera del contexto del libro. El lector poco familiarizado con el lenguaje Python
puede hacer caso omiso a estas instrucciones, que nada le agregan a la lógica de los algoritmos.
Nota: las instrucciones import
y la velocidad de los programas. Es importante advertir que en algunos algoritmos, usar muchas instrucciones del timpo import
entre las líneas de código puede disminuir la velocidad del código. La recomendación general es la de poner este tipo de instrucciones al principio del programa. Así el Alg. (raiz_polinomio) debería escribirse así:
from pymcel.export import calcula_discriminante
from numpy import sqrt
#Coeficientes de un polinomio de segundo grado
a=1
b=3
c=-2
#Calcula discriminante
d=calcula_discriminante(a,b,c)
#Calcula raices
if d>=0:
x1=(-b+sqrt(d))/(2*a)
x2=(-b-sqrt(d))/(2*a)
else:
print("El polinomio no tiene raices reales")
Otro tipo de algoritmos frecuentes son aquellos que dan como resultado figuras o gráficos. Estos están entre los más interesantes y útiles, aunque pueden ser complicados y causar algo de estupor para los menos familiarizados con el lenguaje de programación. Les recomiendo a todos poner especial atención en estos algoritmos, tratar de entenderlos e imitarlos. Una buena parte de la ciencia que hacemos hoy día depende de producir bonitos productos gráficos que ilustren de forma compacta conceptos o resultados difíciles de describir de otra manera.
Todos los códigos que producen figuras están numerados. Así mismo los gráficos que producen aparecen en el texto, incluso en el impreso, como figuras independientes y numeradas. Por razones de eficiencia en el uso del espacio, algunas de esos gráficos pueden estar en lugares lejanos de la posición del código. Es por esto que en todos los algoritmos que producen gráficos encontraran (en la parte inferior) una referencia a la figura correspondiente.
%matplotlib inline
from numpy import linspace,sin,pi
t=linspace(0,2*pi)
x=sin(t)
import matplotlib.pyplot as plt
plt.figure()
plt.plot(t,x,'k-');
plt.xlabel("t");
plt.ylabel("x(t)");
La mayoría de las figuras del libro han sido elaboradas usando software de diseño independientes. Sin embargo, algunas figuras, especialmente gráficos de datos o resultados de simulaciones, son generadas por las libretas con las que fue escrito el libro. Si bien los algoritmos con los que son creados esas figuras (que llamaremos gráficos generados) no aparecen en la versión impresa o en la versión web porque pueden ser muy elaborados e irrelevantes para los fines del texto, si pueden aparecer en las libretas de clase.
Uno de las cosas que hace poderosas a las libretas de Jupyter
como medios para compartir información o estudiar un tema, es la posibilidad de interactuar directamente con esa información. Esto se consigue modificando el contenido de las celdas de las libretas (código) y ejecutándolas independientemente.
Pero hay otra posibilidad. En muchos apartes del libro se han creado gráficos interactivos y animaciones que permitiran al lector o al estudiante, modificar de forma gráfica (sin ir directamente al código) los parámetros de un algoritmo (gráficos interactivos) o ver en movimiento figuras que normalmente están estáticas en los libros.
Para ver las figuras interactivas, debe utilizar las libretas del curso displonibles en la versión en línea del libro.
Las animaciones siguien una lógica similar a la anterior.
%%capture
import matplotlib.pyplot as plt
%matplotlib inline
from matplotlib import animation
from numpy import linspace,sin,pi
fig=plt.figure()
ax=fig.gca()
N=100
t=linspace(0,2*pi,N)
x=sin(t)
punto,=ax.plot(t[0],x[0],'ko')
ax.set_xlim((0,2*pi))
ax.set_ylim((-1,1))
def animacion(i):
punto.set_data(t[:i],x[:i])
return punto,
anim=animation.FuncAnimation(fig,animacion,frames=N,interval=50,blit=True,repeat=False)
Para facilitar el control de la animación (además de permitir que pueda verse en la versión web del libro), es posible convertirla en el formato jshtml
:
Indice | Previo: Agradecimientos | Siguiente: Fundamentos