Documentos de Académico
Documentos de Profesional
Documentos de Cultura
R
O
D
A
RR
BO
Jorge I. Zuluaga
Profesor titular de Física y Astronomía
Instituto de Física, Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia
September 5, 2019
2
BO
RR
A
D
O
R
Contents
1 Preambulo 9
1.1 Prólogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
R
1.2 Prefacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 ¿Otro libro de mecánica celeste? . . . . . . . . . . . . 10
O
1.2.2 Mecánica celeste en la era de la información . . . . . 11
1.2.3 ¿Qué hace distinto a este libro? . . . . . . . . . . . . . 14
1.3 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 ¿Cómo usar este libro? . . . . . . . . . . . . . . . . . 14
1.3.2
D
Paquetes y herramientas requeridas . . . . . . . . . . 14
3
4 Contents
R
4.1 Formulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.2 Constantes de movimiento del problema de los dos cuerpos . . . 115
O
4.3 Solución explícita al problema de los dos cuerpos . . . . . . . . . 117
4.4 Las teoremas del movimiento planetario de Newton . . . . . . . 119
4.5 La velocidad en el problema de los dos cuerpos . . . . . . . . . . 120
4.6 Simulaciones numéricas y predicciones analíticas . . . . . . . . . 122
4.6.1
4.6.2
D
Momentum angular específico . . . . . . . . . . . .
Energía específica . . . . . . . . . . . . . . . . . . .
.
.
124
124
4.6.3 Vector LRL . . . . . . . . . . . . . . . . . . . . . . . . 125
A
4.7 El problema de los dos cuerpos en el tiempo . . . . . . . . . . . . 130
4.7.1 Una deducción geométrica . . . . . . . . . . . . . . . 131
4.7.2 Una deducción analítica . . . . . . . . . . . . . . . . . 133
RR
R
6 El formalismo lagrangiano 201
O
6.1 Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
6.2 El formalismo Lagrangiano . . . . . . . . . . . . . . . . . . . . . . 202
6.2.1 Principio de los trabajos virtuales . . . . . . . . . . . 202
6.2.2 Principio de d’Alambert-Lagrange . . . . . . . . . . . 204
6.3
6.3.1
D
Restricciones y variables generalizadas . . . . . . . . . . . . . .
Fuerzas de restricción . . . . . . . . . . . . . . . . .
.
.
211
214
6.3.2 Variables generalizadas . . . . . . . . . . . . . . . . . 215
A
6.3.3 Propiedades importantes de las reglas de transfor-
mación . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
6.4 Las ecuaciones de Lagrange . . . . . . . . . . . . . . . . . . . . . 219
RR
R
7.5.5 Ecuación de la forma orbital en la métrica de
Schwarzschild . . . . . . . . . . . . . . . . . . . . . . 275
O
7.5.6 Equivalente clásico al movimiento órbital en rela-
tividad general . . . . . . . . . . . . . . . . . . . . . . 275
7.5.7 Regiones de exclusión . . . . . . . . . . . . . . . . . . 276
7.5.8 Avance del perihelio de Mercurio . . . . . . . . . . . 277
7.5.9
D
Simulación del movimiento de una partícula
alrededor de un agujero negro . . . . . . . . . . . . . 279
A
8 El formalismo hamiltoniano 285
8.1 Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
8.1.1 Motivación 1: el problema de las ecuaciones de
RR
movimiento . . . . . . . . . . . . . . . . . . . . . . . . 285
8.1.2 Motivación 2: el problema de la “degeneración” del
espacio de configuración . . . . . . . . . . . . . . . . 287
8.2 Las ecuaciones canónicas de Hamilton . . . . . . . . . . . . . . . 289
8.2.1 Un ejemplo básico: el péndulo simple . . . . . . . . . 293
8.3 Simetrías y candidates conservadas . . . . . . . . . . . . . . . . . 299
BO
Bibliography 321
R
O
D
A
RR
BO
8 Contents
R
O
D
A
RR
BO
Chapter 1
Preambulo
R
O
1.1 Prólogo
Este es el prólogo. D
José Gregorio Portilla
Medellín, Diciembre 31 de 2021
A
1.2 Prefacio
En el mismo año en el que escribo estas palabras, se cumplen 100 años de la
RR
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. Hace tan solo unos meses, una nave espacial, la sonda
New Horizons, sobrevoló el objeto más remoto fotografiado por nuestra especie:
2014 (MU69) “Ultima Thule”. Cinco años antes, la misma nave paso “rozando” la
superficie de Plutón y nos envió imágenes inesperadas de un mundo sorprendente.
BO
Muy lejos de allí, y en el mismo año (2019), dos naves espaciales, una japonesa, la
sonda Hayabusa 2 y la otra estaudinense, OSIRIS-REx, transmitieron imágenes im-
pactantes desde la superficie de dos pequeños asteroides, objetos que visitaron con
el objeto de traer muestras a la Tierra.
Todas estas “hazañas” intelectuales y de exploración, desde el surgimiento hace
más de 100 años de la teoría general de la relatividad, hasta la visita a cuerpos
remotos o asteroides cercanos, entre muchas otras que tendremos la oportunidad
de mencionar en este libro, fueron posibles gracias a la mecánica celeste.
Esta disciplina científica, que es mitad astronomía, mitad física, comenzó con
el trabajo pionero de Johanes Kepler a finales de los 1500 y principios de los 1600,
se estableció para siempre en el corazón de nuestra comprensión del Universo con
la obra cumbre de Sir Isaac Newton, los Principios Matemáticos de la Filosofía Natural,
que fue publicada originalmente en 1687 y alcanzó su apogeo entre los 1700 y
1800 con los trabajos de matemáticos como Joseph-Louis de 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
9
10 Chapter 1. Preambulo
de la mecánica analítica, al nivel de quién se aproxima por vez primera a esta disci-
plina científica; en particular, lo hace con un énfasis especial en quiénes por razón
de su formación o de su trabajo, están particularmente interesados en aplicar la
mecánica celeste en la solución de problemas específicos. Por su extensión, énfasis
y nivel de profundidad, el libro esta dirigido especialmente a estudiantes de pre-
grado (licenciatura o bachillerato, dependiendo del país) de cualquier programa
científico o técnico, especialmente de astronomía y física.
R
Una miriada casi incontable de textos sobre esta materia, han sido escritos, prácti-
camente desde los tiempo del mismo Newton; libros con un profundo fundamento
teórico, libros orientados a sistemas específicos (el sistema solar o el movimiento
O
de los satélites), libros de texto o libros divulgativos. Un pequeño subconjunto de
todos ellos, serán referenciados en este texto. De antemano, invito al lector para
que los explore con curiosidad. D
Siendo este el caso, ¿para qué escribir un libro más de Mecánica Celeste? Exis-
ten dos razones fundamentales que me motivaron a emprender esta aventura.
La primera razón es que la mayoría de la literatura escrita en la materia, esta di-
rigida a estudiantes con una formación avanzada en matemáticas, mecánica new-
A
toniana y mecánica analítica. Muchos libros de mecánica celeste tienen, como se
acostumbra decir, un nivel de posgrado. En contraste, el número de textos que es-
tán al “alcance” de estudiantes de los primeros años del pregrado, no es realmente
RR
muy grande. Este libro pretende ser uno de ellos (no sé si lo logre).
Si bien podría argumentarse que la mecánica celeste es tan solo una aplicación
específica de la mecánica y que por lo tanto debería abordarse como un tema espe-
cializado, su importancia en la historia de la astronomía y de la física, así como la
capacidad que ella brinda para describir fenómenos y sistemas fascinantes (desde
naves espaciales, hasta el choque de agujeros negros), la convierte en un medio ed-
BO
R
de la mecánica celeste, fue su aplicación en la “predicción” de la existencia de un
noveno planeta en el Sistema Solar. Pero este es apenas la punta del iceberg. La
O
mayoría de los trabajos científicos en astronomía que usan la mecánica celeste hoy,
aplicam, directa o indirectamente, el formalismo analítico.
No es muy común reconocerlo entonces, pero la mecánica celeste se convierte
así en una excelente (y excitante) manera de iniciarse en la mecánica analítica. Para
D
los astrónomos es, además, la primera y más importante manera de hacerlo en el
pregrado. Este libro se aprovecha de esta oportunidad.
A
1.2.2 Mecánica celeste en la era de la información
Hay un ingrediente adicional que hace a este libro diferente de la inmensa may-
RR
oría de los que se han publicado antes en esta materia. Me refiero al enfásis que
he querido dar, a través de todo el texto, a la introducción e implementación de
algoritmos y al uso de herramientas computacionales para, de un lado, apoyar la
comprensión de los conceptos, y del otro, resolver problemas específicos.
Es un hecho ampliamente reconocido que la complejidad de algunos problemas
de mecánica celeste, en particular de aquellos con un interés práctico (el diseño de
BO
R
El primer hecho es que su sintaxis y gramática basica son muy similares a
las del “lenguaje natural” (pseudocódigo). Considere, por ejemplo el siguiente
O
código:
pi a la 1 es 3.141592653589793
pi a la 2 es 9.869604401089358
A
pi a la 3 es 31.006276680299816
pi a la 4 es 97.40909103400242
pi a la 5 es 306.0196847852814
RR
pi a la 6 es 961.3891935753043
pi a la 7 es 3020.2932277767914
pi a la 8 es 9488.53101607057
pi a la 9 es 29809.0993334462
BO
Es difícil escribir este sencillo algoritmo de una manera más simple en otros
lenguajes de programación populares en la ciencia (C, FORTRAN o Java). Es evidente
que personas poco familiarizados con el lenguaje pueden fácilmente entender al-
goritmos escritos en Python, incluso si son más complicados que el anterior.
El segundo hecho que muestra la estabilidad de Python, es el hecho de que
en años recientes se han escrito innumerables paquetes científicos, de todo tipo,
para quienes usan este lenguaje. Herramientas muy populares, escritas original-
mente en otros lenguajes, han sido traducidas a Python (pythonizadas si quieren)
con el único propósito de que puedan ser usadas por la creciente comunidad que
programa en este lenguaje. Python se esta convirtiendo, de este modo, en el de-
positario de la experiencia computacional acumulada por décadas.
¿Cambiará esta tendencia pronto? Lo dudo (o al menos quiero creer que es así,
por el bien de este libro).
La última razón, pero no por eso menos importante, es la existencia de una bib-
lioteca gráfica amplia y bien documentada, matplotlib. Con la excepción de pa-
quetes que incluyen lenguajes de programación propios, tales como Mathematica
1.2. Prefacio 13
R
O
D
A
RR
Jorge I. Zuluaga
R
Medellín, Diciembre 31 de 2019
O
1.3 Introducción
1.3.1 ¿Cómo usar este libro? D
En un esfuerzo por crear un libro interactivo que permita facilitar el aprendizaje
de la Mecánica Celeste hemos creado un conjunto de Notebooks de IPython que
permiten presentar la teoría asociada con los distintos temas del curso, así como
A
los aspectos prácticos asociados a esa misma teoría.
La idea es que mientras el profesor y los estudiantes van leyendo el libro, ten-
gan también la oportunidad de ejecutar pequeños snippets en python, hacer cálcu-
los numéricos sencillos, visualizar algunos conceptos de interés o interactuar con
RR
%matplotlib nbagg
Este es un comando delicado que determina el tipo de backend sobre el que van
a correr los gráficos. Existen dos tipos de backends, inline que ejecuta gráficos
simples sin posibilidad de interacción básica y el nbagg que permite alguna inter-
actividad. Es importante entender que una vez activado un backend, para activar
el otro debe reiniciarse el notebook. Por defecto se activará el backend nbagg.
Podemos probar si el backend funciona correctamente ejecutando el siguiente
comando gráfico:
In [4]: linea,=plt.plot([0,1],[0,1])
R
O
D
A
RR
BO
Para ver el contenido completo del paquete basta que vaya directamente el
archivo meccel.py2 que esta disponible en el listado que verá en su cuenta en
Jupyter o puede verlo en línea en el archivo meccel.py3 del repositorio GitHub.
Una vez insertado el paquete, las herramientas contenidas en él pueden uti-
lizarse. Así por ejemplo, para generar 10 números aleatorios puede usarse:
In [5]: np.random.rand(20)
R
0.3880809 , 0.61689789, 0.58010575, 0.85005245, 0.55587847])
O
Figuras y gráficos D
Existen tres tipos de elementos gráficos que pueden aparecer en este libro elec-
trónico:
A
• Las imágenes, que son dibujos o representaciones pictóricas de un concepto,
elaboradas con un software diferente al libro mismo. La mayoría de las fig-
RR
uras son incluídas como parte del paquete del libro electrónico y solo en
algunos casos pueden provenir de sitios diferentes.
• Los gráficos, que son producidos por programas incluídos en los libros pero
BO
• Las figuras que son productos gráficos (estáticos o animaciones) de los co-
mandos de los mismos snippets incluídos en el libro.
2 ./meccel.py
3 https://raw.githubusercontent.com/seap-udea/MecanicaCeleste-Herramientas/master/
meccel.py
1.3. Introducción 17
R
O
Figure 1.2: Generación de las figuras cónicas a partir de intersecciones de un plano
con un cono doble
D
Este es un ejemplo de un gráfico:
A
RR
BO
Los más curiosos podrán encontrar el código fuente de cada figura en el note-
book preparado especialmente para ese fin, Chapter ??
18 Chapter 1. Preambulo
In [6]: fig=plt.figure(figsize=(5,5))
plot=plt.plot(np.random.rand(1000),'ko')
R
O
D
A
RR
BO
Figuras interactivas
En algunos casos especiales es posible toparse con una figura interactiva como
esta:
In [7]: i=interact(elipsePlot,p=(0.1,10),e=(0.0,1.0,0.05),vmax=(1,10,0.5),figsize=fixed((4,4
1.3. Introducción 19
R
O
D
En este caso para ver el código fuente de la rutina elipsePlot es necesario ver
A
el paquete meccel.py.
Nótese como los parámetros de la rutina elipsePlot aparecen enumerados
en la llamada al comando interact con los rangos en los que se permitirá variar
RR
SPICE
BO
Una de las herramientas más poderosas incluídas con este libro electrónico es la
biblioteca de Python SpiceyPy que provee una interface al sistema SPICE de NASA.
Con esta biblioteca se pueden realizar una innumerable cantidad de operaciones
especialmente con objetos geométricos como vectores y matrices, la mayoría dis-
eñadas para calculos de la posición de objetos astronómicos en el cielo (cálculo de
efemérides).
Una descripción más detallada del uso de SPICE en estas notas esta disponible
en el Apéndice A4 . Sin embargpo para ilustrar las capacidades y el poder de esta
biblioteca mostramos en el snippet abajo cómo calcular por ejemplo la distancia
entre la Tierra y Marte en el momento actual.
Lo primero que necesitamos hacer es cargar los kernels de SPICE, archivos es-
peciales donde se almacenan los datos requeridos para los cálculos de posiciones
y tiempos en el Sistema Solar:
In [8]: spy.furnsh('util/kernels/naif0012.tls')
spy.furnsh('util/kernels/de430.bsp')
4 ./A01-01-MecanicaCeleste-Herramientas-SPICE-Basico.ipynb
20 Chapter 1. Preambulo
In [10]: marte=spy.spkgeo(4,et,"ECLIPJ2000",0)
tierra=spy.spkgeo(399,et,"ECLIPJ2000",0)
R
Y determinamos la distancia:
O
In [11]: distancia=spy.vnorm(spy.vsub(marte[0][:3],tierra[0][:3]))
print("Distancia Tierra-Marte (millones de km):",distancia/1e6)
Fundamentos
Matemáticos y Físicos
R
O
2.1 Curvas cónicas
2.1.1 Descripción geométrica D
A
RR
BO
21
22 Chapter 2. Fundamentos Matemáticos y Físicos
R
O
Figure 2.1: Generación de las figuras cónicas a partir de intersecciones de un plano
con un cono de dos hojas.
D
Existen tres tipos básicos de curvas cónicas, dos que son abiertas y una cerrada:
A
1. Parábola: es una curva abierta que se obtiene cuando un plano intersecta
paralelo al borde de los conos, intersecta cualquiera de ellos (Caso 1 en la
RR
3. Hipérbola: es una curva abierta y disconexa (formada por dos ramas) que se
produce al intersectar los conos con un plano paralelo a sus ejes (Caso 3 en
la Figura).
¿Qué sucede cuando el plano pasa a través del vértice del cono? En este caso
se tiene una cónica degenerada que tiene la misma forma de una recta o un punto.
Una forma de definir geométricamente las conicas es por medio de la llamada
recta directríz. Este método está basado en la elección de un sistema de coordenadas
(el cartesiano por ejemplo), y el uso de una recta auxiliar paralela a uno de los ejes
coordenados, llamado recta directriz.
2.1. Curvas cónicas 23
R
O
D
A
RR
La hipérbola, la parábola y la elipse son las tres figuras cónicas que se difer-
encian por el valor de la excentricidad. Este parámetro se define como la razón
constante entre dos distancias: desde el Foco hasta un punto P arbitrario y desde
este punto hasta la recta directriz fija.
PF
≡e (2.1)
PD
Donde e es una constante positiva de valor arbitrario.
Si definimos un sistema de coordenadas tal que el eje y pase por la recta direc-
tríz y el eje x pase por el foco, en términos de las coordenadas ( x, y) de cada punto
de la cónica, la anterior condición se puede escribir como:
p
( F − x )2 + y2
=e (2.2)
x
Donde F es la distancia del Foco a la directriz.
24 Chapter 2. Fundamentos Matemáticos y Físicos
In [2]: i=interact(conicaDirectriz,e=(0.1,2.0,0.05),F=(0.0,1.5),fx=(1.0,5.0),vmax=(0.1,5,0.1
R
O
D
A
RR
BO
Semilatus rectum
F2 (1 − e2 ) − 2F2 + F2 + p2 = 0
p2 − F 2 e2 = 0
R
O
p = eF
x2 (1 − e2 ) − 2xF + y2 + F2 = 0 (2.4)
• Una traslación, que implica modificar la posición del origen a un punto ar-
bitrario ( xo , yo ) referido al sistema original.
R
O
D
Figure 2.3: Definición de la figuras cónicas en el plano cartesiano.
A
Naturalmente la traslación es la transformación más simple. Si llamamos x 0 , y0 las
coordenadas de un punto en el sistema trasladado (ver figura), estas estarán dadas
en términos de las coordenadas en el sistema original por:
RR
x 0 = x − xo (2.5)
0
y = y − yo (2.6)
y la transformación inversa será:
BO
x = x 0 + xo (2.7)
0
y = y + yo (2.8)
Apliquemos por ejemplo una transformación a la ecuación original tal que xo =
C y yo = 0 (traslación solo en dirección del eje x, es decir en el eje de simetría de
la cónica). Esta transformación equivale a poner el origen en un punto distinto al
que pasa por la directriz. La ecuación algebraica de la cónica queda:
( x 0 + C )2 (1 − e2 ) − 2( x 0 + C ) F + y 02 + F 2 = 0 (2.9)
Si desarrollamos los términos obtenemos la ecuación general:
F
C=
1 − e2
Con esto la ecuación de la cónica se podría escribir:
e2 F 2
(1 − e2 ) x 02 + y 02 = (2.11)
1 − e2
Que se puede reescribir en una forma más tradicional como:
x 02 y 02
+ =1 (2.12)
R
e2 F 2 / (1 − e2 )2 e2 F 2 / (1 − e2 )
O
Esta forma de la ecuación nos permite hacernos a una idea de dónde queda C.
Si hacemos y0 = 0, en el caso de la elipse, habrán siempre dos puntos ubicados
D
a la misma distancia del origen (el punto C), a saber:
eF
x 0 ( y 0 = 0) = ±
1 − e2
A
Si al contrario hacemos x 0 = 0, las coordenadas de los puntos extremos serán:
eF
y 0 ( x 0 = 0) = ± √
RR
1 − e2
Es decir la forma simétrica de la ecuación algebraica resultante de la traslación,
es indicativa de que C esta ubicada en el centro de simetría de la cónica (el centro
de la elipse o el punto medio entre las ramas de la hiperbola).
2
√ Dado que en el caso en el que e < 1, El valor del factor (1 − e ) es menor que
BO
2
1 − e , los puntos extremos en dirección del eje x estarán más lejos que los puntos
extremos en dirección del eje y.
Llamamos a estas distancias longitudes de los semiejes de la elipse y se denotan:
eF
a≡ Semiejemayor (2.13)
1 − e2
eF
b≡ √ Semiejemenor (2.14)
1 − e2
Estas dos cantidades se relacionan así:
p
b = a 1 − e2
Examinando las expresiones anteriores podemos confirmar algo que intuíamos
de la definición geométrica básica: una elipse o una hipérbola pueden describirse
unicamente usando dos parámetros:
28 Chapter 2. Fundamentos Matemáticos y Físicos
x 02 y 02
2
+ 2 =1
a a (1 − e2 )
Utilice la herramienta interactiva, para ver que efecto tiene la variación de cada
uno de las propiedades de la elipse.
R
In [4]: i=interact(elipseCentrada,a=(0.0,5.0),e=(0.0,0.99,0.05),figsize=fixed((4,4)))
O
D
A
RR
BO
Parámetros de la hipérbola
x 02 y 02
− =1 (2.15)
e2 F 2 / ( e2 − 1)2 e2 F 2 / ( e2 − 1)
En este caso encontramos nuevamente que cuando y0 = 0 hay dos puntos ex-
tremos de la hipérbola (que llamamos también vértices o apsides de la cónica) que
se encuentran a lado y lado del centro de simetría a una distancia | a| = eF/(e2 − 1).
Sin embargo no existe ningún punto para el cuál x 0 = 0. De esto se deduce
que el centro de la hipérbola esta entre las dos ramas de la misma, en una posición
C = − F/(e2 − 1) de la directriz. Por tanto el foco se encuentra a una distancia del
centro igual a F + F/(e2 − 1) = Fe2 /(e2 − 1) = e| a|. La geometría resultante se
muestra en la figura.
R
O
D
A
RR
BO
y a = ±b (2.17)
por tanto, geométricamente el semieje menor de una hipérbola es la distancia
desde los vértices hasta las asíntotas.
30 Chapter 2. Fundamentos Matemáticos y Físicos
Utilice la herramienta interactiva, para ver que efecto tiene la variación de cada
uno de las propiedades de la hipérbola.
In [5]: i=interact(hiperbolaCentrada,a=(1.01,5.0,0.05),e=(1.01,5.00,0.05),vmax=(1,20,0.5),fi
R
O
D
A
RR
b
BO
tan ψ =
| a|
¿Qué sucede ahora si la dirección de los ejes coordenados no coinciden con aquella
de la directriz?. El resultado será una cónica rotada respecto a los nuevos ejes.
Si llamamos x 0 , y0 , z0 las coordenadas de un punto con respecto a los ejes rota-
dos, la relación que tendrán las coordenadas de ese punto con las coordenadas en
el sistema de ejes natural de la cónica (los ejes cuya dirección coincide con los de la
directriz) será:
1. det R = 1
R
2. R−1 = R T
O
versa (encontrar las coordenadas de un punto en el sistema rotado en términos de
las coordenadas en el sistema natural de la cónica) como:
0
x
D
y0 = R(−θ ) y
x
(2.24)
z0 z
A
Que explícitamente sería:
RR
O bien:
cos θ sin θ 0
R(−θ ) = − sin θ cos θ 0 (2.29)
0 0 1
Dado que normalmente nos interesa pasar las coordenadas del sistema natu-
ral de la cónica (los ejes rotados) al sistema de coordenadas de referencia (los no
primados), es común definir la matriz de rotación como:
Rz (θ ) ≡ R(−θ )
cos θ sin θ 0
Rz (θ ) = − sin θ cos θ 0 (2.30)
0 0 1
y las rotaciones como:
32 Chapter 2. Fundamentos Matemáticos y Físicos
x0
x
y0 = Rz (θ ) y (2.31)
z0 z
0
x x
y = Rz (−θ ) y0 (2.32)
z z0
El paquete SpiceyPy contiene una rutina útil para definir de manera sencilla
R
una matriz de rotación dado un ángulo y un eje:
O
In [6]: Rz=spy.rotate(-30*GRADOS,3)
print(Rz)
[[ 0.8660254 -0.5 0.
D
]
[ 0.5 0.8660254 0. ]
A
[ 0. 0. 1. ]]
RR
In [7]: a=1
BO
e=0.5
b=a*np.sqrt(1-e**2)
x=np.linspace(-a,a,1000)
y=b*np.sqrt(1-x**2/a**2)
z=np.zeros_like(y)
Y los graficamos:
In [8]: plt.figure(figsize=(3,3))
plt.plot(x,y)
plt.xlim((-2*a,2*a))
plt.ylim((-2*a,2*a))
Out[8]: (-2, 2)
2.1. Curvas cónicas 33
R
O
Para rotar los puntos de la elipse debemos construir un arreglo de arreglos:
D
In [9]: rps=np.array([[xp,yp,zp] for xp,yp,zp in zip(x,y,z)])
rs=np.array([spy.mxv(Rz,rp) for rp in rps])
A
In [10]: plt.figure(figsize=(3,3))
plt.plot(rs[:,0],rs[:,1])
plt.xlim((-2*a,2*a))
plt.ylim((-2*a,2*a))
RR
Out[10]: (-2, 2)
BO
34 Chapter 2. Fundamentos Matemáticos y Físicos
R
Ax 02 + Bx 0 y0 + Cy02 + Dx 0 + Ey0 + G = 0 (2.35)
o bien, matricialmente como:
O
A B/2 D/2 x
x 0 y0 1 B/2
C
D E/2 y = 0 (2.36)
D/2 E/2 F 1
Donde los coeficientes A, B, C, D, E, G dependerán de las dimensiones de la
cónica (F), de su forma (e) y de su rotación respecto a los ejes coordenados.
A
Las cónicas que son descritas por su ecuación algebráica se pueden clasificar
por medio de su discriminante que se define como dis = B2 − 4AC tal que si dis > 0
la cónica es una hipérbola, si dis = 0 una parábola y si dis < 0 es una elipse o un
RR
círculo cuando A = C.
También es posible probar que:
" p #1/2
( A − C )2 + B2
2
e= p (2.37)
η ( A + C ) + ( A − C )2 + B2
BO
R
O
D
A
RR
BO
x = F − r cos f (2.39)
y = r sin f (2.40)
donde hay que tener en cuenta que las variables x y F son cantidades de
definidas positivas. Reemplazando en la ecuación algebraica de la cónica:
p
r= (2.42)
1 + e cos f
R
La anterior expresión para la ecuación polar de las cónicas ofrece algunas di-
ficultades cuando se manipula esta ecuación en distintos contextos en mecánica
celeste. Considere por ejemplo el problema de calcular la derivada temporal de r
O
en función de la derivada temporal de f . Dado que la expresión tiene a f en el
denominador la relación resultante no será muy trivial.
Existe una manera más conveniente de escribir la ecuación polar usando para
D
ello, sin embargo una identidad geométrica nueva.
Consideremos inicialmente el caso de una elipse. Respecto al centro, los puntos
de la elipse satisfacen la ecuación algebraica:
A
x2 y2
RR
+ =1
a2 b2
x = a cos E (2.43)
y = b sin E (2.44)
Nótese que los puntos que satisfacen el conjunto anterior de ecuaciones, tam-
bién satisfacen la ecuación general de más arriba.
Pero, ¿qué significado geométrico tiene el ángulo E?.
En la figura abajo se muestra como las ecuaciones paramétricas recién intro-
ducidas equivalen a una construcción geométrica que implica inscribir y circun-
scribir la cónica entre dos circunferencias de radios a y b.
Al parámetro E se lo conoce comunmente como anomalía excéntrica y puede
usarse de forma análoga a como se usa f para definir completamente la posición
de un punto sobre la elipse.
2.1. Curvas cónicas 37
R
O
D
A
Figure 2.6: Definición de la anomalía excéntrica
RR
y b
=
yc a
De modo que uno podría describir la elipse como el lugar geométrico de los
puntos tal que están a una distancia del eje x en proporción b/a de la distancia de
los puntos de una circunferencia de radio a.
¿Será posible escribir una ecuación en términos de E que nos de la distancia de
cada punto de la elipse al foco de la misma manera que lo hicimos con f ?
Consideremos la construcción geométrica que se muestra en la figura abajo
38 Chapter 2. Fundamentos Matemáticos y Físicos
R
O
D
A
Figure 2.7: Construcción geométrica para construir la ecuación de la elipse en tér-
minos de E
RR
PD b
= (2.45)
QD a
BO
r = a(1 − e cos E)
x = a cosh F (2.48)
y = a sinh F (2.49)
(2.50)
R
r = a(e cosh F − 1) (2.51)
O
r
f e+1 E
tan = tanh (2.52)
2 e−1 2
D
2.1.4 Cónicas en el espacio
A
Hasta ahora hemos descrito la cónica en un sistema de referencia en el que sus
ecuaciones, tanto en coordenadas cartesianas como en coordenadas polares, tienen
formas muy sencillas, referida al centro:
RR
x2 y2
2
± 2 =1
a b
o referida al foco:
BO
p
r= (2.53)
1 + e cos f
x = r cos f (2.54)
y = r sin f (2.55)
R
O
D
A
Figure 2.8: Secuencia de rotaciones que permiten pasar del sistema natural de ejes
RR
En la figura los ejes azules corresponden a los ejes del sistema del observador
BO
mientras que los ejes rotados son los ejes naturales de la cónica.
Las rotaciones se pueden describir cualitativamente como:
R
O
D
A
RR
Figure 2.9: Relación entre los ejes y los ángulos de Euler que representan una
rotación general desde el sistema natural de la cónica (ejes no primados, azul) ha-
cia un sistema de referencia arbitrario (ejes triplemente primados, rojo). La flecha
verde indicada con la letra N se conoce como la línea de los nodos
BO
R
x 000 cos ω cos Ω − cos i sin ω sin Ω cos ω sin Ω + cos Ω cos i sin ω
sin i sin ω
y000 = − cos Ω sin ω − sin Ω cos i cos ω − sin Ω sin ω + cos Ω cos i cos ω sin i cos ω
O
z000 sin Ω sin i − cos Ω sin i cos i
(2.60)
Puede demostrarse que en tanto esta matriz es el resultado del producto de
D
otras matrices ortonormales, ella es en si misma ortonormal. Por tanto la inversa
es simplemente la transpuesta.
A
T
cos ω cos Ω − cos i sin ω sin Ω cos ω sin Ω + cos Ω cos i sin ω
x sin i sin ω
y = − cos Ω sin ω − sin Ω cos i cos ω − sin Ω sin ω + cos Ω cos i cos ω sin i cos ω
sin Ω sin i − cos Ω sin i
RR
z cos i
(2.61)
Puede intentarlo usando este comando5 .
Usando SPICE podemos construir una matriz de rotación 3-d mediante la con-
catenación de la rutina rotate que vimos antes. Así:
BO
In [13]: Omega=30.0*GRADOS
omega=60.0*GRADOS
i=45*GRADOS
In [14]: RzOmega=spy.rotate(Omega,3)
Rxi=spy.rotate(i,1)
Rzomega=spy.rotate(omega,3)
In [15]: R3d=spy.mxm(Rzomega,spy.mxm(Rxi,RzOmega))
R3d
5 http://www.wolframalpha.com/input/?i=%5B%5Bcos(w),sin(w),0%5D,%5B-sin(w),cos(w)
,0%5D,%5B0,0,1%5D%5D*%5B%5B1,0,0%5D,%5B0,cos(n),sin(n)%5D,%5B0,-sin(n),cos(n)%5D%
5D*%5B%5Bcos(W),sin(W),0%5D,%5B-sin(W),cos(W),0%5D,%5B0,0,1%5D%5D
2.1. Curvas cónicas 43
SPICE tiene una rutina predefinida para calcular una matriz a partir de tres
ángulos de Euler: eul2m. Para ello conviene definir la matriz de rotación de una
rotación general en tres ejes como:
Donde e1 , e2 , e3 son índices que dan cuenta del eje alrededor del que se realiza
R
la rotación (siendo 1 el eje x, 2 el eje y y 3 el eje z). En estos términos la matriz de
rotación mencionada más arriba se puede describir como:
O
R3d = R(ω, i, Ω, 3, 1, 3)
Elementos orbitales
In [17]: i=interact(conicaEspacio,Omega=(0,360),i=(0,180),omega=(0,360),figsize=fixed((4,4))
44 Chapter 2. Fundamentos Matemáticos y Físicos
R
O
D
Una de las rutinas geométricas más útiles en la manipulación de las cónicas en
A
SPICE es aquella que pemite calcular la posición de un punto de una cónica con
una orientación arbitraria a partir de sus 6 elementos orbitales ( p, e, Ω, i, ω, f ).
La rutina que logra esto se llama conics y funciona así:
RR
In [18]: p=1
e=0.5
Omega=60*GRADOS
i=0*GRADOS
omega=30*GRADOS
BO
M=45*GRADOS
spy.conics([a,e,i,Omega,omega,mu,to],t)
Donde los parámetros mu, to y t son parámetros dinámicos que por ahora con-
viene asumir iguales a mu=1, to=0, t=0.
Así con los parámetros arriba definidos la posición de un punto sobre la cónica
estará dado por:
In [19]: spy.conics([p/(1+e),e,i,Omega,omega,M,0,1],0)
2.1. Curvas cónicas 45
R
de discusión más adelante en el curso.
Usando conics podemos dibujar una cónica completa sin recurrir a la matriz
de rotación:
O
D
A
In [20]: p=1
RR
e=0.7
Omega=0*GRADOS
i=30*GRADOS
omega=0*GRADOS
M=45*GRADOS
BO
Ms=np.linspace(0,360*GRADOS,1000)
xs=[];ys=[];zs=[]
for n in range(len(Ms)):
vecx=spy.conics([p/(1+e),e,i,Omega,omega,Ms[n],0,1],0)
xs+=[vecx[0]]
ys+=[vecx[1]]
zs+=[vecx[2]]
fig=plt.figure(figsize=(4,4))
ax=fig.add_subplot(111,projection='3d')
ax.plot(xs,ys,zs,'ko',ms=2)
vmax=p/(1-e)
#Decoración
xl=ax.set_xlim((-vmax,vmax))
yl=ax.set_ylim((-vmax,vmax))
zl=ax.set_zlim((-vmax,vmax))
46 Chapter 2. Fundamentos Matemáticos y Físicos
R
O
D
A
2.2 Mecánica Newtoniana
En 1687 Isaac Newton publica la que es considerada una de las más grandes obras
RR
maestras del intelecto humano, los Philosophiæ Naturalis Principia Mathematica. Los
Principia (como se los denomina generalmente) son un conjunto de libros que bus-
can desarrollar una teoría matemática y física que de cuenta del movimiento de
los cuerpos celestes. Como parte de esta construcción teórica, Newton se ve obli-
gado a formular leyes generales que rigen el movimiento de todos los cuerpos en
el Universo.
BO
2.2.1 Cinemática
La descripción del movimiento y las interacciones que lo afectan, requiere la defini-
ción de propiedades básicas.
Reconocemos dos tipos de propiedades del movimiento básicas: propiedades
cinemáticas y propiedades dinámicas. La definición de las propiedades y sus rela-
ciones, presentadas abajo utilizan las siguientes convenciones para los sistemas de
coordenadas:
2.2. Mecánica Newtoniana 47
R
O
D
A
RR
ordenadas.
– ˙
Definición general: ~v ≡ d~r/dt = ~r.
– Coordenadas cartesianas: ~v = ẋ â x + ẏ ây + ż âz .
– Coordenadas cilíndricas: ~v = ρ̇ âρ + ρθ̇ âθ + ż âz .
– Coordenadas esféricas: ~v = ṙ âr + r θ̇ cos φ âθ + r φ̇ âφ
• Aceleración ~a:
– Definición general: ~a ≡ d~v/dt = ~v˙ = d2~r/dt2 = r̈.
– Coordenadas cartesianas: ~a = ẍ â x + ÿ ây + z̈ âz .
– Coordenadas cilíndricas: ~a = (r̈ − r θ̇ 2 ) âr + (r θ̈ + 2ṙ θ̇ ) âθ + z̈ âz .
– Coordenadas esféricas: ~a = (r̈ − r θ̇ 2 cos2 φ − r φ̇2 ) âr + (2ṙ θ̇ cos φ +
r θ̈ cos φ − 2r θ̇ φ̇ sin φ) âθ + (2ṙ φ̇ + r φ̇2 sin φ cos φ + r φ̈) âφ
• Tirón y otras: Es posible definir propiedades que correspondan a derivadas
superiores de la posición. Así por ejemplo el tirón d~a/dt. Sin embargo, como
R
veremos para la mayoría de las fuerzas consideradas en este texto (y en mu-
chos problemas de física), las derivadas superiores de la aceleración no son
cantidades cinemáticas independientes, sino que pueden escribirse en térmi-
O
nos de las cantidades definidas anteriormente.
Una deducción detallada de las expresiones para ~v y ~a en los sistemas de coor-
denas cilíndrico y esférico esta disponible en estas documento en línea7 .
D
NOTAS: 1. En coordenadas cilíndricas en ocasiones la coordenada radial ρ es
denotada como r.
A
2. La convención para el nombre de los ángulos en mecánica celeste es distinta
de aquella usada en el cálculo vectorial donde normalmente el ángulo θ rep-
resenta el ángulo polar y φ el ángulo azimulat. Aquí, θ corresponde al ángulo
RR
La ecuación de movimiento
Es interesante comentar que una vez especificados valores iniciales t, ~r0 y ~v0 , el
movimiento de un cuerpo puede determinarse en cualquier instante del futuro, si
BO
~r¨ = ~a(t)
que tiene condiciones iniciales ~r (0) = r0 , ~r˙ (t = 0) = ~v0 . A esta ecuación se la
conoce como la ecuación de movimiento (EoM) del sistema.
Esta es una ecuación diferencial vectorial de segundo orden, una forma muy
sofisticada y compacta de expresar las relaciones entre las cantidades cinemáticas
básicas. Es posible también expresar esta ecuación diferencial, como dos ecua-
ciones diferenciales vectoriales de primer orden:
~r˙ = ~v (2.62)
~v˙ = ~a(t) (2.63)
7 https://ocw.mit.edu/courses/aeronautics-and-astronautics/
16-07-dynamics-fall-2009/lecture-notes/MIT16_07F09_Lec05.pdf
2.2. Mecánica Newtoniana 49
En esta última ecuación las funciones a encontrar son ~r (t) y ~v(t) y como vemos
las ecuaciones que las describen están acopladas. En términos de sus componentes
cartesianas estas ecuaciones se pueden escribir en la forma más explícita posible:
ẋ = v x (2.64)
ẏ = vy (2.65)
ż = vz (2.66)
v˙x = a x (t) (2.67)
v˙y = ay (t) (2.68)
v˙z = az (t) (2.69)
(2.70)
R
Una descomposición similar a la anterior puede hacerse si se quiere expresar o
se conocen las componentes de la aceleración en coordenadas cilíndricas o carte-
O
sianas.
tos. Así {yi }i=1,N representa el conjunto de todas las variables dependientes del
sistema (ejemplo, x, y, z, v x , vy , vz ). Para abreviar evitaremos indicar explícita-
mente el rango de valores de i y nos reduciremos a indicar el número de valores.
En esta notación:
ẍ = −(k/m) x
50 Chapter 2. Fundamentos Matemáticos y Físicos
ẋ = v x (2.71)
v̇ x = −(k/m) x (2.72)
y1 = x (2.73)
y2 = v x (2.74)
R
f 1 (t, y1 , y2 ) = y2 (2.75)
f 2 (t, y1 , y2 ) = −(k/m)y1 (2.76)
(2.77)
O
Esto permite escribir de forma general en python el sistem de ecuaciones difer-
enciales como: D
In [22]: def EoM(y,t,k,m):
dydt=[0,0]
dydt[0]=y[1]
A
dydt[1]=-(k/m)*y[0]
return dydt
RR
In [23]: y=[1.0,0.0]
Nt=1000
ts=np.linspace(0,100.0,Nt)
In [24]: k=1.0
m=1.0
solucion=odeint(EoM,y,ts,args=(k,m))
El vector solucion que devuelve la rutina odeint es una matriz cuyas colum-
nas representan cada una de las variables del problema y las filas el valor de esas
variables en cada uno de los tiempos definidos en el vector ts. Por ejemplo los
primeros 10 valores de la solución son:
In [25]: solucion[:10]
Out[25]: array([[ 1. , 0. ],
[ 0.99499417, -0.099933 ],
[ 0.98002679, -0.19886552],
[ 0.9552477 , -0.29580707],
[ 0.920905 , -0.38978709],
2.2. Mecánica Newtoniana 51
[ 0.87734249, -0.47986469],
[ 0.82499634, -0.56513805],
[ 0.76439061, -0.64475343],
[ 0.69613204, -0.71791376],
[ 0.62090404, -0.78388658]])
In [26]: fig,axs=plt.subplots(2,1)
axs[0].plot(ts,solucion[:,0],'k-')
axs[1].plot(ts,solucion[:,0],'k-')
R
Out[26]: [<matplotlib.lines.Line2D at 0x125d6dcc0>]
O
D
A
RR
BO
In [27]: fig,axs=plt.subplots(1,1)
axs.plot(solucion[:,0],solucion[:,1],'k-')
R
O
D
O combinar las propiedades para obtener una cantidad nuevas:
In [28]: xs=solucion[:,0]
A
vs=solucion[:,1]
Es=0.5*m*vs**2+0.5*k*xs**2
RR
fig,axs=plt.subplots(1,1)
axs.plot(ts,Es,'k-')
In [29]: xs=solucion[:,0]
vs=solucion[:,1]
In [30]: fig,axs=plt.subplots(1,1)
axs.plot(xs,vs,'k-')
R
particula,=axs.plot(xs[0],vs[0],'ro',ms=10)
O
D
A
RR
BO
In [32]: fig,axs=plt.subplots(1,1)
axs.plot(xs,vs,'k-')
particula,=axs.plot(xs[0],vs[0],'ro',ms=10)
animation.FuncAnimation(fig,animacion,frames=Nt,interval=50,blit=True,repeat=True)
R
O
D
A
RR
In [33]: fig,axs=plt.subplots(1,1)
axs.plot(xs,vs,'k-')
texto=axs.text(0,0,"t = 0")
particula,=axs.plot(xs[0],vs[0],'ro',ms=10)
def animacion(i):
x=xs[i]
v=vs[i]
t=ts[i]
particula.set_data(x,v)
particula.set_markersize(20*np.abs(v))
texto.set_text("t = %g"%t)
return particula,
animation.FuncAnimation(fig,animacion,frames=Nt,interval=50,blit=True,repeat=True)
R
O
D
Se pueden hacer muchas cosas usando las rutinas de Matplotlib para que la
animación tenga la apariencia y funcionalidad deseada. Para ello se recomienda el
tutorial de artista8 de Matplotlib.
A
2.2.3 Dinámica
RR
Las propiedades dinámicas son aquellas que son requeridas para describir la
relación entre las causas del movimiento y su descripción. Las más importantes
cantidades dinámicas son:
• Momentum lineal, p:
• Momentum angular, L:
– Definción: ~L ≡ ~r × ~p
– Una propiedad: ~L = m~r ×~r˙
– Patrón: [ L] =M L2 T−1 .
8 https://matplotlib.org/users/artists.html
56 Chapter 2. Fundamentos Matemáticos y Físicos
• Fuerza, F:
– Definción: ~F ≡ d~p/dt
– Una propiedad: Si la masa es contante, ~F = m~r¨
– Patrón: [ F ] =M L T−2 .
– Unidad del Sistema Internacional (SI): kg m s−2 ≡ N (Newton)
• Momento de fuerza o torca, τ:
– Definción: ~τ ≡ ~r × ~F
– Una propiedad: Si la masa es constante: ~τ = d~L/dt
– Patrón: [τ ] =M L2 T−2 .
• Energía cinética o vis viva, K o T:
R
– Definción: K ≡ m~v2 /2 = m~r˙ 2 /2 = mv2 /2
– Patrón: [K ] =M L2 T−2 .
– Unidad del Sistema Internacional: kg m2 s−2 ≡ J (Joule)
O
• Trabajo, W:
R ~r
1
D
– Definición: W = ~r 2 F (~r ) · d~r, donde para hacer la integral hay que
especificar la trayectoria ~r (t) sobre la que se mueve la partícula.
– Teorema del trabajo y la energía: Si m es constante,
A
W = ∆K = mv22 /2 − mv21 /2
– Patrón: [W ] =M L2 T−2 .
RR
Aunque hoy sabemos que a nivel microscópico las fuerzas de contacto son re-
alidad fuerzas de campo entre las partículas que constituyen los cuerpos, en el
contexto del concepto idealizado de partículas, la existencia de los átomos es irrel-
evante y es por ello que hacemos esta distinción.
En general la existencia de una fuerza se ve reflejada en el cambio en el mo-
mentum lineal de un cuerpo. Siempre que exista un cambio tal, sabemos que hay
una fuerza involucrada, sea esta una fuerza real o una fuerza ficticia.
### Fuerzas conservativas y no conservativas
Una clasificación adicional de las fuerzas se puede hacer con base en una
R
propiedad matemática relacionada con el trabajo. De acuerdo a esta propiedad
las fuerzas se clasifican en:
O
• Fuerzas conservativas: Una fuerza es conservativa si el trabajo realizado por
ella entre dos puntos arbitrarios del espacio es independiente de la trayecto-
ria específica que sigan. Como consecuencia de esta propiedad si se calcula el
D
trabajo de una fuerza conservativa a través de una trayectoria cerrada, este
solo podrá ser identicamente cero. Es decir la partícula no se ve modificada
por la fuerza si vuelve a su posición inicial.
A
• Fuerzas no conservativas o disipativas: Una fuerza es no conservativa si el
trabajo realizado por ella entre dos puntos arbitrarios del espacio es dependi-
ente de la trayectoria específica que sigan. En este caso el trabajo realizado
RR
en la forma:
I
~F (~r ) · d~r = 0
∇ × ~F = 0
A su vez por identidades vectoriales, está última relación a su vez implica que
la fuerza se puede escribir como el gradiente de un campo escalar:
~F = −∇U
Z Z
~F (~r )d~r = − ∇U · d~r = −[U (~r2 ) − U (~r1 )]
d~r
dU/dt = ∇U ·
dt
En términos de la energía potencial U, el teorema del trabajo y la energía se
escribe:
−∆U = ∆K
Lo que nos permite definir:
R
Energía mecánica asociada a una fuerza conservativa. Cuando una
partícula esta sometida a una fuerza conservativa F = −∇U, la canti-
dad E = K + U es constante a lo largo de la trayectoria de la partícula.
O
De aquí se deriva un teorema general:
D
Conervación de la Energía. Si una partícula esta sometida a fuerzas
conservativas y no conservativas, a lo largo de una trayectoria el trabajo
realizado por las fuerzas no conservativas WNC satisface:
A
W = ∆E
RR
R
Esta salvedad nos lleva a formular el siguiente postulado:
O
Sistema de referencia inercial. Si desde un sistema de referencia, la
suma de fuerzas reales sobre una partícula es cero y su movimiento
D
ocurre con velocidad constante, decimos que el sistema de referencia
es inercial.
A
Las reglas del movimiento y sus cantidades asociadas que describiremos ar-
riba no dependen si el mismo movimiento se describe en un sistema de referencia
RR
R
2.2.7 La ley de gravitación universal
Una de las más atrevidas y visionarias propuestas de Newton sobre la naturaleza
O
del movimiento de los cuerpos, tanto terrestres como celestes se conoce como la
ley de gravitación universal y establece que:
D
Ley de gravitación universal. Una partícula de masa m1 situada en ~r1
ejerce sobre cualquier otra partícula de masa m2 situada en un ~r2 , una
fuerza de campo dada por la relación matemática:
A
G Gm1 m2
F12 =− r̂
RR
r2
GMm
U=−
r
Dado que la energía potencial de cualquier otra partícula sometida a la fuerza
de M tiene la misma energía potencial es común escribir U en la forma:
U = mV
GM
V=−
r
2.2. Mecánica Newtoniana 61
R
mg
~a = ~g
mi
O
Donde ~g = −( GMg /r2 )r̂ es una cantidad independiente de la partícula estudi-
ada.
La razón m g /mi ha sido medida cuidadosamente en el laboratorio desde fi-
D
nales del siglo xvii con un resultado ampliamente conocido: el valor de la masa
gravitacional coincide con el valor de la masa inercial en una parte en 1017 , lo que
ha llevado a formular el siguiente principio general
A
Principio de equivalencia (versión débil). La trayectoria de una
partícula puntual en un campo gravitacional depende únicamente de
su posición y velocidad inicial y es independiente de su composición y
RR
estructura.
Este principio equivale a afirmar por principio que m g = mi . Por la misma
razón en lo sucesivo usaremos un solo símbolo m para representar esta cantidad
física.
Más adelante veremos una generalización fuerte del principio de equivalencia
BO
Las distancias entre los cuerpos cambian continuamente. Vamos a asumir sin
embargo los valores promedio y para la distancia Tierra Luna estimaremos un
valor igual a la diferencia entre la distancia media Tierra-Sol:
In [36]: dsoltierra=1.496e11 #m
dtierraluna=3.84e8 #m
dsolluna=dsoltierra-dtierraluna
In [37]: Fsoltierra=G*Msol*Mtierra/dsoltierra**2
print("Fuerza del Sol sobre la Tierra (N):",Fsoltierra)
Fsolluna=G*Msol*Mluna/dsolluna**2
print("Fuerza del Sol sobre la Luna (N):",Fsolluna)
R
Ftierraluna=G*Mtierra*Mluna/dtierraluna**2
print("Fuerza de la Tierra sobre la Luna (N):",Ftierraluna)
O
Fuerza del Sol sobre la Tierra (N): 3.525069974834854e+22
Fuerza del Sol sobre la Luna (N): 4.3563410318011734e+20
Fuerza de la Tierra sobre la Luna (N): 1.9833499537760423e+20
D
De manera sorprendente descubrimos que la fuerza de la Tierra sobre la Luna
A
es casi la mitad que la que ejerce el Sol sobre nuestro satélite:
In [38]: razon=Fsolluna/Ftierraluna
RR
print("El Sol ejerce sobre la Luna una fuerza %g veces mayor que la Tierra"%razon)
El Sol ejerce sobre la Luna una fuerza 2.19646 veces mayor que la Tierra
¿Cómo es posible que dada esta situación, la Luna siga orbitando la Tierra y no
BO
( )
mi~¨ri = ~FiE + ∑ ~Fji
j N
Si sumamos todas las ecuaciones diferenciales y tenemos en cuenta que las
fuerzas entre partículas satisfacen la ley de acción y reacción (débil o fuerte), i.e.
~Fji = −~Fij :
∑ mi~¨ri = ∑ ~FiE
i i
Si introducimos la definición
~R ≡ ∑i mi~ri
M
R
donde M = ∑i mi , las ecuaciones de movimiento se convierten en una sola
ecuación que tiene la forma de la ecuación de movimiento de una sola partícula
O
sometida a una fuerza total F E = ∑i ~FiE :
M~R¨ = ~F E
D
Esto da a entender la posibilidad que incluso cuando se tiene un número muy
grande de partículas su dinámica puede describirse como la de una sola partícula
con masa M = ∑i mi , ubicada en R, con momentum lineal ~ P = M~R˙ y sometida a
A
una fuerza F .E
In [39]: N=5
ms=100*np.random.rand(N)
M=ms.sum()
rs=1-2*np.random.rand(N,3)
vs=0.3*(1-2*np.random.rand(N,3))
In [40]: R=[0,0,0]
R[0]=(ms*rs[:,0]).sum()/M
R[1]=(ms*rs[:,1]).sum()/M
R[2]=(ms*rs[:,2]).sum()/M
V=[0,0,0]
V[0]=(ms*vs[:,0]).sum()/M
V[1]=(ms*vs[:,1]).sum()/M
V[2]=(ms*vs[:,2]).sum()/M
64 Chapter 2. Fundamentos Matemáticos y Físicos
Gráficamente:
In [41]: fig=plt.figure()
ax=fig.add_subplot(111,projection='3d')
#Masas
for i in range(len(ms)):
ax.text(rs[i,0],rs[i,1],rs[i,2],'%.1f'%ms[i],fontsize=6)
#Posiciones
ax.scatter(rs[:,0],rs[:,1],rs[:,2],s=ms,c='k')
ax.scatter(R[0],R[1],R[2],marker='+',s=M,c='k')
#Velocidades
ax.quiver(rs[:,0],rs[:,1],rs[:,2],vs[:,0],vs[:,1],vs[:,2])
ax.quiver(R[0],R[1],R[2],V[0],V[1],V[2],color='r')
R
Out[41]: <mpl_toolkits.mplot3d.art3d.Line3DCollection at 0x125c570f0>
O
D
A
RR
BO
Una caso particular de interés en relación con la definición del centro de masa es el
de un sistema formado por solo dos partículas. En esta situación el centro de masa
es:
~R = m1~r1 + m2~r2
M
Si introducimos el vector relativo ~r = ~r2 −~r2 es posible mostrar que la posición
de cada partícula se puede escribir en términos de la posición del centro de masa
y su vector relativo como:
2.2. Mecánica Newtoniana 65
m2
~r1 = ~R − ~r (2.78)
M
m
~r2 = ~R + 1~r (2.79)
M
R
O
D
A
Figure 2.11: Relación entre las posiciones de dos partículas, su centro de masa y el
vector relativo
RR
In [42]: dcm_soltierra_sol=(Mtierra/(Msol+Mtierra))*dsoltierra
print("Distancia del CM Sol-Tierra al centro del Sol (km):",dcm_soltierra_sol/1e3)
BO
dcm_soltierra_tierra=dsoltierra-dcm_soltierra_sol
print("Distancia del CM Sol-Tierra al centro de la Tierra (AU):",dcm_soltierra_tier
In [43]: dcm_tierraluna_tierra=(Mluna/(Mluna+Mtierra))*dtierraluna
print("Distancia del CM Tierra-Luna al centro de la Tierra (km):",dcm_tierraluna_ti
dcm_tierraluna_luna=dtierraluna-dcm_tierraluna_tierra
print("Distancia del CM Tierra-Luna al centro de la Luna (km):",dcm_tierraluna_luna
Teoremas de conservación
R
Si la ley de acción y reacción se fumple entonces ~ri × ~Fji +~r j × ~Fij = (~ri −~r j ) ×
~Fji . Si adicionalmente se cumple la versión fuerte de la ley de acción-reacción,
O
~ri −~r j = ~r j −~ri entonces:
~τ ≡ ∑~ri × FiE
D
Es decir la torca sobre un sistema de partículas interactuantes es la suma de las
torcas producidas solo por las fuerzas externas.
Si tomamos en cuenta además que por definición y para partículas cuya masa
A
es constante se cumple que ~L˙ = ~τ , en ausencia de torques externos el siguiente
resultado será cierto:
Podemos demostrar:
RR
In [45]: L=ls.sum(axis=0)
L
2.2. Mecánica Newtoniana 67
R
[ 0.22484005, 0.20127213, -0.0171316 ]])
O
In [48]: Lf=lsf.sum(axis=0)
Lf D
Out[48]: array([13.07010072, -8.26342262, 4.9338441 ])
~L = ~R × ~P + ∑~ri0 × ~pi0
i
In [49]: rsp=rs-R
vsp=vs-V
R
mos a este momentum angular sumar el del centro de masa:
In [51]: LCM=M*np.cross(R,V)
O
LCM
In [52]: L=LCM+Lp
A
L
i 1 i,j
De aquí puede probarse que el teorema del trabajo y la energía sigue siendo
válido siempre y cuando la energía mecánica se defina como:
1 1
K= MV 2 + ∑ mi vi 02
2 2
Teorema de la energía cinética total de un sistema. La energía cinética
total de un sistema de partículas es igual a la suma de la energía cinética
del centro de masa y la energía cinética de las partículas referidas al
centro de masa.
Out[53]: 5.302601755279212
R
2.2.12 Principios de relatividad
O
En las transformaciones entre sistemas de coordenadas definidas hasta ahora, el
tiempo se considera una variable de naturaleza absoluta, cuyo valor solo depende
del patrón de medida o del instante de referencia usado para definirlo.
D
Dado que el tiempo juega un papel fundamental en Astronomía y Mecánica
Celeste, es necesario introducir aquí una versión un poco más moderna del modo
en el que esta importante variable es considerada. Para ello deberemos intro-
A
ducir unas primeras ideas de la teoría de la relatividad, que aunque apareceran
descontextualizadas y faltas de una construcción teórica mucho más rigurosa, nos
servirán para los propósitos prácticos que perseguimos en este curso.
Una discusión profunda y desde los fundamentos de estos temas puede encon-
RR
El atributo geométrico para el principio anterior, viene del hecho que la función
ds tiene las propiedades de lo que se conoce en la geometría como una métrica.
70 Chapter 2. Fundamentos Matemáticos y Físicos
Una métrica, en términos simples, define la distancia generalizada entre dos pun-
tos en un espacio geométrico o matemático abstracto.
A la métrica particular definida por la ecuación de arriba se la conoce como la
métrica de Minkowski. Es claro que la métrica de Minkowski difiere de la métrica
euclidiana convencional de un espacio Rn para la cuál la distancia entre puntos con
coordenadas xi esta dada por ds2 = dx12 + dx22 + ... + dxn2 . Esta discrepancia entre
la métrica euclidiana, que produce en la geometría clásica todas las propiedades
geométricas que conocemos, es lo que da a la relatividad de Einstein sus caracterís-
ticas más inusuales.
Consideremos ahora una situación en la que queremos medir el intervalo de
tiempo transcurrido entre dos eventos cualquiera (la duración de una erupción
solar, la duración de una supernova, el tiempo de viaje de un vehículo espacial,
etc.)
Para ello usaremos dos sistemas de referencia inerciales: (1) un sistema de ref-
R
erencia arbitrario y (2) un sistema de referencia en el que los eventos ocurren en el
mismo lugar del espacio, ie. d~r = ~o (sistema de referencia propio).
Dado que en ambos sistemas de referencia el valor del ds es el mismo, la sigu-
O
iente igualdad aplicará para las medidas del intervalo de tiempo dt y el desplaza-
miento d~r: D 1 2
dτ 2 = dt2 − d~r
c2
Donde dτ es el intervalo medido en el sistema de referencia propio (tiempo pro-
A
pio). Sabiendo que d~r = ~vt (~v es la velocidad del sistema de referencia propio
respecto al sistema de referencia arbitrario), obtenemos la siguiente relación para
el intervalo de tiempo propio y el medido en el sistema de referencia arbitrario:
RR
dτ
dt = √ = γdτ
1 − v2 /c2
√
Donde hemos introducido el factor de Lorentz γ = 1/ 1 − v2 /c2 ≈ 1 +
v2 /(2c2 ) + O(v3 /c3 ), que cuantifica la discrepancia entre los tiempos medidos
BO
In [56]: vL=np.logspace(np.log10(1e-5),np.log10(1),1000)
gamma=1/np.sqrt(1-vL**2)-1
plt.plot(vL,gamma)
plt.xscale("log")
plt.yscale("log")
plt.xlim((1e-5,1e0))
plt.ylim((1e-11,1e1))
plt.xlabel(r"$v/c$")
plt.ylabel(r"$\gamma-1$")
plt.grid()
2.2. Mecánica Newtoniana 71
R
O
D
El valor de γ es para la mayoría de las velocidades comunes, i.e. v/c 1, es
muy cercano a 1 (γ − 1 ≈ 0). Así por ejemplo, en el caso de un sistema de referencia
A
unido a la Tierra, v = 30 km/s (sistema propio de la Tierra) y otro unido al Sol, el
valor de la velocidad será v/c = 10−4 y γ − 1 ∼ 10−8 .
Esto implica que por cada segundo propio que pase en el sistema de referencia
RR
¿Qué sucede si queremos estudiar ahora un fenómeno que no se mueve con ve-
locidad constante?.
En este caso no podemos encontrar un observador inercial que se mueva a la
misma velocidad constante que el fenómeno. Para resolver este problema A. Ein-
stein introdujo implícitamente en 1905 en su teoría de la relatividad el denominado
postulado de los relojes que establece que:
Postulado de los relojes. Si un fenómeno se mueve con velocidad vari-
able ~v(t) con respecto a un observador inercial y respecto a este ob-
servador tiene una duración ∆t, la duración propia del fenómeno ∆τ
se puede obtener sumando la duración propia de porciones infinites-
imales del movimiento tal y como son medidas por observadores in-
erciales que se mueven a la velocidad instantánea v(t) del fenómeno.
Matemáticamente:
Z ∆t q
∆τ = 1 − v(t)2 /c2 dt
0
72 Chapter 2. Fundamentos Matemáticos y Físicos
R
hora de describir la evolución de estos sistemas.
Imagine por ejemplo esta situación hipotética. En una misión espacial se debe
O
conocer el tiempo en el que se debe producir una maniobra. Los controladores en
Tierra pueden determinar ese tiempo t en su sistema de referencia, sin embargo el
tiempo τ medido en la nave será distinto por las consideraciones anteriores. Si a
la nave se la instruye para que realice la maniobra en el tiempo t de la Tierra esta
D
podría ocurrir más tarde de lo necesario para que la maniobra sea exitosa.
En la próxima sesión pondremos en práctica estas ideas cuando aprnedamos a
calcular, al menos numéricamente, la posición y velocidad de cuerpos del sistema
A
Solar y vehículos espaciales.
Donde dxi son los intervalos medidos en cada una de las tres coordenadas
del espacio (x,y,z) y los coeficientes métricos gtt y gij dependen de la intensidad y
propiedades del campo gravitacional (determinadas a su vez por la distribución y
densidad de materia) y de la ubicación dentro del campo en el que se encuentre el
R
cuerpo.
Es importante anotar aquí que las coordenadas t y ~r que aparecen en esta
ecuación son las coordenadas medidas por un observador que se encuentra en
O
un lugar muy lejano en el que el campo gravitacional es despreciable.
Un caso de particular interés en mecánica celeste es el del campo gravitacional
producido por una partícula puntual de masa M (o equivalentemente el producido
por una distribución de materia esféricamente simétrica) que no rota (o lo hace
D
muy lentamente). En esta situación, puede probarse que el intervalo viene dado
por la denominada métrica de Schwarzschild:
A
−1
2 2GM 2 2GM
ds = 1− 2 (cdt) − 1 − 2 dr2 − r2 (dφ2 + cos2 φdθ 2 )
c r c r
RR
−1
2 2V 2 2V
ds = 1+ 2 (cdt) − 1 + 2 dr2 − r2 (dφ2 + cos2 φdθ 2 )
c c
Una serie de interesantes consecuencias para la medida del tiempo, se derivan
de esta métrica.
Si comparamos por ejemplo el intervalo de un fenómeno medido en reposo en
elobtenemos la relación:
r
2V
dτ = 1 + 2 dt
c
O equivalentemente:
dτ
dt = √ = Σdτ
1 + 2V/c2
√
Donde introducimos el factor de Schwarzschild, Σ = 1/ 1 + 2V/c2 = 1 −
V/c2 + O(V 2 /c4 ), que tiene una clara analogía con el factor de Lorentz gamma.
74 Chapter 2. Fundamentos Matemáticos y Físicos
rs=np.linspace(R,10*R,1000)
Vs=-G*M/rs
Sigmas=1/np.sqrt(1+2*Vs/c**2)
fig=plt.figure()
plt.plot(rs/R,Sigmas-1)
R
plt.xlabel(r"$r/R$")
plt.ylabel(r"$\Sigma-1$")
O
plt.xlim((1,rs.max()/R))
plt.grid()
D
A
RR
BO
dt
dτ1 = (2.83)
Σ (r1 )
dt
dτ2 = (2.84)
Σ (r2 )
De allí los tiempos medidos por los dos observadores se relacionarán como:
Σ (r2 )
p
1 + 2V (r1 )/c2
dτ1 = dτ2 = dτ2 p
Σ (r1 ) 1 + 2V (r2 )/c2
Que expandiendo a términos de primer orden en V/c2 queda:
V (r1 ) − V (r2 )
dτ1 ≈ dτ2 1 +
R
c2
Una expresión que es comúnmente utilizada en aplicaciones satelitales.
El último caso de interés es el de una partícula móvil con velocidad ~v(t) en
O
el campo gravitacional (medida por un observador en reposo en el campo) y la
diferencia entre el tiempo que ella percibe y el que percibe un observador muy
lejano.
D
La velocidad instantánea v medida por el observador en reposo en el campo
gravitacional estará dada por:
A
dl
v=
dτ
Donde definimos el desplazamiento propio dl 2 = (1 + 2V/c2 )dr2 + r2 (dφ2 +
cos2 φdθ 2 ). Con esta definición podemos re escribir la métrica de Schwarzschild
RR
como
dτ
dt = √ √
1 + 2V/c2 1 − v2 /c2
dt = Σγdτ
Es decir el efecto sobre el tiempo de estar moviéndose en un campo gravita-
cional es rigurosamente equivalente a la combinación simple del efecto de moverse y
el efecto de la geometría del espacio tiempo en el campo gravitacional.
Con un razónamiento similar al hecho anteriormente, puede probarse que el
tiempo medido para un evento que ocurre en un tiempo propio dτ en un vehículo
que se mueve con velocidad v respecto al campo gravitacional, medido por dos
observadores en posiciones r1 y r2 diferentes en el campo será:
p
1 + 2V (r1 )/c2
dτ1 = p γdτ2
1 + 2V (r2 )/c2
76 Chapter 2. Fundamentos Matemáticos y Físicos
R
Sistemas de referencia celestes
O
La posición de cualquier cuerpo en el cielo se determina respecto a dos circunferen-
cia máximas de referencia perpendiculares: un ecuador (en general) y un meridiano
de referencia. Los ángulos esféricos medidos respecto a estos dos planos se llaman
latitud φ y longitud θ.
D
A
RR
BO
R
x EQ cos δ cos α
y EQ = r cos δ sin α
O
z EQ sin δ
y EC = r cos b sin l
z EC sin b
Distintos fenómenos dinámicos hacen que la posición de estos planos cambie
respecto a las estrellas. Las componentes más importantes de estos cambios son
producidas por los movimientos de precesión y nutación. Distintos modelos físicos
BO
se han desarrollado para predecir con precisión la orientación de los planos del
ecuador y de la eclíprica.
Por esta misma razón cuando se especifica la posición de un cuerpo en el es-
pacio debe indicarse claramente respecto a que tiempo se específica esa posición.
Normalmente las posiciones de los cuerpos en catálogos se proveen respecto a un
ecuador y una eclíptica media (calculada con modelos simples de la precesión y la
nutación) en tiempos específicos de la historia.
El sistema más utilizado actualmente es referido al ecuador y la eclíptica me-
dia correspondientes al primero de enero del año 2000 a las 12:00:00 de tiempo de
efemérides ver más abajo. A este sistema de referencia específico se lo llama J2000.0
y es un estándar de facto en astronomía.
(centro de masa de todos los planetas) es un mejor lugar para referir las observa-
ciones. Sin embargo la definición de la dirección de unos ejes fijos en el espacio no
es trivial.
Desde tiempos históricos se han usado fenómenos como las estaciones (el
movimiento del Sol por la eclíptica) para definir direcciones de referencia (el punto
vernal por ejemplo). Sin embargo fenómenos dinámicos complejos como la prece-
sión de los equinoccios, hacen que estas definiciones no sean estacionarias y difí-
ciles de estandarizar.
Las estrellas podrían permitir definir direcciones fijas en el espacio. Sin em-
bargo el movimiento del Sol en la Galaxia y el movimiento propio de esas mismas
estrellas dificultan la tarea, especialmente si de lo que se trata es de construir un
sistema de referencia preciso.
Esto ha obligado a los Astrónomos a recurrir a observaciones de objetos extra-
galácticos que por su distancia carecen completamente de movimientos propios en
R
el cielo (movimientos relativos entre sí). La observación de cientos de estos objetos
ha permitido de definir un sistema de referencia estándar respecto al cuál definir
O
la posición de cualquier cuerpo en el espacio.
R
1. Escalas de tiempo uniformes. Estas escalas están basadas en la definición
del segundo atómico, un estándar que fue definido en el año 1972. Este se-
gundo es constante y no se modifica en el tiempo (lo que es esperable para
O
un estándar científico). Algunas escalas de tiempo uniformes son el tiempo
atómico internacional (TAI), el tiempo terrestre (TT), el tiempo geocéntrico coor-
dinado (TCG), el tiempo coordinado del baricentro TCB, el tiempo dinámico del
D
baricentro (TDB) o el tiempo de efemérides (Teph ).
divulgativo11 .
Escalas uniformes
• TCB, Tiempo Coordinado del Baricentro (del Sistema Solar). Tiempo cal-
culado en el Baricentro del Sistema Solar (donde se asume no hay ningún
efecto de la gravedad producida por el Sol y los planetas). Por efecto de la
dilatación gravitacional del tiempo, Avanza a un ritmo L B = 6.97 × 10−8 más
10 documentos/USNO-Circular-179-Oct-2006.pdf
11 https://www.investigacionyciencia.es/blogs/astronomia/76/posts/qu-hora-es-14889
80 Chapter 2. Fundamentos Matemáticos y Físicos
• TT, Terestrial time. Tiempo terrestre. Se calcula a partir del tiempo TAI como
TT = TAI + 32.184, donde la diferencia de 32.184 segundos, se asume con-
R
stante. Esta diferencia corresponde al número de segundos bisciestos acumu-
lados desde tiempos históricos hasta la definición de la escala TAI. Por efecto
de la dilatación gravitacional del tiempo se cumple que: TT=(1-LG )TCG.
O
• ET, Ephemeris time. Tiempo de efemérides. Este es el tiempo utilizado
actualmente para el reporte y el cálculo de la posición de cuerpos en as-
D
tronomía. En el presente el valor del ET es el mismo TT. Se define ∆ET=ET-
UTC.
A
• TDT, Terrestrial Dynamical Time. Hoy es el mismo TT.
R
O
D
A
RR
R
Out[61]: array([[ 1. , 0. , 0. ],
[ 0. , 0.91748206, 0.39777716],
[ 0. , -0.39777716, 0.91748206]])
O
De lo que sabemos sobre matrices de rotación vemos que la transformación
entre ambos sistemas involucra simplemente una rotación alrededor del eje x en un
ángulo cos−1 (0.91748206) = 23.439291409155842, que es justamente la oblicuidad de
la eclíptica en J2000.0
D
Usando esta matriz podemos convertir la posición calculada antes en J2000
(ecuatorial) al sistema eclíptico J2000.0:
A
In [62]: pos_EJ2000=spy.mxv(J2000_EJ2000,pos_J2000)
pos_EJ2000
RR
print("Latitud eclíptica:",l*RADIAN)
print("Longitud eclíptica:",b*RADIAN)
Este kernel (puede ver el contenido del kernel aquí12 ) contiene el valor de los
leap seconds introducidos en los últimos años. El archivo actualizado puede descar-
garse del sitio https://naif.jpl.nasa.gov/pub/naif/generic_kernels13 .
12 http://localhost:8888/edit/util/kernels/naif0012.tls
13 https://naif.jpl.nasa.gov/pub/naif/generic_kernels/
2.3. Fundamentos astronómicos 83
Una vez tenemos este Kernel podemos calcular el valor del tiempo en otras
escalas de tiempo con rutinas como str2et, utc2et, unitim, etc.
Por ejemplo la siguiente rutina permite convertir el tiempo expresado en una
cadena de caracteres a la escala de tiempo de efemérides (ET):
In [65]: et=spy.str2et("2000-01-01 12:00:00 UTC+0")
et
Out[65]: 64.18392728473108
Para ilustrar los conceptos mostrados antes se muestra el tiempo de efemérides
en el inicio del primer día Juliano del año 2000. Como se ve, el tiempo UTC
esta adelantado en esa época de referencia 64.18 segundos respecto al tiempo de
efemérides, esto porque, como se explico antes el segundo del presente (con el que
se mide el UTC) es menor que el segundo del tiempo en el que se estableció un
R
segundo estándar con base en la rotación de la Tierra en astronomía (origen del
tiempo de efemérides). Esta diferencia es justamente la que llamamos ∆ET y que
puede ser calculada independientemente usando la rutina.
O
In [66]: spy.deltet(et,"UTC")
Out[66]: 64.18392730611507 D
Con esto en mente podemos calcular el valor de tiempo de efemérides justo
ahora:
In [67]: ahora=datetime.now().strftime('%Y-%m-%d %H:%M:%S UTC-5')
A
print("Fecha ahora:",ahora)
et=spy.str2et(ahora)
print("Tiempo de efemérides (segundos transcurridos desde 2000.0):",et)
RR
In [68]: JDUTC=spy.et2utc(et,"J",3)
print("Tiempo en JDUTC:",JDUTC)
C=spy.et2utc(et,"C",3)
print("Tiempo en Calendar:",C)
D=spy.et2utc(et,"D",3)
print("Tiempo en Calendar (day of year):",D)
ISOC=spy.et2utc(et,"ISOC",3)
print("Tiempo en ISO:",ISOC)
ISOD=spy.et2utc(et,"ISOD",3)
print("Tiempo en ISOD:",ISOD)
Si nos dan una fecha en et, dígase por ejemplo “2018-08-30 10:00:00 TT” y quer-
emos obtener ET en formato de segundos transcurridos desde 2000.0. Se puede
hacer un truco.
Primero obtenemos un “fake ET” suponiendo que la fecha anterior esta en UTC
(no lo está). Y al resultado le debemos restar el ∆ET. Demostremos esto usando la
fecha de la época J2000.0:
-2.1383982584666228e-08
R
Como era de esperarse el resultado no es exactamente 0 porque el valor del
∆ET tampoco fue calculado exactamente en el momento elegido. Aún así la pre-
cisión con la que se obtiene el ET para este tiempo es suficientemente buena (10−8
O
segundos) como para trabajar.
Con esta sencilla rutina podemos obtener tiempos aún más precisos:
D
In [70]: def etstr2et(str):
fake_et=spy.str2et(str)
deltet=spy.deltet(fake_et,"UTC")
et=fake_et-deltet
A
deltet_corrected=spy.deltet(et,"UTC")
et=et-(deltet_corrected-deltet)
return et
RR
Out[71]: 6.16608986092615e-11
Out[72]: 2451545.000000001
Out[73]: -32.18392728460781
In [74]: spy.furnsh("util/kernels/de430.bsp")
14 https://naif.jpl.nasa.gov/pub/naif/generic_kernels/
2.3. Fundamentos astronómicos 85
In [75]: spy.spkezr("MOON",et,"J2000","NONE","EARTH")
In [76]: spy.furnsh("util/kernels/Voyager_2.m05016u.merged.bsp")
In [77]: spy.spkez(-32,et,"J2000","NONE",10)
R
Out[77]: (array([ 2.36245473e+09, -5.62158066e+09, -6.54384428e+09, 4.36517433e+00
-4.36251183e+00, -1.45583060e+01]), 29835.860377972775)
O
Usando estos datos podríamos poner en práctica lo que vimos antes sobre el
cálculo del retraso en los relojes acumulado durante el viaje de la Voyager.
En este archivo15 encontrará los rangos de fechas en los que están disponibles
las posiciones de la sonda.
D
A
RR
BO
15 https://naif.jpl.nasa.gov/pub/naif/VOYAGER/kernels/spk/aa_summaries.txt
86 Chapter 2. Fundamentos Matemáticos y Físicos
R
O
D
A
RR
BO
Chapter 3
El Problema de los
N-cuerpos
R
O
En este capítulo desarrollaremos los elementos teóricos básicos y los resultados
más importantes de la Mecánica Celeste obtenidos con el denominado formalismo
vectorial de la mecánica. En este formalismo la descripción del movimiento de los
D
cuerpos sometidos a su mutua atracción gravitacional se hace partiendo de las
fuerzas que intercambian y resolviendo analítica y numéricamente la ecuación de
movimiento.
A
3.1 Formulación del problema
RR
87
88 Chapter 3. El Problema de los N-cuerpos
de la siguiente forma:
R
( )
1
mi ∑
~¨ri = ~Fji
O
j N
Donde se ha asumido que ninguna fuerza externa actúa sobre el sistema y solo
las fuerzas entre las partículas modifican sus movimientos.
D
La dificultad matemática más relevante del problema de los N-cuerpos, estriba
en el hecho de que las fuerzas entre las partículas ~Fji dependen a su vez de las
posiciones que cada una de ellas ocupa instántaneamente. De este modo el con-
A
junto de ecuaciones diferenciales que define el problema es altamente acoplado y
en general no lineal.
Como mencionamos antes, asumimos que las fuerzas entre las partículas son
RR
Gmi m j
~Fji = − (~r −~r j )
|~ri −~r j |3 i
Es importante tener en cuenta aquí la dirección del vector relativo ~r ji = ~ri −~r j
BO
tal y como se usará en esta ecuación (y que produce el signo menos en la expresión
para la fuerza). Este vector apunta en la dirección que va de la partícula que pro-
duce la fuerza (partícula j-esima) hacia la partícula que la experimenta (partícula
i-esima).
En términos explícitos, el problema de los N-cuerpos resulta de resolver el con-
junto de ecuaciones de movimiento:
( )
Gm j
~¨ri = − ∑ 3 ~r ji
j r ji
N
L3
[G] =
MT 2
Es decir, esta constante combina los patrones fundamentales usados para medir
las demás propiedades del sistema (masas, distancias y tiempos). Como tal, la
constante puede ser usada para definir el conjunto de unidades más apropiadas
para los propósitos perseguidos aquí.
R
Imaginemos que tenemos un conjunto de tres nuevas unidades, de nombre
arbitrario, y que en unidades del SI tienen un valor (factor de conversión) que lla-
mamos UL , U M y UT . Así por ejemplo, en el Sistema Solar se define una unidad de
O
longitud más apropiada para describir la posición y demás propiedades cinemáti-
cas del sistema, la Unidad Astronómica (AU, por sus siglas en inglés). Sabemos que
1 AU = 1.496 × 108 km. Si usaramos esta como la unidad de longitud, el factor de
conversións sería UL = 1.496 × 1011 m.
D
El primer propósito en nuestro problema será el de hacer que la constante de
gravitación tenga un valor pequeño. Arbitrariamente podríamos asignarle un valor
de 1, siempre y cuando usemos un sistema apropiado de unidades:
A
GC = 1
El subíndice C hace referencia a que esta elección conduce a lo que se conoce
RR
UL3 m3
1 = G = 6.67308 × 10−11
BO
U M UT2 kg · s2
De allí vemos que si escogemos armitrariamente el valor de al menos 2 de los
factores de conversión (por ejemplo UL y U M ) el tercero (por ejemplo UT ) puede
ser calculado.
Volviendo al ejemplo anterior, si hacemos UL = 1.496 × 1011 m. y U M = 1.98 ×
30
10 kg, el factor de conversión de los tiempos será:
s
UL3
UT = (3.1)
GU M
(3.2)
Numéricamente:
In [2]: G=6.67308e-11
UL=1.496e11
90 Chapter 3. El Problema de los N-cuerpos
UM=1.98e30
UT=np.sqrt(UL**3/(G*UM))
print("UT (s) = ",UT)
print("UT (h) = ",UT/3600)
print("UT (d) = ",UT/86400)
print("UT (a) = ",UT/(365.25*86400))
UT (s) = 5033865.755208481
UT (h) = 1398.296043113467
UT (d) = 58.26233512972779
UT (a) = 0.15951358009507952
R
Es interesante anotar que el valor del factor de conversión de tiempo (unidad de
tiempo) no es arbitrario. En realidad es del mismo orden de magnitud del período
de revolución de la Tierra (365.25 días). Esta no es una casualidad, sino el resultado
O
de que las escala de tiempo en un sistema en el que la masa que atrae tiene la masa
del Sol y las separaciones típicas son como la separación entre la Tierra y el Sol, es
similar a la duración del año.
Teniendo los valores de los patrones fundamentales de longitud, masa y
D
tiempo, es posible encontrar los patrones de velocidad, aceleración, energía y mo-
mentum angular, que son fundamentales en el estudio de la dinámica del sistema.
En la elección hecha anteriormente, estos patrones son:
A
In [3]: UV=UL/UT
print("UV (m/s):",UV)
RR
UA=UL/UT**2
print("UA (m/s^2):",UA)
UE=UM*UL**2/UT**2
print("UE (J = kg m^2/s^2):",UE)
BO
UV (m/s): 29718.710683774327
UA (m/sˆ2): 0.005903755111670335
UE (J = kg mˆ2/sˆ2): 1.7487394941176467e+39
Intente utilizar estas ideas para responder a esta pregunta: ¿cuáles es la unidad
de longitud característica, de un sistema gravitacional, tal que teniendo como
unidad de masa el Sol, las unidades de velocidad sean las mismas que la velocidad
de la luz?
3.1.2 Notación
A menudo cuando se cambian los sistemas de unidades en física (en electromag-
netismo, física atómica, relatividad o física de partículas), la mayoría de las can-
tidades físicas siguen escribiéndose con los mismos símbolos, lo que puede con-
ducir a confusiones muy grandes. La mecánica celeste no es la excepción, excepto
3.1. Formulación del problema 91
por una sola cantidad, cuya representación en unidades canónicas cambia. Nos
referimos a la masa de las partículas cuando aparece en el contexto de la fuerza
gravitacional.
Así mientras que en un sistema arbitrario de unidades escribiremos Gm, dado
que en el sistema canónico GC = 1, escribiremos este factor como µ. En térmi-
nos del sistema canónico de unidades, las ecuaciones de movimiento se pueden
escribir como:
( )
µj
~ri = − ∑ 3 ~rij
¨
j rij N
R
En el tiempo de Newton y sus contemporáneos, la solución a los problemas debía
obtenerse en términos de funciones o series (solución analítica). En tiempos más
recientes y con el advenimiento de los computadores, la solución a algunos prob-
O
lemas de la física teórica e incluso de las matemáticas, ha sido posible mediante el
uso de métodos numéricos (aproximados).
Si bien la solución a un problema usando estos métodos carece del valor general
D
que reconocemos en las soluciones analíticas, esta aproximación es reconocida en
el presente como una alternativa igualmente poderosa para entender los sistemas
físicos y eventualmente descubrir regularidades subyacentes.
A
En el capítulo anterior vimos que la ecuación de movimiento de una partícula
puede escribirse como un conjunto de 6 ecuaciones diferenciales de primer orden.
En el caso del problema de los N-cuerpos, las ecuaciones de movimiento se es-
criben como un sistema de 6N ecuaciones lineales de la forma:
RR
( )
ẏi = y3N +i−1 , i < 3N
µ
ẏi = − ∑ r j r~ji , i ≥ 3N
ji 3N
#Vector de estado
r=np.zeros((N,3))
v=np.zeros((N,3))
# Ecuaciones de movimiento
for i in range(N):
drdt[i]=v[i]
for j in range(N):
if i==j:continue
dvdt[i]+=-masas[j]/spy.vnorm(r[i]-r[j])**3*(r[i]-r[j])
# Devuelve derivadas
dydt=np.array([])
for i in range(N):dydt=np.concatenate((dydt,drdt[i]))
for i in range(N):dydt=np.concatenate((dydt,dvdt[i]))
return dydt
Para definir las condiciones iniciales podemos crear un diccionario, que nos
permitirá gestionar mejor la información sobre el sistema:
R
In [5]: sistema=dict(
particula1=dict(
O
m=1.0,
r=[1,0,0],
v=[0,0.5,0]), D
particula2=dict(
m=1.0,
r=[-1,0,0],
v=[0,-0.5,0.5],
A
),
particula3=dict(
m=1.0,
r=[0,1,0],
RR
v=[0,0,1]
)
)
In [7]: y,masas,N=sis2ini(sistema)
T=10.0
Nt=100.0
solucion=odeint(EoM_Nbody,y,np.linspace(0,T,Nt),args=(masas,))
R
n=3*i
rs[i]=solucion[:,n:n+3]
m=3*N+3*i
O
vs[i]=solucion[:,m:m+3]
return rs,vs
Debemos tener en cuenta que los objetos rs y vs son hipercubos con dimen-
D
siones N × Nt × 3. Así, rs[0] es una matriz con las posiciones de la n-esima
partícula en cualquier tiempo y rs[0][0] corresponde a la posición inicial de la
partícula 0.
A
Combinando los elementos anteriores se puede escribir un código relativa-
mente legible para la integración de las ecuaciones de movimiento de un sistema
de N-partículas:
RR
m=1.0,
r=[0.0,0.0,0.0],
v=[0.0,0.0,0.0]),
particula2=dict(
m=0.01,
r=[1.0,0.0,0.0],
v=[0.0,1.0,0.0],
),
particula3=dict(
m=0.001,
r=[0.88,0.0,0.0],
v=[0.0,0.88,0.0],
)
)
#Preparación de la solución
y,masas,N=sis2ini(sistema)
#Solución
solucion=odeint(EoM_Nbody,y,np.linspace(0,T,Nt),args=(masas,))
94 Chapter 3. El Problema de los N-cuerpos
#Extracción de la solución
rs,vs=sol2pos(solucion)
for i in range(N):
# Grafica en 2D
line,=ax2d.plot(rs[i,0,0],rs[i,0,1],'o',markersize=5,markeredgecolor='none')
color=line.get_color()
ax2d.plot(rs[i,:,0],rs[i,:,1],color=color)
ext=np.abs(rs[:,:,:2]).max()
R
ax2d.set_xlim(-ext,ext)
ax2d.set_ylim(-ext,ext)
O
Out[10]: (-1.0191547952456945, 1.0191547952456945)
D
A
RR
BO
In [11]: # Graficar en 3D
fig3d = plt.figure()
ax3d=Axes3D(fig3d)
for i in range(N):
line,=ax3d.plot(rs[i,:,0],rs[i,:,1],rs[i,:,2])
color=line.get_color()
ax3d.view_init(elev=30,azim=80)
3.1. Formulación del problema 95
ext=ext=np.abs(rs).max()
ax3d.set_xlim(-ext,ext)
ax3d.set_ylim(-ext,ext)
ax3d.set_zlim(-ext,ext)
R
O
D
A
RR
BO
3.1.4 Coreografías
Antes de intentar resolver el problema de los N-cuerpos, o mejor, de intentar ganar
algún entendimiento básico del mismo usando métodos analíticos, es interesante
mencionar una familia de soluciones al problema en las que dadas unas condi-
ciones iniciales muy específicas, la solución se hace increíblemente simple.
Considerese por ejemplo el caso de 3 partículas de masa idéntica que se encuen-
tran sobre los vértices de un triángulo equilatero. ¿Qué sucede si las partículas se
sueltan desde el reposo?. Dada la simetría del problema, las fuerzas sobre cada
partícula actuarán a lo largo de las mediatrices del tríangulo, y por la identidad
de las masas, lo que pase a una partícula le pasará exactamente a las demás. En
esta situación y sin resolver rigurosamente las ecuaciones de movimiento sabemos
que las partículas se moverán en línea recta a lo largo de las mediatrices hasta
encontrarse en el centro del triángulo.
96 Chapter 3. El Problema de los N-cuerpos
R
colisionan. ¿Cómo construir un sistema con simetrías similares pero garantizando
que las partículas no colisionen?
O
Una posible solución puede obtenerse si poniendo las partículas en la misma
configuración del triángulo equilatero, las dotamos de una rapidez idéntica, di-
rigida en un ángulo γ respecto a la línea perpendicular al radio del triángulo (ver
figura abajo).
D
Configuración de una solución de equilibrio relativo con 3 cuerpos
Supongamos que el Triángulo tiene el siguiente radio y la rapidez v de las
partículas, así como el ángulo que forman respecto a la línea perpendicular al radio
A
γ es:
In [12]: R=1.0
v=0.5
RR
gama=10.0*GRADOS
r=[0.0,R,0.0],
v=[-v*np.cos(gama),+v*np.sin(gama),0.0]),
particula2=dict(
m=1.0,
r=[-R*np.cos(30*GRADOS)+0.01,-R*np.sin(30*GRADOS),0.0],
v=[+v*np.cos(60*GRADOS+gama),-v*np.sin(60*GRADOS+gama),0.0],
),
particula3=dict(
m=1.0,
r=[+R*np.cos(30*GRADOS),-R*np.sin(30*GRADOS),0.0],
v=[+v*np.cos(60*GRADOS-gama),+v*np.sin(60*GRADOS-gama),0.0],
)
)
Nt=300
rs,vs,masas,N=solucionNbody(sistema,tini,tend,Nt)
lines=[]
for i in range(N):
line,=ax.plot(rs[i,0,0],rs[i,0,1],'o',ms=3)
lines+=[line]
vmax=np.abs(rs[:,:,0:2]).max()
ax.set_xlim((-1.2*vmax,1.2*vmax))
ax.set_ylim((-1.2*vmax,1.2*vmax))
ax.grid()
R
def animacion(n):
for i in range(N):lines[i].set_data(rs[i,:n,0],rs[i,:n,1])
O
return lines
anim=animation.FuncAnimation(fig,animacion,frames=Nt,interval=50,blit=True,repeat=T
D
A
RR
BO
98 Chapter 3. El Problema de los N-cuerpos
R
dx3=0.695804
y3=0.0
dy3=1.067860
O
x1=0.995492
dx1=-dx3/2
y1=0.0
dy1=-dy3/2
D
x2=-x1
A
dx2=dx1
y2=-y1
dy2=dy1
RR
#Sistema
sistema=dict(
particula1=dict(
m=1.0,
r=[x1,y1,0.0],
v=[dx1,dy1,0.0]),
BO
particula2=dict(
m=1.0,
r=[x2,y2,0.0],
v=[dx2,dy2,0.0],
),
particula3=dict(
m=1.0,
r=[x3,y3,0.0],
v=[dx3,dy3,0.0],
)
)
tini=0.0
tend=10.0
Nt=300
rs,vs,masas,N=solucionNbody(sistema,tini,tend,Nt)
Animada, resulta:
3.1. Formulación del problema 99
In [17]: fig,ax=plt.subplots(1,1,figsize=(6,6))
lines=[]
for i in range(N):
line,=ax.plot(rs[i,0,0],rs[i,0,1],'ko',ms=5)
lines+=[line]
vmax=np.abs(rs[:,:,0:2]).max()
ax.set_xlim((-1.2*vmax,1.2*vmax))
ax.set_ylim((-1.2*vmax,1.2*vmax))
ax.grid()
def animacion(n):
for i in range(N):lines[i].set_data(rs[i,n,0],rs[i,n,1])
return lines
R
animacion(200)
anim=animation.FuncAnimation(fig,animacion,frames=Nt,interval=50,blit=True,repeat=T
O
D
A
RR
BO
R
j = x, y, z) que nos dan la posición de la partícula en el tiempo.
O
3.2.1 Cuadraturas y primeras integrales
La teoría de ecuaciones diferenciales señala que si existen simetrías implícitas en el
sistema, estas simetrías pueden expresarse en la forma de ecuaciones algebraicas
D
que relacionan las variables dependientes {~ri (t)} N con sus primeras derivadas
{~r˙i (t)} N , relaciones que pueden escribirse en general de la forma:
A
f ({~ri (t)} N , {~r˙i (t)} N , t) − k = 0
donde k es una constante. A estas relaciones se las conoce como cuadraturas o
primeras integrales del sistema de ecuaciones diferenciales.
RR
ÿ = t
Es claro que la ecuación puede escribirse en la forma:
BO
d dy 1 d 2
= t
dt dt 2 dt
o equivalentemente:
dy t2
d
− =0
dt dt 2
De aquí resulta entonces claro que la ecuación original tiene la siguiente
cuadratura:
dy t2
f (y, t) =− =k
dt 2
En este caso particular, basta una sola cuadratura para resolver el problema
original (la ecuación diferencial de primer orden resultante es separable), pero en
general se sabe que para tener un sistema completo de ecuaciones se requieren
16 documentos/simo-CoreographiesNBodyProblem.pdf
3.2. Integrales del problema de N-cuerpos 101
como mínimo 2 cuadraturas para una ecuación de segundo orden (esto porque en
realidad las funciones que hay que encontrar son y(t) y ẏ(t)).
Cuando una ecuación diferencial de segundo orden en una variable independi-
ente y(t) puede reducirse a dos cuadraturas decimos que la ecuación es integrable.
Las cuadraturas se llaman, primeras integrales del problema.
Si de lo que hablamos es de un sistema de N ecuaciones diferenciales de se-
gundo orden, harán falta 2N cuadraturas o primeras integrales para reducir el
problema solo a ecuaciones de primer orden.
En ocasiones encontrar las cuadraturas no es un proceso simple. Es necesario
utilizar lo que se conoce en matemáticas como un factor integrante.
Considere por ejemplo la siguiente ecuación diferencial:
ÿ = y
R
Si multiplico a ambos lados por ẏ se obtiene:
ÿẏ = yẏ
O
Que se puede escribir en la forma:
1 d 2 1 d 2
(ẏ ) = (y )
2 dt
D
2 dt
De donde se obtiene la ecuación diferencial equivalente:
A
d 2
(ẏ − y2 ) = 0
dt
Y de aquí la cuadratura:
RR
N mi µ j
∑ mi~r¨i = − ∑ ∑ r3ji
~r ji (3.3)
i =1 i j
R
!
d
dt ∑
˙
mi~ri = 0
i
O
De donde resultan las primeras 3 cuadraturas del problema:
~ ({~ri }, {~r˙i }) =
f CM D ∑ mi~r˙ i = ~P
i
Estas primeras integrales no son otra cosa que las componentes momentum
del centro de masa, ~P. Si bien ya habíamos mencionado esta cantidad antes, en el
A
contexto de nuestro problema, ~ P no es simplemente una cantidad arbitraria, sino
una estricta relación que existe entre las velocidades de todas las partículas del
sistema.
Esta expresión nos permite además demostrar que dado un sistema de N-
RR
~R = ∑ mi~ri
M
En los ejemplos desarrollados en la sección anterior, las posiciones y veloci-
dades siempre fueron expresadas en un sistema de referencia inercial arbitrario.
En lo sucesivo, las posiciones y velocidades siempre estarán referidas al centro de
masa. En el ejemplo a continuación mostramos cuan diferente se ve la solución de
un sistema respecto al sistema arbitrario definido por las condiciones iniciales, y
aquel sistema de referencia del centro de masa.
Primero resolvemos el sistema en el sistema de referencia original:
In [19]: sistema=dict(
particula1=dict(
m=1.0,
r=[0.0,0.0,0.0],
v=[0.0,0.0,0.2]),
3.2. Integrales del problema de N-cuerpos 103
particula2=dict(
m=0.1,
r=[1.0,0.0,0.0],
v=[0.0,1.0,-0.2],
),
particula3=dict(
m=0.1,
r=[0.88,0.0,0.0],
v=[0.0,0.88,0.0],
)
)
Nt=1000
rs,vs,masas,N=solucionNbody(sistema,0.0,10.0,Nt)
R
masa:
O
Masa=np.array(masas).sum()
P=np.zeros((Nt,3))
R=np.zeros((Nt,3))
for n in range(Nt):
for i in range(N):
P[n]+=masas[i]*vs[i,n]
D
R[n]+=masas[i]*rs[i,n]/Masa
A
V=P/Masa
In [21]: rscm=np.zeros((N,Nt,3))
vscm=np.zeros((N,Nt,3))
for n in range(Nt):
for i in range(N):
rscm[i,n]=rs[i,n]-R[n]
BO
vscm[i,n]=vs[i,n]-V[n]
In [22]: # Graficar en 3D
fig3d=plt.figure(figsize=(10,6))
ax3d_in=fig3d.add_subplot(121,projection='3d')
ax3d_cm=fig3d.add_subplot(122,projection='3d')
for i in range(N):
ax3d_in.plot(rs[i,:,0],rs[i,:,1],rs[i,:,2])
ax3d_cm.plot(rscm[i,:,0],rscm[i,:,1],rscm[i,:,2])
ax3d.set_ylim(-ext,ext)
ax3d.set_zlim(-ext,ext)
fig3d.tight_layout()
R
O
D
A
Nótese como respecto al centro de masa, la trayectoria de las partículas es mu-
cho más simple y la relación entre ellas se hace más fácil de entender.
En el problema de los N-cuerpos, las ecuaciones diferenciales originales no se
RR
modifican (en su forma) al pasarnos al sistema de referencia del centro de masa del
sistema. Por la misma razón, en lo sucesivo y a menos que se indique otra cosa, la
descripción de los sistemas estará referida al centro de masa.
En realidad el centro de masa permite definir dos cuadraturas que se pueden
escribir (en el sistema de referencia del centro de masa como):
BO
d
(~r ×~r˙ i ) = ~ri ×~r¨i
dt i
La ecuación de movimiento conjunta se puede escribir de la forma
!
d
dt ∑
mi~ri ×~r˙ i = 0
R
i
O
~f L ({~ri }, {~r˙i }) = ∑ mi~ri ×~r˙ i = ~L
D i
de referencia inercial.
A este plano lo conocemos por el plano invariable de Laplace.
Rotando la figura en 3D anterior puede encontrarse claramente el plano de
Laplace del Sistema.
Considerese el sistema más complejo descrito por las condiciones iniciales
abajo:
BO
In [23]: sistema=dict(
particula1=dict(
m=1.0,
r=[1,0,0],
v=[0,0.5,0]),
particula2=dict(
m=1.0,
r=[-1,0,0],
v=[0,-0.5,0.5],
),
particula3=dict(
m=1.0,
r=[0,1,0],
v=[0,0,1]
)
)
Nt=1000
106 Chapter 3. El Problema de los N-cuerpos
rs,vs,masas,N=solucionNbody(sistema,0.0,10.0,Nt)
rs,vs=in2cm(rs,vs,masas,Nt,N)
In [24]: L = np.zeros((Nt,3))
for n in range(Nt):
for i in range(N):
L[n]+=masas[i]*np.cross(rs[i,n],vs[i,n])
El momento angular debe ser el mismo en todos los tiempos, de modo que una
gráfica de sus componentes en el tiempo debe producir una línea horizontal o de
muy poca variación:
In [25]: fig=plt.figure()
R
ts=np.linspace(0.0,10.0,Nt)
plt.plot(ts,L[:,0],'bo-')
O
plt.plot(ts,L[:,1],'ro-')
Gráficamente:
In [26]: # Graficar en 3D
fig3d=plt.figure(figsize=(10,6))
ax3d=fig3d.add_subplot(111,projection='3d')
for i in range(N):
ax3d.plot(rs[i,:,0],rs[i,:,1],rs[i,:,2])
3.2. Integrales del problema de N-cuerpos 107
ax3d.plot([0,L[0,0]],[0,L[0,1]],[0,L[0,2]],'k',ms=10)
ax3d.view_init(elev=30,azim=80)
ext=np.abs(rs).max()
ax3d.set_xlim(-ext,ext)
ax3d.set_ylim(-ext,ext)
ax3d.set_zlim(-ext,ext)
fig3d.tight_layout()
R
O
D
A
RR
3.2.5 Energía
Para la siguiente cuadratura o primera integral debemos primero identificar que
BO
Reconociendo la identidad vectorial ~ri · ∇i Uji = dUji /dt, sumando las ecua-
ciones de movimiento de todas las partículas obtenemos:
! !
d 1 d
dt 2 ∑ dt ∑ ∑ Uji
˙
mi~ri 2
=−
i i j
R
1 mi µ j
U ({~ri } N ) = − ∑ ∑
2 i j r ji
O
e identificamos en el término en la derivada del lado izquierdo la energía cinética
U ({~ri } N ), de todo el sistema, obtenemos la cuadratura:
D
f E ({~ri }, {~r˙i }) = K ~˙ri N + U ({~ri } N ) ≡ E
∑ mi~r˙ i = 0 (3.8)
i
∑ mi~ri = 0 (3.9)
i
~˙ri N + U ({~ri } N ) = E
K (3.10)
BO
R
G= ∑ pk · rk
k =1
O
N
1 d
G=
2 dt ∑ mk rk · rk
D
k =1
1 dI
G=
2 dt
El rango de valores del escalar G, para valores del tiempo muy largos, puede
escribirse como:
BO
G ( τ ) − G (0)
1 τ dG dG
Z
= dt =
τ τ 0 dt dt τ
Esto implica que una forma de la estabilidad a largo plazo de un sistema esta
determinada por la variación del escalar G, que por su relación con el momento de
inercia, depende a su vez de la segunda derivada de esta cantidad:
dG 1 d2 I
=
dt 2 dt2
Derivando obtenemos:
1
Ï = 2K − ∑~ri · ∇i U
2 i
∂U ∂U ∂U
∑~ri · ∇i U = ∑ xi
∂xi
+ yi
∂yi
+ zi
∂zi
= −U
i i
De donde obtenemos:
1
Ï = 2K + U
2
Este resultado se conoce como el teorema del virial.
Si un sistema es estable a largo plazo el promedio de estas cantidades será:
1
h K i = − hU i
2
R
O
D
A
RR
BO
Chapter 4
R
O
In [1]: from meccel import *
%matplotlib inline
T=10.0
Nt=1000.0
sistema=dict(
particula1=dict(
m=10.0,
r=[1,0,0],
BO
v=[0,1,1]),
particula2=dict(
m=1.0,
r=[1.5,0,0],
v=[0,-3,1],
),
particula3=dict(
m=0.1,
r=[-1,0,0],
v=[0,3,1],
)
)
111
112 Chapter 4. El Problema de los dos cuerpos
Nt=300
rs,vs,masas,N=solucionNbody(sistema,tini,tend,Nt)
for i in range(N):
line,=ax.plot(rs[i,:,0],rs[i,:,1],rs[i,:,2])
color=line.get_color()
R
O
D
A
RR
BO
In [5]: rscm,vscm=in2cm(rs,vs,masas,Nt,N)
fig3d = plt.figure()
ax=Axes3D(fig3d)
for i in range(N):
line,=ax.plot(rscm[i,:,0],rscm[i,:,1],rscm[i,:,2])
color=line.get_color()
ext=ext=np.abs(rscm).max()
ax.set_xlim(-ext,ext)
ax.set_ylim(-ext,ext)
ax.set_zlim(-ext,ext)
R
O
D
Este sistema, que es similar a lo que sería un sistema formado por planetas
A
alrededor de una estrella, presenta un comportamiento que parece perfectamente
predecible, al menos cuando se consideran por separado los movimientos de la
partícula 2 respecto a la partícula 1 o la partícula 3 respecto a la partícula 1. Lla-
mamos a este tipo de sistemas, sistemas jerarquicos de N-cuerpos.
RR
• El problema de los dos cuerpos. Nótese que el sistema anterior puede verse
como un sistema de 2 sistemas de dos cuerpos. Si podemos resolver el prob-
BO
4.1 Formulación
Consideremos dos cuerpos m1 y m2 en posiciones ~r1 y ~r2 medidas respecto a un
orígen inercial. Asumiendo que la única interacción es de tipo gravitacional, las
ecuaciones de movimiento para cada partícula son
Gm
~r¨1 = 3 2~r (4.1)
r
Gm
~r¨2 = − 3 1~r (4.2)
r
R
Donde hemos utilizado la definición ~r = ~r2 −~r1 que usamos en la sección 2.3.2.
O
La primera propiedad interesante resulta al restar estas dos ecuaciones y teniendo
en cuenta que ~r¨ = ~r¨2 −~r¨1 :
D
µ
~r¨ = − 3~r
A
r
RR
m2
~r1 = ~R − ~r (4.3)
M
m
~r2 = ~R + 1~r (4.4)
M
Donde ~R = ~R(0) + ~
PCM t/(m1 + m2 ) es la posición del Centro de Masa del
sistema de partículas.
4.2. Constantes de movimiento del problema de los dos cuerpos 115
R
Figure 4.1: Relación entre las posiciones de dos partículas, su centro de masa y el
O
vector relativo
D
Si queremos obtener la solución a este problema usando el método de cuadrat-
uras, es necesario entonces encontrar 6 constantes de movimiento (cuadraturas). El
proceso de reducción que realizamos hace inviable que podamos usar las mismas
cuadraturas que deducimos para el problema de los N-cuerpos.
A
4.2 Constantes de movimiento del problema de los
RR
dos cuerpos
Podemos tomar la ecuación original y premultiplicar por el factor integrante ~r ×
que se integra trivialmente para dar:
BO
d
(~r ×~r˙ ) = 0
dt
El término entre paréntesis es una constante. Sin embargo no esta asociado con
ninguna cantidad física del sistema concreta pero su estructura nos recuerda el
momentum angular del sistema. Por esta misma razón la llamaremos el momentum
angular específico:
~h ≡ ~r ×~r˙ (4.5)
˙ concluimos que el movimiento del vector
Ya que ~h es perpendicular a ~r y ~r,
relativo del sistema ocurre sobre un plano. Si nos pasamos al sistema de referencia
del centro de masa esto implica además que las partículas se mueven sobre un
plano. Este es el plano invariante de Laplace para el problema y será en lo sucesivo
el plano respecto al que describiremos el movimiento del sistema.
Respecto al plano invariante de Laplace la posición y velocidad se puede es-
cribir como:
116 Chapter 4. El Problema de los dos cuerpos
~r = r aˆr (4.6)
~r˙ = ṙ aˆr + r θ̇ aˆθ (4.7)
h = r2 θ̇
Intentemos encontrar una nueva constante de movimiento, ahora a través de
un producto escalar.
R
µ
~r˙ ·~r¨ = − 3~r˙ ·~r (4.8)
r
O
µ
~r˙ ·~r¨ = − 2~r˙ · aˆr (4.9)
r
el producto punto en el segundo miembro de la última expresión, es la compo-
nente radial de la velocidad ~r˙ · aˆr = ṙ
D
µ
~r˙ ·~r¨ = − 2 ṙ
A
r
expresando lo último en términos de derivadas temporales
d 1 ˙2 d µ
RR
~r =
dt 2 dt r
de manera que
d 1 ˙2 µ
~r − =0
dt 2 r
BO
1 µ
e ≡ ~r˙ 2 −
2 r
Que en términos de las componentes explícitas es e = (v2x + v2y )/2 − µ/r o bien
e = (ṙ2 + r2 θ̇ 2 )/2 − µ/r.
Por su similaridad con la energía llamaremos a esta la energía mecánica específica
del sistema.
Finalemte calculemos el producto ~r¨ × ~h.
µ
~r¨ × ~h = − 3~r × ~h
r
como ~h es constante, el miembro de la izquierda se puede escribir como
d
~r¨ × ~h = (~r˙ × ~h)
dt
4.3. Solución explícita al problema de los dos cuerpos 117
!
d ˙ ~ ~rṙ ~r˙
(~r × h) = −µ 2 − (4.13)
dt r r
d ˙ ~ d ~r
R
(~r × h) = µ (4.14)
dt dt r
finalmente
O
d ˙ ~ ~r
~r × h − µ = ~0 (4.15)
dt rD
De donde deducimos que la constante de movimiento es:
~ ≡ ~r˙ × ~h − µ~r
A (4.16)
A
r
que se conoce como el vector de Laplace-Runge-Lenz (LRL). Notemos que este
vector esta siempre sobre el plano de la órbita.
RR
De donde lo anterior:
R
h2
~ =µ
~r · A −r
µ
O
~
Si definimos ~e ≡ A/µ obtenemos:
h2
~r ·~e = −r
D
µ
Si ahora hacemos ~r ·~e = re cos θre , la anterior ecuación se puede escribir como:
A
h2 /µ
r= (4.20)
1 + e cos θre
RR
De aquí se deduce que la dirección del vector LRL es la dirección del periapsis
y la magnitud es proporcional a la excentricidad, a saber A = µe.
Estas son las propiedades de la óirbita descrita por el vector relativo. ¿Cómo es
la órbita de cada uno de los cuerpos?. Si nos paramos en el sistema de referencia
del centro de masa, la posición de los cuerpos será:
m2
~r1 = − ~r (4.21)
M
m
~r2 = + 1~r (4.22)
M
(4.23)
4.4. Las teoremas del movimiento planetario de Newton 119
(m2 /M)h2 /µ
r1 = (4.24)
1 + e cos f 1
(m1 /M)h2 /µ
r2 = (4.25)
1 + e cos f 2
(4.26)
R
diferente:
m2
O
a1 = a (4.27)
M
m
a2 = 1 a (4.28)
DM
dA h
=
dt 2
120 Chapter 4. El Problema de los dos cuerpos
• Tercer teorema (corolario): Para casos en los que la órbita es elíptica (e < 1),
el producto del cuadrado de la velocidad angular promedio (mean angular
motion), n ≡ 2π/T (donde T es el período de revolución) y el cubo del
semieje mauor a es constante:
n2 a3 = µ
Donde µ = G (m1 + m2 ).
R
no en términos diferenciales sino en terminos de un tiempo finito ∆t:
O
∆A =
h∆t
2
Teniendo en cuenta que el área de una elipse es A = πab, una revolución com-
pleta se cumplirá la relación:
πab =
D 1
hT
2
A
Sabiendo que para una elipse b = a (1 − e2 ) y como demostramos antes h2 =
p
T2 4π 2
= (4.29)
a3 µ
Es importante señalar que el semiejemayor que aparece en esta ecuación no es
BO
v2 µ
e= −
2 r
El propósito es encontrar el valor de e como función de otras propiedades de
la órbita. Tomemos por ejemplo el caso del periapsis. Allí el momentum angular
específico es:
h = |~r ×~r˙ | = qv
4.5. La velocidad en el problema de los dos cuerpos 121
(h/q)2 µ
e= −
2 q
Para el caso de una parábola e = 0 es fácil probar que e = 0. En los demás ca-
sos la manipulación algebraica de la expresión anterior conduce al resultado muy
general y útil:
µ
e=−
2a
R
Esta expresión permite escribir la rapidez de un cuerpo en una cónica en fun-
ción de la distancia al centro de masa de una forma muy general:
O
2 1
v2 = µ −
D r a
µ
a=
2µ/r − v2
h
sin φ =
rv
θv = φ + f
122 Chapter 4. El Problema de los dos cuerpos
R
O
D
Figure 4.2: Definición del argumento de la velocidad
A
4.6 Simulaciones numéricas y predicciones
analíticas
RR
T=10.0
Nt=1000.0
sistema=dict(
particula1=dict(
m=10.0,
r=[1,0,0],
v=[0,1,1]),
particula2=dict(
m=1.0,
r=[1.8,0,0],
v=[0,-3,1],
),
particula3=dict(
m=0.1,
r=[-1,0,0],
v=[0,3,1],
)
)
4.6. Simulaciones numéricas y predicciones analíticas 123
tini=0.0
tend=10
Nt=100
rs,vs,masas,N=solucionNbody(sistema,tini,tend,Nt)
rscm,vscm=in2cm(rs,vs,masas,Nt,N)
fig=plt.figure(figsize=(6,6))
ax=fig.gca()
for i in range(N):ax.plot(rscm[i,:,0],rscm[i,:,1])
ext=ext=np.abs(rscm[:,:,:2]).max()
ax.set_xlim(-ext,ext)
ax.set_ylim(-ext,ext)
R
O
D
A
RR
BO
In [9]: r=rscm[1,:,:]-rscm[0,:,:]
v=vscm[1,:,:]-vscm[0,:,:]
R
Out[10]: [<matplotlib.lines.Line2D at 0x119a587b8>]
O
D
A
RR
BO
R
O
D
4.6.3 Vector LRL
A
In [12]: e=np.array([spy.vcrss(v[i,:],h[i,:])-mu*r[i,:]/spy.vnorm(r[i]) for i in range(Nt)])
plt.figure()
plt.plot(e[:,0])
RR
plt.plot(e[:,1])
Hasta ahora todo se cumple. Veamos ahora cuáles son las propiedades
predichas para este sistema:
In [13]: ecc=spy.vnorm(e[0])
print("Eccentricidad = ",ecc)
p=spy.vnorm(h[0])**2/mu
print("Semilado recto = ",p)
a=p/(1-ecc**2)
print("Semi eje mayor = ",a)
n=np.sqrt(mu/a**3)
print("Velocidad angular promedio = ",n)
R
O
Eccentricidad = 0.1636363636363637
Semilado recto = 0.9309090909090911
Semi eje mayor = 0.956521739130435
D
Velocidad angular promedio = 3.5453088548154796
A
Hasta ahora todo parece razonable pero la verdadera prueba de fuego se pro-
RR
In [14]: f=np.linspace(0,2*np.pi,100)
BO
rmag=p/(1+ecc*np.cos(f))
x=rmag*np.cos(f)
y=rmag*np.sin(f)
In [15]: fig=plt.figure(figsize=(6,6))
ax=fig.gca()
ext=ext=np.abs(r).max()
ax.set_xlim(-ext,ext)
ax.set_ylim(-ext,ext)
ax.grid()
4.6. Simulaciones numéricas y predicciones analíticas 127
R
O
D
A
RR
In [16]: x1=-masas[1]/mu*x
y1=-masas[1]/mu*y
x2=masas[0]/mu*x
y2=masas[0]/mu*y
In [17]: fig=plt.figure(figsize=(6,6))
ax=fig.gca()
#Numéricas
ax.plot(rscm[0,:,0],rscm[0,:,1],'r+',lw=3)
ax.plot(rscm[1,:,0],rscm[1,:,1],'g+',lw=3)
#Teóricas
128 Chapter 4. El Problema de los dos cuerpos
ax.plot(x1,y1,'k--')
ax.plot(x2,y2,'k--')
ext=np.abs(rscm[:2,:,:2]).max()
ax.set_xlim(-ext,ext)
ax.set_ylim(-ext,ext)
R
O
D
A
RR
BO
In [19]: r=rscm[2,:,:]-rcm12
v=vscm[2,:,:]-rcm12
h=np.array([spy.vcrss(r[i,:],v[i,:]) for i in range(Nt)])
epsilon=np.array([0.5*spy.vnorm(v[i,:])**2-mu/spy.vnorm(r[i,:]) for i in range(Nt)]
e=np.array([spy.vcrss(v[i,:],h[i,:])-mu*r[i,:]/spy.vnorm(r[i]) for i in range(Nt)])
ecc=spy.vnorm(e[0])
print("Eccentricidad = ",ecc)
p=spy.vnorm(h[0])**2/mu
4.6. Simulaciones numéricas y predicciones analíticas 129
Eccentricidad = 0.034821974426422826
Semilado recto = 2.142852987615105
Semi eje mayor = 2.1454545011713835
Velocidad angular promedio = 1.0554007034461281
In [20]: plt.figure()
plt.plot(h[:,2],label=r'$h$')
plt.plot(epsilon,label=r'$\epsilon$')
R
plt.plot(e[:,0],label=r'$e_x$')
plt.plot(e[:,1],label=r'$e_y$')
plt.legend()
O
Out[20]: <matplotlib.legend.Legend at 0x11c236748>
D
A
RR
BO
In [21]: f=np.linspace(0,2*np.pi,100)
fo=np.pi
rmag=p/(1+ecc*np.cos(f+fo))
x=rmag*np.cos(f)
y=rmag*np.sin(f)
fig=plt.figure(figsize=(6,6))
ax=fig.gca()
130 Chapter 4. El Problema de los dos cuerpos
ext=ext=np.abs(r).max()
ax.set_xlim(-ext,ext)
ax.set_ylim(-ext,ext)
ax.grid()
R
O
D
A
RR
BO
h2 /µ
r= (4.30)
1 + e cos f
R
como el Sistema Solar.
O
4.7.1 Una deducción geométrica
D
La primera solución a este problema se la dedemos al mismísimo Johanes Kepler.
A
Como era el estilo de la época, Kepler resolvió la pregunta de cuál era la posición
del cuerpo en el tiempo usando únicamente métodos geométricos. La deducción
presentada aquí naturalmente tiene elementos modernos pero sigue las líneas gen-
RR
damos cuenta que la única cantidad con esta propiedad es el área barrida por el
radio vector:
h
∆A = (t − t p )
2
R
O
D
A
**
En este gráfico el área ∆A corresponde al área del sector de elipse PQF:
RR
∆A = APQF
El área de la región comprendida por PQM se relaciona con el área de la región
RQM delimitada por la circunferencia circunscrita así:
b
APQM = A
a RQM
BO
b
APQF = APQM − APFM = A − APFM
a RQM
De otro lado el área de la región RQM se puede calcular a partir del área del
círculo circunscrito como:
b
APQF = (A − ARMC ) − APFM
a RQC
Nótese que las áreas en las que hemos logrado expresar el áreas del sector de
elipse son todas áreas de figuras geométricas conocidas (sector de círculo y trían-
gulos). Las áreas de estas figuras pueden calcularse ahora usando la anomalía
excéntrica (que sabemos tiene una relación directa con la anomalía verdadera) así:
4.7. El problema de los dos cuerpos en el tiempo 133
1 2
ARQC = a E (4.31)
2
1 1
ARMC = a cos Ea sin E = a2 cos E sin E (4.32)
2 2
1 1
APFM = ( ae − a cos E)b sin E = ( abe sin E − ab cos E sin E) (4.33)
2 2
(4.34)
R
Si usamos el segundo teorema de Newton obtenemos:
h 1
O
(t − t p ) = ab( E − e sin E)
2 2
Usando el tercer teorema a3 n2 = µ permite escribir finalmente la ecuación an-
D
terior como:
n(t − t p ) = E − e sin E
A
Que al resolverla numéricamente (es una ecuación trascendental) permite
obtener la anomalía excéntrica E a partir del tiempo t.
Como era de esperarse esta ecuación se conoce como la Ecuación de Kepler.
RR
~h = r2 θ̇ k̂
entonces
dθ h
= 2 (4.35)
dt r
reemplazando y separando variables obtenemos
µ2 dθ 0
Z θ
(t − t p ) = (4.36)
h3 θ =0 (1 + e cos θ 0 )2
A la constante de integración t p le llamamos, tiempo de paso por el periapsis.
La integración de esta ecuación dependerá de los valores de e.
134 Chapter 4. El Problema de los dos cuerpos
De una tabla de integrales (por ej. Standard Mathematical Tables and Formulae,
Zwillinger 2003) se halla que :
dθ e sin θ 1 dθ
Z Z
2
= 2 − 2 (4.37)
(1 + e cos θ ) (e − 1)(1 + e cos θ ) e − 1 1 + e cos θ
y además,
"√ #
dθ 2 1 − e2 tan 2θ
Z
− 1
= √ tan si 0 < e < 1 (4.38)
1 + e cos θ 1 − e2 1+e
"√ #
1 e2 − 1 tan 2θ + 1 + e
= √ ln √ si e > 1 (4.39)
e2 − 1 e2 − 1 tan 2θ − 1 − e
R
Para el caso 0 < e < 1 la integral queda como:
O
" ! √ #
dθ 0
r
1 1−e e 1 − e2 sin θ
Z θ
θ
= 2 tan−1 tan −
θ =0 (1 + e cos θ 0 )2 (1 − e2 )3/2 D 1+e 2 1 + e cos θ
(4.40)
y reemplazando queda:
A
" r ! √ #
µ2 1 1−e θ e 1 − e2 sin θ
(t − t p ) = 2 tan−1 tan −
h3 (1 − e2 )3/2 1+e 2 1 + e cos θ
RR
" r ! √ #
µ2 1−e θ e 1 − e2 sin θ
(1 − e2 )3/2 (t − t p ) = 2 tan−1 tan − (4.41)
h3 1+e 2 1 + e cos θ
µ2
r
2 3/2 µ
(1 − e ) ( t − t p ) = (t − t p ) = n(t − t p ) (4.42)
h3 a3
Podemos definir una variable angular auxiliar para describir físicamente el de-
splazamiento angular de un cuerpo ficticio en una órbita circular, cuyo centro co-
incide con el centro geométrico de la elipse. A esta nueva variable auxiliar la lla-
maremos Anomalía media definida como
M = n(t − t p ) (4.43)
En términos de la anomalía media ls integrales anteriores quedan:
" r ! √ #
−1 1−e θ e 1 − e2 sin θ
M = 2 tan tan − (4.44)
1+e 2 1 + e cos θ
Busquemos simplificar esta última expresión usando la anomalía excéntrica E.
Sabemos que
4.7. El problema de los dos cuerpos en el tiempo 135
r = a(1 − e cos E)
y ya que r = a(1 − e2 )/(1 + e cos θ ) se sigue que
e + cos θ
cos E = (4.45)
1 + e cos θ
y de la identidad pitagórica
√
1 − e2 sin θ
sin E = (4.46)
1 + e cos θ
También habíamos demostrado que
R
r
θ 1+e E
tan = tan (4.47)
2 1−e 2
O
de manera que
r !
−1 1−e θ
E = 2 tan tan (4.48)
E1 = M + e sin M (4.51)
E2 = M + e sin( M + e sin M ) (4.52)
1
E2 ≈ M + e sin M + e2 sin 2M (4.53)
2
1 2
E3 ≈ M + e sin M + e sin M + e sin 2M (4.54)
2
R
∞
E = M+ ∑ an en
n =1
O
donde
f loor (n/2)
1 1
∑ (−1)k (n − 2k)n−1 sin[(n − 2k) M]
an =
2n −1 k =0
D
(n − k)!k!
esta serie, solo converge para valores de e < 0.6627434.... A esta cota maximal
A
para e se le conoce como el límite de Laplace. \
Existe otra solución en serie de potencias que converge para valores de e < 1 y
que se expresa en terminos de las funciones de Bessel de primera especie así,
RR
∞
2
E = M+ ∑ n
Jn (ne) sin(nM) (4.55)
n =1
donde
∞
(−1)k x n+2k
BO
Jn ( x ) = ∑ (n + k)!k! 2
k =0
2. A partir de ellas podemos calcular las condiciones iniciales del sistema rela-
tivo: µ = G (m1 + m2 ), ~r (0) = ~r2 (0) −~r1 (0), ~v(0) = ~v2 (0) − ~v1 (0).
4.8. El problema de los dos cuerpos en el espacio 137
R
ción: r = p/(1 + e cos f )
8. Con la magnitud del vector posición podemos calcular las coordenadas del
O
sistema relativo en el plano de la órbita: x = r cos f , y = r sin f .
9. Usando la vis-viva podemos ahora determinar la magnitud del vector veloci-
D
dad: v2 = µ(2/r − 1/a)
10. Calculamos ahora el argumento de la velocidad: sin φ = h/(rv)
A
11. Con el argumento de la velocidad determinamos la dirección del vector ve-
locidad respecto al eje x (dirección del vector LRL o dirección del periapsis):
θv = f + φ.
RR
de referencia en el que fueron especificadas las posiciones iniciales, hará falta de-
terminar la orientación del plano del sistema. Esto será lo que veremos justamente
en la próxima sesión.
R
O
D
A
Figure 4.3: Construcción requerida para establecer la relación entre los vectores
posición y los vectores constantes en el problema de los dos cuerpos y los elemen-
RR
tos orbitales
~n = aˆz × ~h
BO
(4.56)
Los ángulos claves para la conversión resultan de aplicar simples relaciones
geométricas tales como:
~n · aˆx nx
cos Ω = = (4.57)
n n
~n ·~e
cos ω = (4.58)
ne
~e ·~r
cos f = (4.59)
er
~h · aˆz hz
cos i = = (4.60)
h h
(4.61)
El único cuidado adicional que hay que tener es el cuadrante en el que caen
cada uno de los ángulos mencionados:
4.8. El problema de los dos cuerpos en el espacio 139
!
−1 ~n · î
Ω = cos sii ~n · ĵ = ny ≥ 0 (4.62)
n
!
−1 ~n · î
= 2π − cos sii ~n · ĵ = ny < 0 (4.63)
n
R
• Argumento del periapsis. De nuevo, es necesario un criterio para concer el
cuadrante correcto de ω. En este caso analizamos la proyección del vector de
O
excentricidad sobre el eje z.
ne
D
sii ~e · k̂ = ez ≥ 0 (4.64)
n ·~e
−1 ~
A
= 2π − cos sii ~e · k̂ = ez < 0 (4.65)
ne
~r · ~v
BO
vr =
r
Para una órbita elíptica, si el cuerpo se aleja del periáspsis vr > 0 y si se
acerca al periápsis vr < 0.
Finalmente, el criterio para seleccionar el cuadrante de f es
~e ·~r
−1
f = cos sii vr ≥ 0 (4.66)
er
−1 ~e ·~r
f = 2π − cos sii vr < 0 (4.67)
er
precisado hasta ahora era el tiempo de paso por el periapsis. f (0) nos da
la clave sobre esta cantidad. Por la ecuación de Kepler la relación entre el
tiempo de observación t = t0 (el que llamamos aquí tiempo cero) y la anoma-
lía excéntrica inicial será:
R
90 < i <≤ 180 la órbita es retrógrada. Una órbita con inclinación 0º es igual
a una con inclinación 180º pero retrograda.
O
Es de anotar
x = r cos f (cos Ω cos ω − sin Ω sin ω cos i ) − r sin f (cos Ω sin ω + sin Ω cos i cos(4.72)
ω)
y = r cos f (sin Ω cos ω + cos Ω cos i sin ω ) + r sin f (− sin Ω sin ω + cos Ω cos i cos ω)
(4.73)
z = r cos f sin i sin ω + r sin f sin i cos ω (4.74)
r2
ṙ = e sin f f˙
p
Pero por definición del momentum angular específico:
r2 f˙ = h
De donde resulta que:
h
ṙ = e sin f
p
h
r f˙ = (1 + e cos f )
p
R
De aquí se deducen derivando las relaciones para x, y, z y después de manipu-
laciones algebraicas y trigonométricas, las siguientes ecuaciones:
O
h
ẋ = − [cos Ω(e sin ω + sin(ω + f )) + sin Ω cos i (e cos ω + cos(ω + f ))](4.75)
p D
h
ẏ = − [sin Ω(e sin ω + sin(ω + f )) − cos Ω cos i (e cos ω + cos(ω + f ))](4.76)
p
h
ż = + sin i [e cos ω + cos(ω + f )] (4.77)
A
p
(4.78)
RR
Los elementos desarrollados en la teoría del problema de los dos cuerpos son
además la base para el cálculo de efemérides, es decir las condiciones de ubnicación
y tiempo de eventos astronómicos tales como eclipses, ocultaciones, tránsitos, en-
tre muchos otros, naturalmente, en su mayoría relacionados con el Sistema Solar.
En esta sección estudiáremos algunas herramientas y métodos comunes en la
aplicación del problema de los dos cuerpos a situaciones concretas relacionadas
con el cálculo de efemérides. Para ello desarrollaremos aplicaremos algunos méto-
dos numéricos reconocidos, pero también nos valdremos de la herramienta SPICE
cuyos rudimentos están explicados en uno de los apéndices.
a. El tiempo de observación.
b. La ubicación geográfica del observador.
c. El sistema de coordenadas en el que deseamos nuestra predicción.
d. Los elementos orbitales del cuerpo que queremos observar.
Manipular cada uno de estos datos para producir una predicción tan precisa
como sea posible de la posición de un cuerpo en el Sistema Solar no es sin embargo
una tarea simple. Algunas de las cosas que hemos visto hasta ahora nos permitirán
precisar cada uno de estos datos y juntarlos para producir nuestra predicción.
R
diversidad de escalas de tiempo que pueden ser usadas para indicar el tiempo de
una observación.
Naturalmente para facilidad del observador asumimos que el tiempo es dado
O
en una escala de tiempo uniforme, es decir una escala de tiempo que use el segundo
atómico en lugar de una escala basada en un segundo ajustado al sistema de refer-
encia (TDB o TDT).
D
Supongamos por ejemplo que el tiempo es provisto por el observador en UTC.
Recordemos que esta escala utiliza el segundo atómico e intenta aproximarse a
UT1, que es el sistema de tiempo que deberíamos usar rigurosamente puesto se
A
ajusta a la rotación de la Tierra, desde cuya superficie realizamos las observaciones.
Supongamos por ejemplo que el tiempo de observación es el primero de abril
de 2018 a las 19 horas de tiempo local en el huso horario UTC-5. El tiempo en
RR
In [26]: spy.furnsh('util/kernels/naif0012.tls')
R
Una vez cargado el kernel con los segundos bisciestos podemos calcular el
tiempo de efemérides de la observación usando el comando:
O
In [27]: spy.str2et(tiempo)
Out[27]: 575899269.185656 D
El valor devuelto por esta rutina corresponde al número de segundos transcur-
ridos desde las 12:00:00 ET del primero de enero del año 2000, conocida también
como la época J2000.0. Para comprobar este hecho veámos esta conversión:
A
In [28]: spy.str2et("1/1/2000 12:00:00.000 UTC")
Out[28]: 64.18392728473108
RR
Nótese que las 12:00:00 UTC no corresponden al segundo 0 del tiempo ET por
la fórmula vista antes. Viendo este número podemos darnos cuenta que en la fecha
indicada arriba el valor ∆AT = 32 segundos.
También es posible indicar la fecha usando la escala de tiempo de efemérides
así:
BO
Out[29]: 0.0
Otra rutina que puede ser de utilidad en algunas situaciones nos permite calcu-
lar el valor de ∆AT + 32.184 para cualquier momento del tiempo. Así por ejemplo
en la fecha de nuestro ejemplo:
In [30]: et=spy.str2et(tiempo)
spy.deltet(et,"ET")
Out[30]: 69.18565599150625
Aquí puede notarse que el último valor de ∆AT = 37 y que la corrección per-
iíodica para la fecha del cálculo es:
In [31]: spy.deltet(et,"ET")-37-32.184
144 Chapter 4. El Problema de los dos cuerpos
Out[31]: 0.001655991506254395
Otras dos rutinas que pueden resultar útil en este contexto y que permiten
convertir entre escalas de tiempo son: utc2et y unitim. utc2et tiene una fun-
ción parecida a str2et pero recibe el tiempo únicamente en UTC-0 así la fecha
4/1/2018 19:00:00.000 UTC-5 debe escribirse como:
In [32]: spy.utc2et("4/2/2018 00:00:00.000")
Out[32]: 575899269.185656
Muchos otros formatos de fecha y hora para esta rutina pueden ser encontrados
en la documentación de la misma.
De otra parte unitim permite convertir entre distintos sistemas de tiempo. Esto
es particularmente útil para encontrar el tiempo por ejemplo en días julianos:
In [33]: spy.unitim(et,"ET","JDTDB")
R
Out[33]: 2458210.50080076
Las escalas de tiempo aceptadas por unitim son:
O
"TAI" International Atomic Time.
"TDB" Barycentric Dynamical Time.
D
"TDT" Terrestrial Dynamical Time.
"ET" Ephemeris time (in the SPICE system, this is
equivalent to TDB).
"JDTDB" Julian Date relative to TDB.
A
"JDTDT" Julian Date relative to TDT.
"JED" Julian Ephemeris date (in the SPICE system
this is equivalent to JDTDB).
RR
Esta rutina puede utilizars por ejemplo si se tiene una fecha de un evento en
días julianos y se quiere convertir a ET. Así por ejemplo si nos dicen que el día
juliano (en UTC) de una observación es el 2458211.5 (Abril 3 de 2018, 00:00:00.000),
la fecha de efemérides puede calcularse así:
In [34]: #Fecha juliana de la observación
BO
JD=2458211.5
#Fecha juliana de J2000 en UTC (es una constante)
JD2000=spy.j2000()
#Tiempo en segundos transcurridos en UTC desde J2000
tutc=(JD-JD2000)*86400
#Calcula el deltet
det=spy.deltet(tutc,"UTC")
#Calcula el ET
ET=tutc+det
print(ET)
575985669.1856568
R
O
D
A
RR
BO
(el kernel actualizado puede encontrarse en este enlace19 ) que brinda además in-
formación sobre la forma y orientación de un sin número de cuerpos pequeños del
sistema solar.
In [36]: spy.furnsh('util/kernels/pck00010.tpc')
R
Usando estos valores podemos calcular el achatamiento de la Tierra:
In [38]: rE=datos[1][0]
rP=datos[1][2]
O
f=(rE-rP)/rE
print("Radio ecuatorial (km)=",rE)
print("Achatamiento, f = ",f) D
Radio ecuatorial (km)= 6378.1366
Achatamiento, f = 0.0033528131084554717
A
Supongamos que queremos determinar la posición de un observador que se
encuentra ubicado (según un dispositivo de GPS) en las siguiente coordenadas:
RR
h=1586.0
observador_geocentro_fijo=spy.georec(lon*GRADOS,lat*GRADOS,h/1000,rE,f)
print("Posición del observador respecto al geocentro en el sistema fijo de coordena
observador_geocentro_fijo)
R
earth_latest_high_prec.bpc y se actualiza dos veces cada semana. Para
predicciones en una ventana de tiempo amplia es posible usar el kernel
earth_070425_370426_predict.bpc que permite predecir la orientación de
O
la Tierra entre 2007 y 2037.
Esta rotación se consigue primero calculando la matriz de rotación correspon-
diente, para lo cual en SPICE usamos la rutina pxform.
D
In [40]: spy.furnsh("util/kernels/earth_070425_370426_predict.bpc")
print(Mobs)
En este curso hemos aprendido cómo realizar todas estas tareas de forma man-
ual.
SPICE incorpora también rutinas especializadas que simplifican el cálculo de la
posición tomando como entradas los elementos orbitales. La rutina en particular
que realiza la tarea indicada se conoce como conics.
Imaginemos que obtenemos los elementos orbitales de Venus (el baricentro de
Venus) del sistema de JPL Horizons para en la fecha y hora de observación. Aquí
es importante entender que el JPL Horizons solo recibirá como entrada la fecha y
hora en ET. El siguiente código permite expresar en formato de calendario en ET,
un tiempo dado en UTC:
R
et=spy.str2et(tiempo)
#Cálculo del ET-UTC
dt=spy.deltet(et,"ET")
O
#Formato de calendario del tiempo ET
tiempo_et=spy.et2utc(et+dt,"C",0)
print("Fecha UTC: ",tiempo)
print("Fecha ET: ",tiempo_et)
575899269.185656
575899269.0
BO
Al introducir esta fecha a JPL Horizons nos entrega los siguientes elementos
orbitales (expresados en km y km/s):
In [45]: e=1.098041049378980E-02
q=1.088516441933395E+08
i=3.396461754625563E+00
O=7.679136022578597E+01 #Longitud del nodo ascendente
w=1.880966457070962E+00 #Argumento del periapsis
M=3.421364194895987E+02 #Anomalía media
Una vez con los elementos orbitales podemos calcular el vector de estado del
sistema usando:
4.9. Aplicaciones del problema de los dos cuerpos 149
In [47]: spy.conics([q,e,i,O,w,M,0,mu],0)
R
Para ello sin embargo será necesario realizar dos operaciones importantes:
1. Encontrar la posición del geocentro de la Tierra respecto al baricentro del
Sistema Solar. Esto es indispensable para conocer la posición del cuerpo (que
O
es referida a ese sistema) respecto al observador. Esto implicará conocer los
elementos orbitales de la Tierra en la fecha de observación.
D
2. Para conocer la posición del cuerpo con precisión es necesario corregir por
el tiempo de viaje de la luz desde el objeto observado hasta el observador.
Esta corrección es importante si de lo que se trata es de calcular por ejem-
plo un eclipse o una ocultación para los cuales diferencias muy pequeñas de
A
posición en el cielo pueden ser fundamentales.
El cálculo de estos dos efectos no es simple y requiere automatizar de alguna
RR
manera los pasos anteriores. SPICE provee facilidades para hacerlo. En particular
la determinación de los elementos orbitales instantáneos de los cuerpos implicados
es fundamental para el éxito de nuestro propósito. Si cada vez que desearamos
calcular una efeméride necesitaramos buscar los elementos en el JPL Horizons los
cálculos serían muy laboriosos.
De otro lado ¿cómo es que JPL conoce precisamente los elementos orbitales de
BO
Donde 299 se refiere al código del baricentro del planeta Venus (para los códi-
gos enteros de los cuerpos en el kernel vea la documentación de de43020 ).
Usando el vector de estado es posible en SPICE encontrar el vector de elemen-
tos orbitales instantáneos. La rutina usada con ese propósito es oscltx:
R
In [50]: q,e,i,O,w,M,t,mu,f,a,P=spy.oscltx(venus_SSB_EJ2000,et,mu)
print("Elementos orbitales de Venus:",q,e,i*RADIAN,O*RADIAN,w*RADIAN,M*RADIAN,t,mu,
O
Elementos orbitales de Venus: 108851644.16252816 0.010980411143205526 3.39646175405
D
Los elementos orbitales devueltos por oscltx son en su orden: q, e, i, Ω, ω, M,
t, µ, f , a, Porb .
Si comparamos estos valores con los devueltos por JPL Horizons vemos una
A
coincidencia grande pero no una coincidencia exacta. Esto se debe principalmente
al hecho que el JPL Horizons usa para sus cálculos un Kernel mucho más grande
y preciso, el de431.bsp que no usamos aquí para evitar ocupar mucho espacio en
RR
In [51]: posicion=spy.spkgeo(399,et,"ECLIPJ2000",0)
tierra_SSB_EJ2000=posicion[0]
BO
print("Posición de la Tierra:",tierra_SSB_EJ2000[:3])
observador_SSB_EJ2000=observador_geocentro_EJ2000+tierra_SSB_EJ2000[0:3]
print("Posición del observador respecto al SSB:",observador_SSB_EJ2000)
In [52]: venus_observador_EJ2000=venus_SSB_EJ2000[:3]-observador_SSB_EJ2000
print("Posición de Venus respecto del observador:",venus_observador_EJ2000)
20 https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/aa_summaries.txt
4.9. Aplicaciones del problema de los dos cuerpos 151
In [53]: MJ2000=spy.pxform("ECLIPJ2000","J2000",et)
In [54]: venus_observador_J2000=spy.mxv(MJ2000,venus_observador_EJ2000)
print("Posición de Venus respecto del observador (J2000):",venus_observador_J2000)
R
Posición de Venus respecto del observador (J2000): [1.99797343e+08 1.15132526e+08 4
O
Una vez tenemos las coordenadas cartesianas en J2000 podemos determinar las
coordenadas en el cielo y la distancia:
D
In [55]: do,RA,DEC=spy.recrad(venus_observador_J2000)
A
print("Distancia (km):",do)
print("RA (hh:mm:ss.ccc) = ",dec2sex(RA*RADIAN/15))
print("DEC (gg:mm:ss.ccc) = ",dec2sex(DEC*RADIAN))
RR
R
Para ello comenzamos con una primera estimación de la posición como la que
hemos hecho hasta ahora. Con esa estimación calculamos una primera estimación
del tiempo luz ∆t0 . A continuación repetimos el cálculo de la posición del objeto
O
observado pero en un tiempo t0 = t − ∆t0 que es el tiempo realmente en el que
observaríamos al objeto. Esto nos da una nueva posición y distancia con la que
determinamos una segunda aproximación ∆t1 al tiempo luz con la que repetimos
D
el procedimiento anterior. El proceso se repite hasta que ∆tn satisface un cierto
criterio de convergencia.
En el código abajo hemos implementado de manera sencilla este procedimiento
A
para calcular con mayor precisión la posición de Venus en el cielo.
In [56]: delta=do/spy.clight()
print("Initial distance:",do)
RR
venus_SSB_EJ2000=spy.spkgeo(299,et-delta,"ECLIPJ2000",0)[0]
venus_observador_EJ2000=venus_SSB_EJ2000[:3]-observador_SSB_EJ2000
d=spy.vnorm(venus_observador_EJ2000)
delta=d/spy.clight()
print("\tCorrected distance:",d)
print("\tCorrected light time:",delta)
dif=(delta-delta_prev)/((delta+delta_prev)/2)
print("\tRelative difference:",dif*100)
delta_prev=delta
i+=1
etvenus=et-delta
R
In [57]: venus_SSB_EJ2000=spy.spkgeo(299,etvenus,"ECLIPJ2000",0)[0]
venus_observador_EJ2000=venus_SSB_EJ2000[:3]-observador_SSB_EJ2000
O
venus_observador_J2000=spy.mxv(MJ2000,venus_observador_EJ2000)
do,RA,DEC=spy.recrad(venus_observador_J2000)
print("Distancia (km):",do)
print("RA (hh:mm:ss.ccc) = ",dec2sex(RA*RADIAN/15))
D
print("DEC (gg:mm:ss.ccc) = ",dec2sex(DEC*RADIAN))
In [58]: datos=spy.bodvrd('EARTH','RADII',3)
RE=datos[1][0]
154 Chapter 4. El Problema de los dos cuerpos
rP=datos[1][2]
F=(RE-rP)/RE
R
if(type(tiempo)==str):et=spy.str2et(tiempo)
else:et=tiempo
#Posición del obervador
O
observador_geocentrico_fijo=spy.georec(lon*GRADOS,lat*GRADOS,alt/1000,RE,F)
Mobs=spy.pxform("ITRF93","ECLIPJ2000",et)
observador_geocentro_EJ2000=spy.mxv(Mobs,observador_geocentro_fijo)
#Posición de la Tierra
D
tierra_SSB_EJ2000=spy.spkgeo(399,et,"ECLIPJ2000",0)[0]
observador_SSB_EJ2000=observador_geocentro_EJ2000+tierra_SSB_EJ2000[0:3]
#Calcula posición del cuerpo teniendo en cuenta
A
delta=0.0
dif=1.0
delta_prev=0.0
while dif>1e-10:
RR
body_SSB_EJ2000=spy.spkgeo(bodyid,et-delta,"ECLIPJ2000",0)[0]
body_observador_EJ2000=body_SSB_EJ2000[:3]-observador_SSB_EJ2000
d=spy.vnorm(body_observador_EJ2000)
delta=d/spy.clight()
dif=(delta-delta_prev)/((delta+delta_prev)/2)
delta_prev=delta
BO
#break
#Tiempo para calcular la posición del cuerpo
etbody=et-delta
#Conversión J2000
MJ2000=spy.pxform("ECLIPJ2000","J2000",et)
body_observador_J2000=spy.mxv(MJ2000,body_observador_EJ2000)
d,RA,DEC=spy.recrad(body_observador_J2000)
#Coordenadas en horas y grados
RA=RA*RADIAN/15
DEC=DEC*RADIAN
#Return
return et,etbody,observador_geocentrico_fijo,observador_SSB_EJ2000,body_SSB_EJ2
In [60]: latitud=6.21889
longitud=-75.60583
altura=1586.0
4.9. Aplicaciones del problema de los dos cuerpos 155
et,etbody,obs_fijo,obs_ssb,body_ssb,body_obs,d,RA,DEC=calculaPosicion("4/1/2018 19:
299,latitud,longitud,a
print("Distancia (km) = ",d)
print("Tiempo-luz (s) = ",et-etbody)
print("RA (hh:mm:ss) = ",dec2sex(RA))
print("DEC (dd:mm:ss) = ",dec2sex(DEC))
Sin correccion:
R
Distancia (km) = 235528733.44972843
Tiempo-luz (s) = 785.6392886638641
RA (hh:mm:ss) = (1, 59, 48.6114657138053)
O
DEC (dd:mm:ss) = (11, 44, 48.919792592616886)
R
Con esto podemos convertir las coordenadas del Sol en :
In [64]: sol_obs_EJ2000=efemerides_sol[5]
O
MJ2000=spy.pxform("ECLIPJ2000","J2000",et)
sol_obs_J2000=spy.mxv(MJ2000,sol_obs_EJ2000)
sol_obs_true=spy.mxv(Mtrue,sol_obs_J2000[:3])
D
Las coordenadas ecuatoriales reales del Sol en el cielo serían:
In [65]: d,RAtrue,DECtrue=spy.recrad(sol_obs_true)
A
#Coordenadas en horas y grados
RAtrue=RAtrue*RADIAN/15
DECtrue=DECtrue*RADIAN
print("RA true (hh:mm:ss) = ",dec2sex(RAtrue))
RR
In [67]: uz=[0,0,1]
uy=spy.ucrss(normal,uz)
uz=normal
ux=spy.ucrss(uy,uz)
Mfijo2local=np.array([ux,uy,uz])
Mlocal2fijo=spy.invert(Mfijo2local)
In [68]: Mfijo=spy.pxform("EARTHTRUEEPOCH","ITRF93",et)
R
sol_obs_fijo=spy.mxv(Mfijo,sol_obs_true)
sol_obs_local=spy.mxv(Mfijo2local,sol_obs_fijo)
O
Este último vector apunta en dirección al Sol desde el observador, referida a ejes
que apuntan hacia el norte (x), el occidente (y) y el cenit (z) del observador. Para
calcular la elevación y el acimut solo debemos encontrar los ángulos esféricos de
D
este vector. Debe anotarse sin embargo que el acimut en astronomía esta realmente
referido al oriente (-y) no al occidente. Este hecho nos obliga entonces a realizar
una transformación de la componente y del vector posición del Sol:
A
In [69]: direccion=sol_obs_local
direccion[1]*=-1
d,az,el=spy.reclat(direccion)
az*=RADIAN
RR
el*=RADIAN
if(az<0):az+=360.0
print("Azimuth (dd:mm:ss):",dec2sex(az))
print("Elevación (dd:mm:ss):",dec2sex(el))
efemerides_sol=calculaPosicion(etluna,10,latitud,longitud,altura)
etsol=efemerides_sol[1]
print(etobs,etluna,etsol)
~rLuna−Sol ·~rLuna−Tierra
cos φ =
rLuna−Sol rLuna−Tierra
La porción visible de la Luna (su fase, f ) medida en fracción de la superficie
R
que aparece iluminada se calcula usando:
cos φ + 1
O
f =
2
Donde f = 0 corresponde a la Luna nueva, f = 1 es la Luna llena.
Los vectores ~rLuna−Sol y ~rLuna−Tierra pueden ser obtenidos a partir de las posi-
D
ciones del Sol y la Luna vistas desde la Tierra usando:
In [71]: sol_obs=efemerides_sol[5]
luna_obs=efemerides_luna[5]
A
r_luna_tierra=-luna_obs
r_luna_sol=sol_obs-luna_obs
In [72]: cosphi=spy.vdot(r_luna_tierra,r_luna_sol)/(spy.vnorm(r_luna_tierra)*spy.vnorm(r_lun
f=0.5*(1+cosphi)
print("Fase de la Luna:",f)
f=faseLuna(etobs)
print("Fase de la luna en t = '%s', f= %g"%(tiempo,f))
4.9. Aplicaciones del problema de los dos cuerpos 159
Podemos hacer un gráfico de las fases de la Luna para los próximos 30 días:
In [74]: ts=np.linspace(etobs,etobs+30.0*86400,100)
fs=[faseLuna(t) for t in ts]
In [75]: fig,axs=plt.subplots(1)
axs.plot(ts,fs)
R
O
D
A
RR
BO
R
O
D
A
RR
In [80]: etnew=brentq(d_faseLuna,etobs,etobs+15*86400)
spy.et2utc(etnew,"C",2)
esta más adelante. Para el cálculo de una ocultación basta que conozcamos la posi-
ción en el cielo de los dos cuerpos en cuestión y evaluemos su distancia angular
comparada con sus tamaños angulares.
Estudiemos por ejemplo el caso de una ocultación de Marte por la Luna.
R
In [82]: luna_obs=efemerides_luna[5]
dluna=spy.vnorm(luna_obs)
O
marte_obs=efemerides_marte[5]
dmarte=spy.vnorm(marte_obs)
Delta=np.arccos(spy.vdot(luna_obs,marte_obs)/(dluna*dmarte))*RADIAN
D
print("Distancia angular (grados) = ",Delta)
Para saber si ocurre una ocultación es necesario saber si esta distancia es mayor
o menor que el radio angular de los cuerpos. Para ello necesitamos sin embargo
calcular sus radios físicos:
BO
In [83]: radios_luna=spy.bodvrd('MOON','RADII',3)[1]
radios_marte=spy.bodvrd('MARS','RADII',3)[1]
radio_angular_luna=np.arctan(radios_luna[0]/dluna)*RADIAN
radio_angular_marte=np.arctan(radios_marte[0]/dmarte)*RADIAN
print("Radio angular de la Luna:",radio_angular_luna)
print("Radio angular de Marte:",radio_angular_marte)
Cómo vemos la distancia angular entre ellos es menor que la suma de sus ra-
dios y por lo tanto podemos concluir que hay una ocultación ocurriendo a esa
hora. ¿A qué horas comenzó y término el tránsito?. Una manera de responder esa
pregunta es utilizando el diagrama mostrado en la figura:
162 Chapter 4. El Problema de los dos cuerpos
R
Definimos la función f (t; k) así:
O
Los distintos instantes de la ocultación pueden calcularse encontrando los pun-
tos en los que la función anterior cambia de signo así:
D
• Contact 1: The disk of the planet starts to be occulted (k = +1).
• Contact 2: The whole disk of the planet is occulted (k = -1).
• Contact 3: The disk of the planet starts to appear behind the lunar limb (k =
-1).
A
• Contact 4: The occultation ends (k = +1).
posición en el espacio
Imaginemos ahora que observaramos un cuerpo (cometa, asteroide, basura espa-
cial) que pasa cerca a la Tierra y pudiéramos conocer su posición en el cielo referida
al ecuador y equinoccio de la época (RA, DEC) o al horizonte (elevación y azimuth)
BO
In [85]: fecha="4/6/2018"
Las operaciones que debemos hacer ahora son las inversas a las que hicimos
para calcular la posición. Ahora tenemos las coordenadas en J2000 en el cielo y
necesitamos las coordenadas cartesianas en el espacio del cuerpo. Para ello usare-
mos la rutina latrec de SPICE:
In [86]: d1=43189.0
RA1=12+38.0/60+40.0/3600
DEC1=43+27.0/60+35.0/3600
r1=spy.latrec(d1,RA1*15*GRADOS,DEC1*GRADOS)
d2=54290.0
RA2=12+38.0/60+45.0/3600
DEC2=43+29.0/60+47.0/3600
R
r2=spy.latrec(d2,RA2*15*GRADOS,DEC2*GRADOS)
O
In [87]: v=spy.vnorm(r2-r1)/900
print("Rapidez (km/s): ",v) D
Rapidez (km/s): 12.334500670270591
A
Ahora es menester encontrar la posición y velocidad relativa, bien sea al geo-
centro, al Sol o al baricentro del Sistema Solar del cuerpo.
La posición y velocidad relativa al geocentro se calcula determinando primero
RR
tos instantes del tiempo, ¿cuáles son los elementos orbitales del cuerpo?
164 Chapter 4. El Problema de los dos cuerpos
R
O
D
A
RR
BO
Chapter 5
R
O
In [1]: from meccel import *
%matplotlib inline
D
Hasta ahora hemos estudiado en detalle el problema de los dos cuerpos como la
base fundamental para el estudio de sistemas jerárquicos de N-cuerpos (sistemas
que pueden dividirse en subsistemas de dos cuerpos anidados).
Existen sin embargo muchas situaciones (algunas muy interesantes) en las que
A
no es posible estudiar la dinámica de un sistema de N-cuerpos, simplemente,
asumiéndolo como un sistema anidado de dos cuerpos.
Consideremos por ejemplo el siguiente sistema de partículas:
RR
In [2]: #Factor
#Pasa masa1=100, masa2=5, r=3, factor=0.695549078
#factor=0.695249071
factor=0.695549078
BO
r=3.0
r1=-masa2/mu*r
r2=+masa1/mu*r
vcirc=np.sqrt(mu/r)
alpha=(masa2/(3*masa1))**(1./3)
r3=r2+alpha*r
vsmall=factor*np.sqrt(mu/r**3)*r3
#Condiciones iniciales
T=5.0
165
166 Chapter 5. El problema de los tres cuerpos
Nt=1000
sistema=dict(
# Particula 0
particula1=dict(
m=masa1,
r=[r1,0,0],
v=[0,-vcirc/2,0]
),
# Particula 1
particula2=dict(
m=masa2,
r=[r2,0,0],
v=[0,+vcirc/2,0]
),
R
# Particula 2
particula3=dict(
m=masa3,
O
r=[r3,0,0],
v=[0,vsmall,0]
)
)
D
Resolvamos el sistema de ecuaciones diferenciales del problema de los N-
cuerpos y veamos la solución:
A
In [3]: #Preparación de la solución
y,masas,N=sis2ini(sistema)
RR
#Solución
solucion=odeint(EoM_Nbody,y,np.linspace(0,T,Nt),args=(masas,))
#Extracción de la solución
rs,vs=sol2pos(solucion)
#En el centro de masa
rs,vs=in2cm(rs,vs,masas,Nt,N)
BO
#Gráfico
fig2d = plt.figure(figsize=(6,6))
ax2d=fig2d.gca()
for i in range(N):
# Grafica en 2D
line,=ax2d.plot(rs[i,0,0],rs[i,0,1],'o',markersize=10,markeredgecolor='none')
color=line.get_color()
ax2d.plot(rs[i,:,0],rs[i,:,1],color=color)
ax2d.plot(rs[i,-1,0],rs[i,-1,1],'s',markersize=10,markeredgecolor='none',color=c
ax2d.legend(loc='best')
ext=np.abs(rs[:,:,:2]).max()
ax2d.set_xlim(-ext,ext)
ax2d.set_ylim(-ext,ext)
R
O
D
A
RR
se encuentra siempre opuesta a la línea de las partículas P1-P2. Esto implica que
su período respecto a la partícula P1 es igual al de la partícula P2. Sin embargo de
acuerdo al problema de los dos cuerpos no es posible que dos partículas situadas
a distancias diferentes (distintos valores de a) respecto a otra más masiva, tengan
exactamente el mismo período.
Ahora bien, tampoco podemos suponer que la partícula P3 forma un sistema
de 2 partículas respecto a la P2 puesto que en este caso el período orbital relativo
es igual al período de P2 respecto a P1.
¿Qué pasa entonces? Estamos aquí en presencia de un sistema de partículas
al que no le podemos aplicar bajo ninguna aproximación lo que hemos aprendido
sobre el problema de los dos cuerpos. Este es un caso típico del que se conoce en
Mecánica Celeste como el problema de los tres cuerpos.
Si bien situaciones tan específicas como estas no deberían ser comunes en la
naturaleza (varíe por ejemplo el valor de la variable factor en la definición de
las condiciones iniciales para que note la sensibilidad a las condiciones iniciales),
en la era de la exploración espacial, estas configuraciones tienen aplicaciones muy
168 Chapter 5. El problema de los tres cuerpos
R
5.1 El problema circular restringido de los tres
cuerpos
O
En este problema se tienen inicialmente tres partículas autogravitantes de masas
m1 , m2 y m3 con posiciones respectivas ~r1 , ~r2 y ~r3 respecto a un orígen inercial.
D
Determinar el movimiento de los tres cuerpos implica conocer en todo instante de
tiempo el valor los tres vectores de posición y de los vectores de velocidad asocia-
dos. Como el movimiento es en el espacio, necesitariamos partir de 18 condiciones
iniciales. Ahora bien, como este es un caso particular del problema de los N cuer-
A
pos, es claro que solo tenemos a disposición 10 constantes de movimiento. La
primera dificultad con que nos encontramos en este caso es la falta de restricciones
naturales (por ejemplo, la existencia asociada a la ubicación de las dos partículas
RR
de manera que la descripción se reduce a encontrar ~r2 , ~r3 , ~v2 y ~v3 . Sin em-
bargo, esto representa de nuevo un sistema no soluble, ya que requerimos 12
constantes de integración.
2. La segunda restricción implica asumir que la interacción gravitacional entre
los dos cuerpos menos masivos (de masas comparables m2 y m3 ) es despre-
ciable. De esta manera, m2 y m3 describirán trayectorias keplerianas alrede-
dor de m1 de manera que lo que se ha logrado es pasar de un problema de
tres cuerpos a dos problemas independientes de dos cuerpos, cuya descrip-
ción ya ha sido analizada.
3. Otra restricción natural puede ser asumir que las distancias entre m1 y el
sistema m2 -m3 es muy grande, similar a lo que sucede con el sistema Sol-
Tierra-Luna. Al igual que el caso anterior, m3 describirá una órbita kepleriana
alrededor de m2 y el baricentro de este sistema hará lo propio respecto a m1 .
Una vez más, dividimos el movimiento en dos sistemas de dos cuerpos. Esta
suposición también presenta problemas en lo que respecta a la estabilidad.
5.1. El problema circular restringido de los tres cuerpos 169
R
para la partícula m3 es:
~r (t) ~r (t)
~r¨3 (t) = − Gm1 13 − Gm2 23 (5.1)
O
3 (t)
r13 3 (t)
r23
es importante tener en cuenta que, en coordenadas cartesianas
D
~r13 = ~r3 −~r1 = [ x3 (t) − x1 (t)]î + [y3 (t) − y1 (t)] ĵ + [z3 (t) − z1 (t)]k̂ (5.2)
~r23 = ~r3 −~r2 = [ x3 (t) − x2 (t)]î + [y3 (t) − y2 (t)] ĵ + [z3 (t) − z2 (t)]k̂ (5.3)
A
(5.4)
Notemos que en este sistema de referencia, las tres partículas se mueven, las
dos más masivas lo hacen sobre el plano en torno al centro de masa y la de prueba
RR
~r 0 0
~r23
~r¨30 = − Gm1 1303
− Gm 2 03
−ω
~ × (~ ~ ×~r˙ 30
ω ×~r30 ) − 2ω (5.5)
r13 r23
Aquí ω = n âz , con n la velocidad angular promedio del movimiento relativo
de las partículas 1 y 2.
Para no recargar la notación, de ahora en adelante quitaremos todo subíndices
asociado a la tercera partícula, y toda comilla que denote medición respecto al
sistema rotante de manera que, por ejemplo ~r¨30 → ~r¨ que denotará la aceleración de
la partícula m3 medida respecto al sistema rotante y r13 0 → r será la posición de
1
m3 respecto a m1 con componentes en el sistema rotante. Así las cosas, la ecuación
anterior queda
~r ~r
~r¨ = − Gm1 13 − Gm2 23 − ω
~ × (~ ~ ×~r˙
ω ×~r ) − 2ω (5.6)
r1 r2
y en este caso (las cantidades primadas son medidas respecto al sistema
rotante)
170 Chapter 5. El problema de los tres cuerpos
m2
x1 = − a (5.9)
M
m
x2 = + 1 a (5.10)
M
(5.11)
R
5.2 Las regiones de exclusión
O
Al ser una constante, el valor de C J puede definirse desde t = 0 con las condiciones
iniciales ~r (t = 0), ~r˙ (t = 0). De la ecuación que define la constante de Jacobi en las
unidades canónicas del CRTBP es claro que
(1 − α ) α
D
v2 = 2 + 2 + x 2 + y2 − C (5.12)
r1 r2
A
Claramente, el movimiento solo tendrá lugar cuando v2 ≥ 0 ya que de lo con-
trario, la situación no tendría sentido físico. Las regiones para las cuales v2 < 0
se conocen como regiones de exlusión y claramente determinan los lugares donde
RR
(1 − α ) α
2 + 2 + x 2 + y2 − C ≥ 0 (5.13)
r1 r2
Las superficies que limitan las regiones donde la partícula puede o no estar
se conocen como superficies de cero velocidad o curvas de cero velocidad y y están
5.2. Las regiones de exclusión 171
definidas por la igualdad a cero en la ecuación anterior. Se las llama curvas puesto
que es común mostrar las zonas de restricción en el plano xy en lugar de hacerlo
en todo el espacio.
Consideremos el siguiente sistema (y su solución):
In [6]: alpha=0.3
ro=[0.3,0,0]
vo=[0.5,0.401,0.0]
Nt=1000
T=20.0
ts=np.linspace(0,T,1000)
y=ro+vo
solution=odeint(EoM_CRTBP,y,ts,args=(alpha,))
R
rs=solution[:,:3]
vs=solution[:,3:]
O
Para visualizar las curvas de cero velocidad, por ejemplo, en el sistema anterior,
debemos primero calcular el valor de la constante de Jacobi del sistema
In [7]: r1=norm(np.array([-alpha,0,0])-ro)
D
r2=norm(np.array([1-alpha,0,0])-ro)
CJ=2*(1-alpha)/r1+2*alpha/r2+(ro[0]**2+ro[1]**2)-norm(vo)**2
print("Constante de Jacobi:",CJ)
A
Constante de Jacobi: 3.5125323333333336
RR
Ahora podemos construir las superficies de cero velocidad creando una malla
de puntos en la región del espacio alrededor de los dos cuerpos y calculando allí
el valor de v2 :
xmax=2
ymax=2
NG=80
#Malla de puntos
X,Y=np.meshgrid(np.linspace(-xmax,xmax,NG),np.linspace(-ymax,ymax,NG))
#C=3.8
#Cuadrado de la velocidad
V2=2*(1-alpha)/np.sqrt((X+alpha)**2+Y**2)+2*alpha/np.sqrt((X-1+alpha)**2+Y**2)+X**2+
In [9]: fig=plt.figure(figsize=(8,8))
ax=fig.gca()
172 Chapter 5. El problema de los tres cuerpos
ax.plot(rs[:,0],rs[:,1],color='green')
ax.plot([-alpha],[0],'o',color='blue',markersize=10*(1-alpha))
ax.plot([1-alpha],[0],'o',color='orange',markersize=max(2,10*alpha))
ext=1.5*rs.max()
ax.set_xlim((-ext,ext))
ax.set_ylim((-ext,ext))
ax.grid()
R
O
D
A
RR
BO
Podemos también dibujar, con un procedimiento similar las curvas de cero ve-
locidad para distintos valores de la constante de Jacobi:
In [10]: alpha=0.2
xmax=2
ymax=2
5.2. Las regiones de exclusión 173
NG=80
X,Y=np.meshgrid(np.linspace(-xmax,xmax,NG),np.linspace(-ymax,ymax,NG))
fig=plt.figure(figsize=(8,8))
ax=fig.gca()
colors=['b','r','g','y']
for i,C in enumerate([3.805,3.554,3.199]):
V2=2*(1-alpha)/np.sqrt((X+alpha)**2+Y**2)+2*alpha/np.sqrt((X-1+alpha)**2+Y**2)+
c=ax.contour(X,Y,V2,levels=[0],colors=colors[i])
ax.plot([-alpha],[0],'o',color='blue',markersize=10*(1-alpha))
ax.plot([1-alpha],[0],'o',color='orange',markersize=max(2,10*alpha))
ax.grid()
R
O
D
A
RR
BO
Los valores aquí escogidos para la constante de Jacobi, C J = 3.805, 3.554, 3.199,
no son arbitrarios, sino que corresponden a situaciones críticas en la que la ge-
ometría de la curva cambia. Así por ejemplo cuando la constante de Jacobi pasa el
límite de 3.805 la zonas permitidas para la partícula pasan de ser solo alrededor de
cada uno de los cuerpos a crear una región en la que los dos cuerpos están incluí-
dos. Esta es una situación muy particular e interesante para los viajes espaciales.
174 Chapter 5. El problema de los tres cuerpos
Puede notarse también que cada uno de estos valores define un punto sobre
el eje x en los que la curva de cero velocidad tiene un intercepto. Como veremos
más adelante a estos puntos se los conoce como puntos de equilibrio de Lagrange y el
orden de estos viene determinado por el orden decreciente del valor de C J .
~r ~r
~r¨ = −(1 − α) 13 − α 23 − k̂ × (k̂ ×~r ) − 2k̂ ×~r˙ (5.14)
R
r1 r2
O
de prueba en el sistema rotante.
Podemos preguntarnos ¿cuál es la aceleración que siente la partícula cuando
en un instante dado esta en reposo en el sistema rotante? En este caso la ecuación
de movimiento se escribe como
~r
D ~r
~r¨0 = −(1 − α) 13 − α 23 − k̂ × (k̂ ×~r ) (5.15)
r1 r2
A
Donde hemos usado aquí el subíndice 0 para indicar que esta es solo la acel-
eración de la partícula cuando se encuentra instantáneamente en reposo.
RR
(1 − α )
¨ α 1 2 2
~r0 = −∇ − − − (x + y ) (5.16)
r1 r2 2
Es decir, en el sistema rotante, una partícula en reposo experimenta una acel-
BO
(1 − α ) α 1
Vmod = − − − ( x 2 + y2 ) (5.17)
r1 r2 2
En términos del potencial modificado las ecuaciones de movimiento del sis-
tema, aún cuando la velocidad de la partícula ligera no es 0, se escriben:
∂Vmod
ẍ − 2ẏ = − (5.18)
∂x
∂Vmod
ÿ + 2ẋ = − (5.19)
∂y
∂Vmod
z̈ = − (5.20)
∂z
(5.21)
5.2. Las regiones de exclusión 175
In [11]: alpha=0.1
xs=np.linspace(-2,2,100)
ys=np.linspace(-2,2,100)
X,Y=np.meshgrid(xs,ys)
Z=np.zeros_like(X)
R1=np.sqrt((X+alpha)**2+Y**2+Z**2)
R2=np.sqrt((X-1+alpha)**2+Y**2+Z**2)
Vmod=-(1-alpha)/R1-alpha/R2-0.5*(X**2+Y**2)
R
In [12]: fig=plt.figure()
ax=fig.add_subplot(111, projection='3d')
O
ax.plot_surface(X,Y,Vmod)
ax.set_zlim((-5,0))
Out[12]: (-5, 0)
D
A
RR
BO
In [13]: fig=plt.figure()
ax=fig.add_subplot(111)
levels=np.linspace(Vmod.min(),Vmod.max(),1000)
ax.contourf(X,Y,Vmod,levels=levels,cmap="prism")
R
O
D
5.2.3 Los puntos de equilibrio de Lagrange
A
En secciones anteriores derivamos una expresión para la aceleración que experi-
mentará una partícula de prueba en reposo en el sistema rotante en función del
potencial modificado
RR
∂Vmod z z
= (1 − α ) 3 + α 3 (5.23)
∂z r1 r2
que solo es válida para valores finitos de x, y, z si z = 0, es decir los puntos de
equilirbio se encuentran todos sobre el plano xy.
Por otro lado ∂Vmod /∂y = 0 implica que:
∂Vmod y y
= (1 − α ) 3 + α 3 − y (5.24)
∂y r1 r2
Esta condición produce dos familias de puntos:
5.2. Las regiones de exclusión 177
y=0 (5.25)
1−α α
+ 3 −1 = 0 (5.26)
r13 r2
( x − x1 ) ( x − x2 )
(1 − α ) +α −x =0 (5.27)
r13 r23
R
5.2.4 Puntos triangulares
O
La ubicación de los puntos que se encuentran fuera del eje x puede hayarse re-
solviendo simultáneamente las ecuaciones:
1−α
3
r1
α
r2
D
+ 3 −1 = 0 (5.28)
( x − x1 ) ( x − x2 )
A
(1 − α ) 3
+α −x =0 (5.29)
r1 r23
Multipliquemos la ecuación por ( x − x2 ) y por ( x − x1 ) y substraemos los pro-
RR
(1 − α )
− x2 + (− x1 + x2 ) = 0 (5.30)
r13
α
− x1 + 3 (− x2 + x1 ) = 0 (5.31)
BO
r2
r1 = r2 = 1 (5.32)
( x − x1 ) ( x − x2 )
x − (1 − α ) 3
−α =0 (5.33)
| x − x1 | | x − x2 |3
Los valores de la variable x pueden estar en tres regiones diferentes como se
aprecia en la imagen. Analicemos cada una de ellas.
178 Chapter 5. El problema de los tres cuerpos
• Región I:
( x − x1 ) ( x2 − x )
x − (1 − α ) +α =0 (5.34)
( x − x1 )3 | − ( x2 − x )|3
(1 − α ) α
x− + =0 (5.35)
( x − x1 )2 ( x2 − x )2
( x − x1 ) ( x − x2 )
R
x − (1 − α ) 3
−α =0 (5.36)
( x − x1 ) ( x − x2 )3
O
(1 − α ) α
x− 2
− =0 (5.37)
( x − x1 )
D ( x − x2 )2
(1 − α ) α
x+ + =0 (5.39)
( x1 − x )2 ( x2 − x )2
In [15]: fig=plt.figure()
ax=fig.gca()
xs=np.linspace(-2,2,100)
ax.plot(lagrangePoints(xs,0.2),'k-')
R
O
D
A
La posición se puede encontrar resolviendo encontrando los ceros de esta fun-
ción:
RR
In [17]: fig=plt.figure()
ax=fig.gca()
alpha=0.2
ax.plot([-alpha],[0],'o',color='blue',markersize=10*(1-alpha))
ax.plot([1-alpha],[0],'o',color='orange',markersize=max(2,10*alpha))
ax.plot([L1x],[0],'kv',markersize=10)
ax.plot([L2x],[0],'kv',markersize=10)
ax.plot([L3x],[0],'kv',markersize=10)
ax.grid()
180 Chapter 5. El problema de los tres cuerpos
R
O
D
5.3 La constante de Jacobi
A
En el CRTBP las ecuaciones de movimiento que debemos resolver son:
RR
~r ~r
~r¨ = − Gm1 13 − Gm2 23 − ω
~ × (~ ~ ×~r˙
ω ×~r ) − 2ω (5.40)
r1 r2
Con ~r1 = [ x (t) − x1 ]î + y(t) ĵ + z(t)k̂ y ~r2 = [ x (t) − x2 ]î + y(t) ĵ + z(t)k̂
Las variables son ~r y ~r˙ (posición y velocidad de la partícula más liviana, tal y
como es medida en el sistema rotante).
BO
~ × (~
ω ω ×~r ) = ω k̂ × ( xω ĵ − ωyî )
= − xω 2 î − yω 2 ĵ
y por lo tanto:
1 d
ω ×~r ) ·~r˙ = −ω 2 ( x ẋ + yẏ) = − ω 2 ( x2 + y2 )
~ × (~
ω
2 dt
Por propiedades del producto punto es claro que multiplicando escalarmente
el último término de la derecha por ~r˙ obtenemos
ω ×~r˙ ) ·~r˙ = 0
2(~ (5.43)
R
Juntando todos estos resultados obtenemos finalmente que
d 1 ˙2 d Gm1 Gm2 1
~r = + + ω 2 ( x 2 + y2 ) (5.44)
O
dt 2 dt r1 r2 2
Agrupando términos y multiplicando ambos lados de la ecuación por dos se
halla finalmente
d
−~r˙ 2 + 2
Gm1
+2
Gm2
D
+ ω 2 ( x 2 + y2 ) = 0 (5.45)
dt r1 r2
A
de manera que la cantidad conservada (cuadratura) es
Gm1 Gm2
CJ = 2 +2 + ω 2 ( x 2 + y2 ) − v2 (5.46)
RR
r1 r2
A la constante C J , se le conoce como la constante de Jacobi la cual es una canti-
dad escalar.
La constante de Jacobi resulta ser la única cantidad conservada en el CRTBP
cuando la dinámica es descrita en un sistema rotante.
Para convencernos de esto, notemos que no es posible definir una energía
BO
cinética de los dos objetos masivos del sistema puesto que estos están en reposo
respecto al sistema rotante aunque si es posible hablar de una energía potencial la
cuál se conservaría solamente para el sistema de dos cuerpos.
¿Por qué no para el tercero? Básicamente porque para m3 la energía mecánica
resulta ser una cantidad no conservada debido a que sobre esta actúa una fuerza de
coriolis que evidentemente depende de la velocidad. Por regla general, las fuerzas
que dependen explícitamente de la velocidad del objeto no pueden derivar de fun-
ciones escalares y por tanto se conocen como disipativas, o sea, disipan la energía
mecánica.
Por otro lado, el problema de los tres cuerpos no puede reducirse a un problema
equivalente de dos cuerpos de manera que la fuerza sobre m3 no es central, lo cuál
no garantiza la conservación del momentum angular.
Estas cantidades no conservadas pueden conservarse si la dinámica del sistema
se describe respecto a un sistema inercial lo cual nos dejaría de nuevo con diez
cantidades conservadas y con 18 variables a encontrar. Esta es una demostración
eurística de la no solubilidad analítica del problema de los tres cuerpos.
182 Chapter 5. El problema de los tres cuerpos
In [19]: masa1=4.0
masa2=1.0
a=1.0
masa3=0.0001
sistema=dict(
particula1=dict(
R
m=masa1,
r=[0,0,0],
v=[0,0,0]),
O
particula2=dict(
m=masa2,
r=[a,0,0],
v=[0,np.sqrt((masa1+masa2)/a),0],
),
particula3=dict(
D
m=masa3,
A
r=[0.5,0.0,0.5],
v=[0,1.5,0],
),
)
RR
tini=0.0
tend=10.0
Nt=300
ts=np.linspace(tini,tend,Nt)
rs,vs,masas,N=solucionNbody(sistema,tini,tend,Nt)
rscm,vscm=in2cm(rs,vs,masas,Nt,N)
BO
fig=plt.figure()
ax=Axes3D(fig)
ax.plot(rscm[0,:,0],rscm[0,:,1],rscm[0,:,2],'-')
ax.plot(rscm[1,:,0],rscm[1,:,1],rscm[1,:,2],'-')
ax.plot(rscm[2,:,0],rscm[2,:,1],rscm[2,:,2],'-')
max=1.0
ax.set_xlim((-max,max))
ax.set_ylim((-max,max))
ax.set_zlim((-max,max))
R
O
D
Para comenzar debemos verificar que las dos partículas masivas se mueven en
un círculo. Esto puede hacerse calculando la excentricidad del sistema de esas dos
A
partículas o, en un enfoque más práctico, examinando la distancia relativa entre
ellas:
RR
In [20]: plt.figure()
plt.plot([spy.vnorm(rscm[0,i]-rscm[1,i]) for i in range(Nt)])
In [21]: omega=np.sqrt((masa1+masa2)/a**3)
R
In [22]: # Ángulos de rotación
r12=rscm[1,:]-rscm[0,:]
tetas=np.arctan2(r12[:,1],r12[:,0])
O
D
Una vez hecho esto hay que rotar todas las posiciones al sistema rotante us-
ando:
A
In [23]: # Rota cada una de las posiciones para encontrar la posición en el sistema rotante
rsr=np.zeros_like(rs)
RR
for i in range(len(tetas)):
Rtot=spy.rotate(tetas[i],3)
for n in range(N):rsr[n,i]=Rtot.dot(rscm[n,i])
BO
In [24]: fig=plt.figure()
ax=Axes3D(fig)
ax.plot(rsr[0,:,0],rsr[0,:,1],rsr[0,:,2],'o-')
ax.plot(rsr[1,:,0],rsr[1,:,1],rsr[1,:,2],'o-')
ax.plot(rsr[2,:,0],rsr[2,:,1],rsr[2,:,2],'-')
max=1.5
ax.set_xlim((-max,max))
ax.set_ylim((-max,max))
ax.set_zlim((-max,max))
R
O
D
Nótese que la posición de los cuerpos masivos ahora parece constante y la
A
trayectoria del tercer cuerpo se ha modificado considerablemente.
La velocidad en el sistema rotante es un poco más complicada. Debemos uti-
lizar la relación que habíamos deducido antes ~v0 = ~v − Ω ×~r:
RR
In [26]: r1=rsr[2,:]-rsr[0,:]
r2=rsr[2,:]-rsr[1,:]
rho=np.sqrt(rsr[2,:,0]**2+rsr[2,:,1]**2)
CJ=[2*masa1/spy.vnorm(r1[i])+2*masa2/spy.vnorm(r2[i])+omega**2*rho[i]**2-spy.vnorm(
Gráficamente:
In [27]: plt.figure()
plt.plot(CJ)
R
O
D
A
5.3.1 Unidades en el CRTBP
Vamos a deducir un conjunto de unidades canónicas trabajando con la constante
de gravitación universal y forzando a que esta adopte un valor de 1 u3L (u M u2T ).
RR
r
µ
n= = 1 u T −1 (5.47)
a3
Por otro lado, como la suma de las dos masas es siempre igual a la unidad,
solo necesito especificar el valor de una de ellas. Entonces, podemos introducir
una nueva variable α definida como α ≡ m2 /(m1 + m2 ) = m2 de manera que
m1 = 1 − α. Con esta definición y recordando del problema de los dos cuerpos que
m2
x1 = − a = −α = −α
m1 + m2
m1
x2 = a = 1−α
m1 + m2
(1 − α ) α
CJ = 2 + 2 + x 2 + y2 − v2 (5.48)
r1 r2
p p
Donde r1 = ( x + α)2 + y2 + z2 , r2 = ( x − 1 + α)2 + y2 + z2
Una de las ventajas de la unidades canónicas del CRTBP, es que todas las
propiedades del sistema se reducen a especificar un solo parámetro, α.
Podemos calcular ahora en unidades canónicas la constante de Jacobi del prin-
cipio:
In [28]: UM=masa1+masa2
UL=a
UT=1/omega
UV=UL/UT
R
CJ=[2*(masa1/UM)/(spy.vnorm(r1[i])/UL)+
2*(masa2/UM)/(spy.vnorm(r2[i])/UL)+
(omega/(1/UT))**2*(rho[i]/UL)**2-
O
spy.vnorm(vsr[i])**2/UV**2 for i in range(Nt)]
# Gráfica D
plt.figure()
plt.plot(CJ)
(1 − α ) α
CJ = 2 + 2 + x 2 + y2 − v2 (5.49)
r1 r2
Dado que normalmente α 1, el primer término es del orden de 2, el segundo
término es muy pequeño, el tercer término (x2 + y2 ), si asumimos que la partícula
esta relativamente cerca a las otras dos, es del orden de 2 mientras que el último
término es el más incierto, en tanto la velocidad de la partícula podría ser arbi-
traria. Si asumimos una velocidad relativamente pequeña, v ∼ 1, el resultado es
que la constante de Jacobi sería C J ∼ 2 + 2 − 1 ∼ 3
### Solución numérica al CRTBP
En el sistema rotante y con las unidades canónicas todo es más sencillo. Debería
también serlo la solución a las ecuaciones de movimiento. El sistema de ecuaciones
diferenciales puede escribirse numéricamente como se muestra a continuación
R
In [29]: def EoM_CRTBP(y,t,alpha):
r1=np.array([-alpha,0,0])
r2=np.array([1-alpha,0,0])
O
omega=np.array([0,0,1])
r=y[:3]
v=y[3:]
R1=r-r1
D
R2=r-r2
A
drdt=v
dvdt=-(1-alpha)/spy.vnorm(R1)**3*R1-alpha/spy.vnorm(R2)**3*R2-np.cross(omega,np
RR
dydt=drdt.tolist()+dvdt.tolist()
return dydt
In [30]: alpha=0.3
BO
ro=[0.3,0,0]
vo=[0.5,0.401,0.0]
#ro=[0.5,0,0]
#vo=[0,1,0]
# Solución
Nt=1000
T=20.0
ts=np.linspace(0,T,1000)
y=ro+vo
solution=odeint(EoM_CRTBP,y,ts,args=(alpha,))
rs=solution[:,:3]
vs=solution[:,3:]
Así se ve la solución:
axr=fig.add_subplot(1,2,1)
# Rotante
axr.plot(rs[:,0],rs[:,1],color='green')
axr.plot([-alpha],[0],'o',color='blue',markersize=10*(1-alpha))
axr.plot([1-alpha],[0],'o',color='orange',markersize=10*alpha)
# Decoration
ext=rs.max()
axr.set_xlim((-ext,ext))
axr.set_ylim((-ext,ext))
axr.grid()
R
O
D
A
RR
BO
R
Cs=np.array([JacobiConstant(rs[i],vs[i],alpha) for i in range(Nt)])
Grafiquemos:
O
In [33]: fig=plt.figure()
ax=fig.gca()
#ax.plot(Cs-Cs.mean())
ax.plot(Cs)
D
ax.set_ylabel(r"$C_J-\langle C_J\rangle$")
Out[33]: Text(0, 0.5, '$C_J-\\langle C_J\\rangle$')
A
RR
BO
r=5.0
a=r
r1=-masa2/mu*r
r2=+masa1/mu*r
R
vcirc=np.sqrt(mu/r)
sistema=dict(
O
# Particula 0
particula1=dict(
m=masa1,
r=[r1,0,0],
),
v=[0,-vcirc/2,0]
D
# Particula 1
A
particula2=dict(
m=masa2,
r=[r2,0,0],
v=[0,+vcirc/2,0]
RR
),
# Particula 2
particula3=dict(
m=masa3,
r=[6.0,0,-0.1],
v=[0,2.0,0.1]
BO
)
)
#Gráfico
fig2d = plt.figure(figsize=(6,6))
ax2d=fig2d.gca()
192 Chapter 5. El problema de los tres cuerpos
for i in range(N):
if i==1:continue
line,=ax2d.plot(rs[i,0,0],rs[i,0,1],'o',markersize=10,markeredgecolor='none')
color=line.get_color()
ax2d.plot(rs[i,:,0],rs[i,:,1],color=color)
ax2d.plot(rs[i,-1,0],rs[i,-1,1],'s',markersize=10,markeredgecolor='none',color=
ax2d.legend(loc='best')
ext=np.abs(rs[:,:,:2]).max()
xlim=ax2d.set_xlim(-ext,ext)
ylim=ax2d.set_ylim(-ext,ext)
R
O
D
A
RR
BO
In [37]: it=10
state=rs[2,it,:].tolist()+vs[2,it,:].tolist()
elements=spy.oscltx(state,0,mu)
print("Elementos orbitales: q = %e, e = %e, i = %g, M = %g"%(elements[0],
elements[1],
elements[2]*RADIAN,
elements[5]*RADIAN))
R
O
Elementos orbitales: q = 1.994051e+00, e = 5.018058e-01, i = 1.1795, M = 227.491
D
A
Hagamos un gráfico de los elementos orbitales:
RR
In [38]: fig,axs=plt.subplots(4,1)
BO
elts=[]
for it in range(Nt):
state=rs[2,it,:].tolist()+vs[2,it,:].tolist()
distance=spy.vnorm(rs[2,it])
elements=spy.oscltx(state,0,mu)
elts+=[[elements[9],elements[1],elements[2]*RADIAN,distance]]
elts=np.array(elts)
axs[0].plot(ts,elts[:,3])
axs[0].set_ylabel('r(AU)')
axs[1].plot(ts,elts[:,0])
axs[1].set_ylabel('a(AU)')
axs[2].plot(ts,elts[:,1])
axs[2].set_ylabel('e')
axs[3].plot(ts,elts[:,2])
axs[3].set_ylabel('I (grados)')
plt.tight_layout()
194 Chapter 5. El problema de los tres cuerpos
R
O
D
A
Como puede verse, en los primeros 4 o 5 perihelios (panel superior) la deter-
minación de los elementos orbitales (a, e, I) del cometa producen valores más o
menos consistente. Sin embargo, a partir de t ≈ 7.5 UT al medir los elementos or-
RR
bitales del cometa el valor es muy diferente y por la misma razón el cuerpo podría
confundirse con un cuerpo diferente.
Si nos pasamos ahora al sistema rotante Sol-Júpiter:
BO
In [39]: rsr,vsr=sol2rot(rs,vs,masas,Nt,N,0,1)
#Gráfico
fig2d = plt.figure(figsize=(6,6))
ax2d=fig2d.gca()
for i in range(N):
if i==1:continue
line,=ax2d.plot(rsr[i,0,0],rsr[i,0,1],'o',markersize=10,markeredgecolor='none')
color=line.get_color()
ax2d.plot(rsr[i,:,0],rsr[i,:,1],color=color)
ax2d.plot(rsr[i,-1,0],rsr[i,-1,1],'s',markersize=10,markeredgecolor='none',colo
ax2d.legend(loc='best')
ext=np.abs(rsr[:,:,:2]).max()
xlim=ax2d.set_xlim(-ext,ext)
ylim=ax2d.set_ylim(-ext,ext)
5.4. El parámetro de Tisserand 195
R
O
D
A
RR
BO
In [40]: C=CJacobi(rsr,vsr,masas,Nt,0,1,2)
fig=plt.figure()
ax=fig.gca()
ax.plot(ts,C)
#ylim=ax.set_ylim((0.9999*C.max(),1.0001*C.max()))
R
O
D
Es decir, a pesar de que los elementos orbitales cambian del cometa respecto al
Sol considerablemente durante el movimiento, la constante de Jacobi no lo hace.
De allí surge la idea de usar la constante de Jacobi en lugar de los elementos or-
A
bitales como el criterio para determinar si durante el paso por el perihelio dos
cometas con órbitas aparentemente muy diferentes son el mismo realmente.
Pero el procedimiento anterior es relativamente complejo. Requiere una
RR
(1 − α ) α
C = −( ẋ 02 + ẏ02 + ż02 ) + 2 + 2 + x 02 + y 02 (5.51)
r1 r2
Si usamos el hecho que ~v0 = ~v − ω
~ ×~r obtenemos:
(1 − α ) α
C = −( ẋ2 + ẏ2 + ż2 ) + 2 + 2 + 2( x ẏ − y ẋ ) (5.52)
r1 r2
el término x ẏ − y ẋ, es la componente del momentum angular específico h a lo
largo del eje de rotación, de manera que x ẏ − y ẋ = ω~ · ~h = h cos I,
teniendo en cuenta que ω ~ : (0, 0, 1) en las unidades del CRTBP y siendo I la in-
clinación de la órbita del cometa respecto al plano de movimiento de m1 y m2 .
Entonces
R
(1 − α ) α
C = −( ẋ2 + ẏ2 + ż2 ) + 2 + 2 + 2h cos I (5.53)
r1 r2
Ahora bien, sabemos que en el sistema no rotante, la ecuación vis-viva es siem-
O
pre válida, luego podemos escribir
2 1
ẋ2 + ẏ2 + ż2 =
− (5.54)
r
D a
donde r es la distancia a m3 medida desde m1 (el Sol en nuestro modelo), a es
el semieje mayor de su órbita. En definitiva, obtenemos
A
2 1 (1 − α ) α
− + + 2h cos I + 2 +2 = C (5.55)
r a r1 r2
RR
1
q
TP ≡ +2 a(1 − e2 ) cos I ≈ C (5.58)
a
Donde hemos introducido el denominado parámetro de Tisserand TP que es
aproximadamente igual a la constante de Jacobi C.
Como C es una constante de movimiento, debe tener el mismo valor antes y
después del encuentro cercano con Júpiter. Por lo tanto el valor calculado para
TP debe ser también aproximadamente constante. Así, si previo al encuentro los
198 Chapter 5. El problema de los tres cuerpos
1 1
q q
+2 a1 (1 − e12 ) cos I1 ≈ +2 a2 (1 − e22 ) cos I2 (5.59)
a1 a2
Se debe hacer énfasis en que en la ecuación anterior el semieje mayor debe
medirse en las unidades canónicas del CRTBP, es decir, en términos del semieje-
major relativo del cuerpo más masivo al segundo cuerpo.
Pongamos a prueba el criterio de Tisserando para el sistema estudiado antes,
calculando el valor de TP en dos momentos arbitrarios de la órbita del cometa:
In [41]: it1=10
a1=elts[it1,0]
e1=elts[it1,1]
R
I1=elts[it1,2]
TP1=(a/a1)+2*np.sqrt((a1/a)*(1-e1**2))*np.cos(I1*GRADOS)
print("Instante 1: (a,e,I) = ",a1,e1,I1)
O
it1=500
a2=elts[it1,0] D
e2=elts[it1,1]
I2=elts[it1,2]
print("Instante 2: (a,e,I) = ",a2,e2,I2)
A
Instante 1: (a,e,I) = 4.002557243719078 0.5018057970678459 1.1795045258285082
Instante 2: (a,e,I) = 3.6482690846375117 0.5386706717043267 1.6204980944977534
RR
Como vemos los elementos orbitales son diferentes en los momentos selec-
cionado, siendo el semieje mayor el más diferente de los dos. El valor del
parámetro de Tisserand en ambos instantes será:
a=norm(rsr[0,0]-rsr[1,0])
TP1=(a/a1)+2*np.sqrt((a1/a)*(1-e1**2))*np.cos(I1*GRADOS)
print("Parámetro de Tisserand en el Instante 1, TP = ",TP1)
TP2=(a/a2)+2*np.sqrt((a2/a)*(1-e2**2))*np.cos(I2*GRADOS)
print("Parámetro de Tisserand en el Instante 1, TP = ",TP2)
In [43]: TPs=[]
for it in range(Nt):
ac=elts[it,0]
5.4. El parámetro de Tisserand 199
ec=elts[it,1]
Ic=elts[it,2]
TPs+=[(a/ac)+2*np.sqrt((ac/a)*(1-ec**2))*np.cos(Ic*GRADOS)]
fig=plt.figure()
ax=fig.gca()
ax.plot(ts,TPs)
ax.set_ylim((1.5,4.5))
R
O
D
A
RR
BO
200 Chapter 5. El problema de los tres cuerpos
R
O
D
A
RR
BO
Chapter 6
El formalismo
lagrangiano
R
O
6.1 Motivación
La teoría desarrollada hasta este punto en el texto se basa en el denominado for-
D
malismo vectorial de la mecánica que basicamente expresa la dinámica de los sis-
temas usando cantidades vectoriales y sus relaciones matemáticas y geométricas.
En este formalismo la solución a cualquier problema mecánico que requiera
predecir la posición de un sistema de partículas, requiere resolver las ecuaciones
A
de movimiento:
{~r¨i = ~Fi }
RR
201
202 Chapter 6. El formalismo lagrangiano
R
Si bien la mayoría de los problemas que resolveremos en este capítulo, apli-
cando este nuevo formalismo, ya los resolvimos usando el formalismo vectorial,
O
veremos como sus principios y las herramientas derivadas permiten entender as-
pectos de los problemas que en el formalismo vectorial toma tiempo entender, e
incluso resolver más fácil problemas que no hemos abordado todavía.
D
6.2 El formalismo Lagrangiano
En el año 1788 el matemático y astrónomo italo-francés Joseph-Louis Lagrange
A
presentó una versión alternativa de la mecánica que ofrecía una serie de impor-
tantes ventajas frente a la formulación Newtoniana. A esta nueva formulación se
la conoce como el formalismo Lagrangiano. En esta sección presentamos la moti-
RR
∑ ~Fi · δ~ri = 0
i
R
O
D
A
RR
BO
Figure 6.1: Un problema simple que ilustra la manera como puede aplicarse el
principio de los trabajos virtuales
δr R = −dδθ (6.1)
δrW = −( L/2 − D )δθ (6.2)
δr F = + Dδθ (6.3)
δr N = 0 (6.4)
(6.5)
R
Dado que el desplazamiento δθ es arbitrario esta igualdad es equivalente a:
− Rd − W ( L/2 − D ) + FD = 0
O
Y de allí puede obtenerse el valor de la magnitud de la fuerza necesaria:
FD − W ( L/2 − D )
D
R=
d
Si bien este problema parece trivial, debe anotarse que en ningún momento
recurrimos a los principios de la mecánica Newtoniana, es decir a la segunda ley
A
de Newton o la ley de acción y reacción para resolver el problema.
Esto ilustra claramente como esta forma de aproximarse al problema es real-
mente una alternativa nueva a estas leyes.
RR
R
tal y como se explica aquí.
O
D
A
RR
BO
Figure 6.2: Un problema simple que ilustra la manera como puede aplicarse el
principio de d’Alambert-Lagrange a un sistema dinámico
El sistema esta formado por una sola partícula, de modo que solo hay un de-
splazamiento y un trabajo virtual en este caso. Incluso en el caso dinámico el de-
splazamiento virtual no puede ser arbitrario. Así por ejemplo no se puede consid-
erar el desplazamiento δr que aparece tachado en la figura (desplazamiento hor-
206 Chapter 6. El formalismo lagrangiano
izontal) porque viola las restricciones del problema, a saber, que la cuerda man-
tenga su longitud. Este aspecto del principio de d’Alambert-Lagrange es funda-
mental y lo discutiremos más adelante.
El trabajo total realizado por la fuerza efectiva que actúa sobre la partícula es
en este caso:
~ − m~v) · δ~r = 0
(~T + W
Por las restricciones del problema, sin embargo ~T · δ~r = 0 y por lo tanto la
tensión no aparecerá en la ecuación que rige la dinámica del sistema (solo lo
hace implícitamente al restringir la manera como se puede definir el desplaza-
miento virtual). En términos del peso y en coordenadas cartesianas el principio de
d’Alambert-Lagrange para el sistema se escribe:
R
(Wx − mv̇ x )δx + (Wy − mv̇y )δy = 0
Lamentablemente esta ecuación contiene muy poca información útil. Para em-
O
pezar hay dos incognitas v x , vy y peor aún los desplazamientos δx y δy no son inde-
pendientes. Este es otro aspecto de gran interés del nuevo principio: la elección del
sistema de coordenadas es fundamental para que pueda aplicarse exitosamente.
D
Nótese que un sistema de coordenadas más apropiado para describir la
dinámica del sistema (dadas las restricciones implícitas en él) es el sistema de coor-
denadas polares, en particular la dinámica puede describirse teniendo como única
variable dependiente, el ángulo θ. En términos de esta variable las coordenadas
A
cartesianas x, y se pueden escribir como:
RR
x = L sin θ (6.6)
y = − L cos θ (6.7)
(6.8)
Del otro lado las componentes cartesianas del peso son Wx = 0 y Wy = −mg.
Usando esta transformación el principio de d’Alambert-Lagrange se puede escribir
así:
6.2. El formalismo Lagrangiano 207
g
θ̈ + sin θ = 0
R
L
Que es justamente la ecuación de movimiento del péndulo que conocíamos del
formalismo vectorial.
O
Como vemos entonces, en el contexto de los problemas de mecánica resueltos
con el principio de d’Alambert-Lagrange no juega ningún papel la segunda ley de
Newton ni sus derivados. Más allá del principio modificado de los trabajos vir-
D
tuales lo único necesario es desarrollar de forma ingeniosa el problema buscando
un sistema de coordenadas en el que la ecuación del trabajo virtual de la fuerza
efectiva pueda utilizarse efectivamente para deducir la ecuación de movimiento.
A
Usando la ecuación resultante podemos simular la dinámica del sistema. Para
ello necesitamos definir el sistema de ecuaciones diferenciales:
q=y[0]
qp=y[1]
dqdt=qp
dqpdt=-g/L*np.sin(q)
dydt=[dqdt,dqpdt]
return dydt
BO
In [3]: y=[10*GRADOS,0.0]
T=10.0
Nt=1000
ts=np.linspace(0.0,T,Nt)
g=9.81
L=1.0
La solución será:
In [4]: solucion=odeint(EoM_dinamico,y,ts,args=(g,L))
In [5]: fig=plt.figure()
ax=fig.gca()
ax.plot(ts,solucion[:,0]*RADIAN)
ax.set_xlabel("t")
ax.set_ylabel(r"$\theta$")
R
O
D
A
RR
BO
También puede mostrarse la evolución del sistema en el plano θ-θ̇ (que más
adelante introduciremos y que llamamos el espacio de fase):
In [6]: fig=plt.figure(figsize=(6,6))
ax=fig.gca()
ax.plot(solucion[:,0]*RADIAN,solucion[:,1]*RADIAN)
ax.set_xlabel(r"$\theta$")
ax.set_ylabel(r"$\dot\theta$")
R
O
D
A
RR
In [7]: xs=L*np.sin(solucion[:,0])
ys=-L*np.cos(solucion[:,0])
La trayectoria sería:
In [8]: fig=plt.figure(figsize=(6,6))
ax=fig.gca()
ax.plot(xs,ys)
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_xlim((-0.6*L,0.6*L))
ax.set_ylim((-1.2*L,0.0))
R
O
D
A
RR
In [9]: fig=plt.figure(figsize=(6,6))
ax=fig.gca()
line,=ax.plot([],[],color='k',marker='o',markersize=15)
string,=ax.plot([],[],'b-')
tiempo=ax.text(0.05,0.9,'',transform=ax.transAxes)
xlim=ax.set_xlim((-0.6*L,0.6*L))
ylim=ax.set_ylim((-1.2*L,0.0))
anim=animation.FuncAnimation(fig,animacion,frames=Nt,interval=Nt/100,blit=True)
6.3. Restricciones y variables generalizadas 211
R
O
D
A
RR
x 2 + y2 − L2 = 0
Esto quiere decir que basta expresar una de ellas para indicar el estado del
sistema, en tanto la otra se puede obtener de la ecuación anterior. A este tipo de
relaciones matemáticas en sistemas dinámicos se las conoce como restricciones y
las implicaciones que tienen para el sistema dinámico son muy interesantes.
212 Chapter 6. El formalismo lagrangiano
Es importante entender que el espacio físico es el mismo para todas las partícu-
las que constituyen un sistema. Sin embargo, para especificar la configuración
física de N partículas en un sistema, 3 coordenadas no son suficientes. En realidad
es necesario específicar 3N coordenadas cartesianas, que describiremos en general
R
como {~ri } N . O equivalentemente { xα,i }3N , donde xα (α : 1, 2, 3):( xi , yi , zi ) son las
coordenadas cartesianas de la partícula i-esima.
O
Definición. Restricción. Entendemos por restricción cualquier función
o desigualdad que involucre las coordenadas cartesianas del sistema
y que se relaciona con las regiones del espacio físico a las que puede
D
realmente acceder el sistema.
f n ({~ri }, t) = 0
Aquí el índice n representa el hecho que en un mismo problema pueden existir
más de una restricción. La partícula del péndulo simple por ejemplo esta sometida
BO
f 1 (~r, t) ≡ z = 0 (6.17)
2 2 2
f 2 (~r, t) ≡ x + y − L = 0 (6.18)
f n ({~ri }, t) ≤ 0
6.3. Restricciones y variables generalizadas 213
Este tipo de restricciones son utilizadas para delimitar regiones del espacio
físico a las que el sistema puede o no puede acceder. Un ejemplo de una restric-
ción no holonómica es la que debemos aplicar, por ejemplo, si queremos describir
el movimiento de las partículas de un gas contenido en una caja. En ese caso las
coordenadas cartesianas pueden ser cualquiera excepto si están por fuera de la
caja.
Otro tipo de restricción no holonómica se obtiene en un sistema como el
mostrado en la figura abajo. Un cuerpo se mueve sobre un cascarón esférico en
un campo gravitacional.
R
O
D
A
RR
holonómicas y no holonómicas:
f 1 (~r, t) = z = 0 (6.19)
2 2 2
f 2 (~r, t) = x + y − R ≥ 0 (6.20)
Es importante anotar que las restricciones no holonómicas no se restringen
necesariamente a aquellas que se expresan en términos de desigualdades. Otro
tipo de restricciones no holonómicas comunes son aquellas que se escriben en tér-
minos de velocidades. En ese caso, no siempre es posible expresar la condición en
la forma:
f n ({~ri }, t) = 0
y por lo tanto tampoco podemos llamar a la restricción holonómica.
En la definición de la restricción aparece explícitamente el tiempo. ¿Pero es esto
valido?. En el caso del péndulo ciertamente la restricción no depende del tiempo.
Las restricciones de este tipo tiene un nombre específico:
214 Chapter 6. El formalismo lagrangiano
R
Un caso muy común de una condición reónoma se da por ejemplo cuando se
describe el movimiento de una “cuenta” (un cuerpo con un agujero) que puede
O
moverse libremente sobre un aro, pero el aro a su vez se mueve. Es claro que las
restricciones que debemos aplicar a la posición de la cuenta tienen que ver con el
hecho que ella no puede estar a una distancia mayor al radio del aro de su centro.
D
Sin embargo, el centro mismo está en movimiento. En este caso al restricción se
escribiría como:
A
f (~r, t) = [ x − xo (t)]2 + [ x − xo (t)]2 − R2 = 0
Aquí el tiempo aparece explícitamente porque la posición del centro del aro
xo (t), yo (t) no es producto de la dinámica del sistema, sino que debe ser provista a
RR
priori, es decir ecuaciones explícitas para estas cantidades deben ser provistas en
el problema.
De nuevo la palabra reónomo no es común. Para recordarla basta recordar que
reo- viene del griego rheos que significa flujo, corriente. Es decir una restricción
reónoma para un griego clásico sonaría algo así a una ley en movimiento.
BO
~Fi = ~Fia + ~f i
Que parece una expresión sencilla pero en realidad es poderosa en tanto mues-
tra que en el contexto de este formalismo las desconocidas fuerzas de restricción
no juegan (aparte de las restricciones) ningún papel a la hora de determinar la
dinámica del sistema.
Ahora que aclaramos lo que significan las palabras esclerónoma y renoma, sería
interesante aclarar también lo que significa la palabra holonoma para referirnos a las
restricciones que pueden expresarse como igualdades en lugar de desigualdades.
Curiosamente la comprensión de esta palabra nos lleva al siguiente concepto cen-
tral del formalismo escalar, el concepto de variables generalizadas
R
6.3.2 Variables generalizadas
La palabra holonomía tiene significados muy específicos en matemáticas, en par-
O
ticular en geometría. Si bien la raíz griega holo significa todos, la holonomía hace
referencia a la manera como las propiedades geométricas de un sistema se mod-
ifican cuando se produce un desplazamiento en el espacio. La holonomía hace
D
referencia por lo tanto en las matemáticas a una transformación. Es el mismo caso
en la mecánica.
Cuando las variables cartesianas de un sistema dinámico están sometidas a re-
A
stricciones holonómicas, sabemos que es posible describir el estado o configuración
del sistema usando un conjunto reducido de variables, en lugar de usar todas las
coordenadas físicas del sistema.
Así por ejemplo, en el caso del péndulo simple, las dos restricciones
RR
holonómica impuesta por la cuerda, permiten describir el sistema usando una sola
variable, en lugar de las tres coordenadas cartesianas.
M = 3N − K
En el péndulo simple, N = 1 y K = 2 de donde obtenemos M = 3 × 1 − 2 = 1.
Ahora bien, ¿cuáles son las variables que pueden usarse en lugar de las coor-
denadas físicas del sistema para describir el estado del mismo?. En principio, el
número de M-variables que podrían usarse para específicar completamente el es-
tado del sistema no tiene límites. En el caso del péndulo simple podríamos usar la
coordenada x solamente, el ángulo θ, la longitud del arco l medido a lo largo del
movimiento, la altura h sobre el nivel del techo, etc. pero más interesante aún, la
216 Chapter 6. El formalismo lagrangiano
{q j } M
R
La holonomía de las restricciones permite que podamos escribir relaciones
matemáticas cerradas entre las coordenadas del sistema y las variables general-
O
izadas. Estas transformaciones pueden escribirse de forma general así:
Para hacer más evidente lo que estas transformaciones expresan usemos nueva-
mente el ejemplo trivial del pendulo simple. En este caso si tomamos como única
variable generalizada q1 el ángulo θ, las ecuaciones de transformación se escriben
como:
BO
y su inversa como:
3N. Las variables escogidas deben ser tales que sean independientes.
Esto significa que es posible realizar un cambio de una variable que
no implique necesariamente el cambio de una u otras variables gen-
eralizadas. Imaginen por ejemplo el caso del péndulo cónico (ver
figura abajo). En esta situación el número de grados de libertad es
de 2. ¿cuáles podrían ser las variables generalizadas?. Podría elegir
por ejemplo como variables generalizadas las coordenadas cartesianas
x, y (recordemos que y va en la dirección vertical). El problema es que
dadas las restricciones no es posible variar la coordenada x sin que se
produzca un cambio en la coordenada y. Es decir, este par de variables
no es el más apropiado para describir el sistema. Lo mismo podría de-
cir si elijo la coordenada y y la energía potencial U. Sin embargo si elijo
la coordenada z y el ángulo θ como variables generalizadas es posible
imaginarse un desplazamiento de θ sin que se modifique z y vicev-
R
ersa. O puedo escoger como variables generalizadas (la elección más
poderosa) dos ángulos, el ángulo θ y un ángulo horizontal φ y de nuevo
O
puedo imaginarme cambios de una variable que no impliquen nece-
sariamente cambios de la otra. Estas son las elecciones más poderosas
y por tanto las que usaremos en la solución a problemas con el formal-
ismo escalar.
D
A
RR
BO
R
!
n
∂~ri ∂~ri
δ~ri = ∑ δq + δt
j =1
∂q j j ∂t
O
Aquí se debe tener en cuenta que cuando se habla de desplazamientos virtuales
no existen cambios en el tiempo. Ese es precisamente el sentido de virtual y por lo
D
tanto la relación correcta es:
∂~r
δ~ri = ∑ ∂qij δq j
A
Velocidad coordenada y velocidad generalizada. Usando también la regla de
la cadena podemos escribir las relaciones entre las velocidades en la forma:
RR
∂~r ∂~r
~r˙ i = ∑ i q̇ j + i
∂q j ∂t
Arbitrariedad en el orden de las derivadas. Una propiedad útil muy im-
portante de las reglas de transformación es aquella que permite intercambiar las
BO
∂~r˙ i ∂~r
= i
∂q̇l ∂ql
6.4. Las ecuaciones de Lagrange 219
x (q) = L sin(q)
Usando la regla de la cadena:
ẋ = L cos(q)q̇
Aquí se ve exactamente lo que significa la regla de transformación de puntos.
Nótese que ∂ ẋ/∂q̇ es igual a ∂x/∂q, pero esta no es una propiedad extraña sino
más bien algo natural que resulta de la regla de la cadena.
R
6.4 Las ecuaciones de Lagrange
O
Una vez definidos apropiadamente los términos y cantidades básicas involucradas
en la descripción de los sistemas mecánicos en el contexto del formalismo la-
grangiano, podemos proceder a encontrar una expresión o una receta matemática
D
más simple para expresar el principio de d’Alambert-Lagrange, que si bien es su-
ficientemente general es muy artificioso.
Para empezar expresemos el principio de d’Alambert-Lagrange en términos
de las variables generalizadas en lugar de las coordenadas del sistema. Para ello
A
debemos apelar a las propiedades de las reglas de transformación que vimos al
final de la sección anterior.
La expresión matemática del principio se escribe en términos de las coorde-
RR
∂~r ∂~r
∑ ∑ ~Fi · ∂qij δq j − ∑ ∑ ~p˙ i · ∂qij δq j = 0 (6.25)
i j i j
( ! !)
∂~r d ∂~r d ∂~ri
∑ ∑ ~p˙ i · ∂qij δq j = ∑ ∑ dt
mi~r˙ i · i
∂q j
− mi~r˙ i ·
dt ∂q j
δq j (6.26)
i j j i
( " # )
∂~r d ∂ 1 ˙2 ∂ 1
∑ ∑ ~p˙ i · ∂qij δq j = ∑ dt ∂q̇ j ∑ m ~r
2 i i
−
∂q j ∑ 2 mi~r˙ i2 δq j (6.27)
i j j i i
Analicemos ahora el término que involucra las fuerzas aplicadas, que por sim-
plicidad en la notación escribiremos como Fia ≡ Fi . No hay mucho que hacer en
este término, excepto simplificar introduciendo una cantidad nueva:
∂~r
∑ ∑ ~Fi · ∂qij δq j = ∑ Q j δq j (6.29)
R
j i j
O
∂~r
Qj = ∑ ~Fi · ∂qij (6.30)
i
D
Si ponemos juntos el término de fuerzas y el término inercial el principio de
d’Alambert-Lagrange se puede escribir como:
A
" ! #
d ∂T ∂T
∑ Q j − dt ∂q̇ j + ∂q j δq j = 0
j
RR
En este punto es importante entender que las variables generalizadas son com-
plemetamente independientes. Esto significa que se puede variar una de ellas
mientras las demás se mantienen fijas. Esto implica que para que la igualdad ante-
rior sea valida en general (para cualquier conjunto de desplazamientos virtuales)
las M cantidades entre corchetes deben ser simultáneamente cero. Esto conduce al
conjunto de ecuaciones diferenciales:
BO
( ! )
d ∂T ∂T
− = Qj
dt ∂q̇ j ∂q j
M
R
Figure 6.5: En el péndulo elástico la cuerda (mostrada aquí como un resorte) tiene
una longitud que puede cambiar pero obedeciendo la ley de Hooke, es decir es
O
una cuerda elástica ideal
ables son independientes: se puede variar el ángulo del péndulo sin cambiar
la elongación e (no hay ninguna restricción que lo impida) y viceversa.
2) Reglas de transformación. Las reglas de transformación en este caso nos
permiten pasar del conjunto de variables generalizadas a las coordenadas
cartesianas del sistema:
BO
x ( q1 , q2 , t ) =
( L + q2 ) sin q1
−( L + q2 ) cos q1
y ( q1 , q2 , t ) =
z ( q1 , q2 , t ) = 0
Como vemos la restricciones y por lo tanto las reglas de transformación son
esclerónomas.
Una de las funciones básicas de las reglas de transformación es escribir las ve-
locidades coordenadas como función de las coordenadas generalizadas y las ve-
locidades generalizadas:
1 h i
T ((q1 , q2 , q̇1 , q̇2 , t) = m (1 + q2 )2 q̇21 + q̇22
2
Con esta función podemos obtener las derivadas que necesitaremos más ade-
lante:
∂T
= 0
∂q1
∂T
= m( L + q2 )q̇21
∂q2
∂T
= m( L + q2 )2 q̇1
∂q̇1
R
∂T
= mq̇2
∂q̇2
Y las derivadas de los últimos dos términos:
O
d ∂T
= 2m( L + q2 )q̇2 q̇1 + m( L + q2 )2 q̈1
dt ∂q̇1 D
d ∂T
= mq̈2
dt ∂q̇2
A
4) Fuerzas generalizadas. Finalmente necesitamos escribir las fuerzas gener-
alizadas asociadas a cada una de las variables generalizadas. Para ello es
necesario conocer la expresión de las fuerzas coordenadas como función de
RR
∂~r j
∂~r ∂x ∂y
Q1 = ∑ ~Fi · = ~F · = ~F · ,
i
∂q1 ∂q1 ∂q1 ∂q1
Q1 = −W ( L + q2 ) sin q1
De la misma manera puede calcularse la fuerza generalizada asociada con la
segunda variable generalizada para obtener:
Q2 = W cos q1 − kq2
Estas dos ecuaciones describen la dinámica del péndulo elástico. Para deducir-
las no necesitamos en ningún momento recurrir a la segunda ley de Newton y el
procedimiento realizado, si bien laborioso es analítico y reproducible sin recurrir a
ningún tipo de truco heurístico. Este es justamente el poder del nuevo formalismo.
Visualicemos la dinámica del sistema. Para ello necesitamos primero escribir el
sistema de ecuaciones diferenciales:
R
g=9.81
# Lee variables
q1=y[0]
O
q2=y[1]
q1p=y[2]
q2p=y[3] D
# Primeras derivadas
dq1dt=q1p
dq2dt=q2p
A
# Segundas derivadas
dq1pdt=(-g*np.sin(q1)-2*q1p*q2p)/(L+q2)
RR
dq2pdt=(L+q2)*q1p**2+g*np.cos(q1)-kom*q2
return [dq1dt,dq2dt,dq1pdt,dq2pdt]
#Condiciones iniciales
y=[20*GRADOS,0.1,0.0,0.0]
#Tiempo de integración
Nt=1000
ts=np.linspace(0,10,Nt)
Y resolver el sistema:
In [14]: solucion=odeint(eom_penduloelastico,y,ts,args=(L,kom))
q1s=solucion[:,0]
q2s=solucion[:,1]
In [15]: fig,axs=plt.subplots(2,1,sharex=True)
axs[0].plot(ts,q1s)
axs[0].set_ylabel("Ángulo")
axs[1].plot(ts,q2s)
axs[1].set_ylabel("Elongación")
R
O
D
A
RR
BO
In [16]: fig,ax=plt.subplots(1,1)
ax.plot(q1s,q2s)
ax.set_xlabel("Ángulo")
ax.set_ylabel("Elongación")
ax.set_title("Espacio de Configuración")
R
O
D
A
La mejor manera de ver la dinámica (o la que se ajusta más a nuestra intuición)
es la del espacio coordenado. Para ello tenemos que aplicar la transformación:
RR
x ( q1 , q2 , t ) = ( L + q2 ) sin q1
y(q1 , q2 , t) = −( L + q2 ) cos q1
BO
z ( q1 , q2 , t ) = 0
In [17]: fig,ax=plt.subplots(1,1)
xs=(L+q2s)*np.sin(q1s)
ys=-(L+q2s)*np.cos(q1s)
ax.plot(xs,ys)
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Espacio Coordenado")
R
O
D
A
RR
In [18]: L=1.0
fig=plt.figure(figsize=(6,6))
ax=fig.gca()
line,=ax.plot([],[],color='k',marker='o',markersize=15)
string,=ax.plot([],[],'b-')
tiempo=ax.text(0.05,0.9,'',transform=ax.transAxes)
xlim=ax.set_xlim((-0.9*L,0.9*L))
ylim=ax.set_ylim((-1.8*L,0.0))
def animacion(i):
x=xs[i]
y=ys[i]
line.set_data([x],[y])
string.set_data(xs[:i],ys[:i])
tiempo.set_text("t = %.2f s"%ts[i])
return line,string
anim=animation.FuncAnimation(fig,animacion,frames=Nt,interval=Nt/50,blit=True)
6.5. La función lagrangiana 227
R
O
D
A
RR
En la sección anterior vimos que la dinámica de un sistema físico puede ser de-
scrita en términos de un conjunto de variables generalizadasa {q j } M resolviendo
las ecuaciones de Lagrange:
( ! )
d ∂T ∂T
− = Qj
dt ∂q̇ j ∂q j
M
∂~r
Qj = ∑ ~Fi · ∂qij (6.31)
i
R
que sería muy extraño porque implicaría que en un determinado punto del espa-
cio de coordenadas la energía potencial dependería del estado de movimiento del
sistema).
O
Para fuerzas de este tipo, las fuerzas generalizadas en el formalismo La-
grangiano se pueden escribir en la forma:
∂~ri
Q j = − ∑ ∇i U ·
i
D ∂q j
Que por propiedades de la regla de la cadena puede probarse es equivalente a:
A
∂U
Qj = −
∂q j
RR
L({q j }, {q̇ j }, t) ≡ T − U
R
Lagrange son:
O
pueda encontrarse un conjunto de variables generalizadas independientes.
∂Ugen d ∂Ugen
Qj = − + (6.32)
∂q j dt ∂q̇ j
BO
∂
Qj = − U ({q j })
∂q j
Habíamos encontrado que las fuerzas generalizadas eran:
Q1 = −W ( L + q2 ) sin q1 (6.33)
Q2 = W cos q1 − kq2 (6.34)
Es fácil encontrar una única función U que permita escribir las Q j como
derivadas de esa función:
kq22
U (q1 , q2 ) = −W ( L + q2 ) cos q1 +
R
2
Se deja al lector verificar que esta función satisface la definición original de U.
Es interesante notar que si escribimos esta función de energía potencial, en tér-
O
minos de las coordenadas cartesianas originales, la función es muy familiar para
nosotros:
ke2
U ( x, y) = −mgy +
D
2
Esto es natural, en tanto la función U en el formalismo Lagrangiano no es dis-
A
tinta de la función U del formalismo vectorial, solo cambian las coordenadas en
las que se expresa. Esto se puede escribir de forma simple diciendo:
1 h i kq2
L= m (1 + q2 )2 q̇21 + q̇22 − W ( L + q2 ) cos q1 + 2
2 2
BO
Se deja al lector probar que las ecuaciones de movimiento para las variables
q1 y q2 obtenidas a partir de las ecuaciones de Euler-Lagrange asociadas a este
Lagrangiano, son las mismas que las que dedujimos usando las ecuaciones de La-
grange en la sección anterior.
R
plícita o implícita) del tiempo:
O
Lo que dice la ecuación de Euler-Lagrange para el sistema es que el valor de la
función f (t) es cero en todos los instantes del tiempo.
Pero este es un resultado curioso en tanto en cada instante del tiempo la posi-
D
ción q y velocidad q̇ del sistema cambian continuamente. Las ecuaciones de Euler-
Lagrange expresan entonces el hecho básico de que la función f es cero.
Ahora consideremos la situación en el diagrama representado en la Figura de
A
abajo:
RR
BO
Existen muchas maneras para ir del punto inicial i : (ti , qi ) hasta el punto final
f : (t f , q f ), pero solo una de ellas satisface las condiciones dinámicas del sistema
(implícitas en su Lagrangiano). La línea continua, descrita por la función q(t) en
la figura, representa la trayectoria real del sistema. La línea punteada, descrita por
q0 (t), representa una trayectoria arbitraria (no física) que une los mismos puntos
extremos. La función arbitraria η (t) cuantifica la diferencia que existe entre esta
trayectoria física y la trayectoria real.
Las trayectorias no físicas difieren de la física en todos los puntos intermedios,
pero son iguales los extremos, es decir η (t1 ) = η (t2 ) = 0.
El parámetro α sirve para identificar todas las trayectorias no físicas del sistema
que difieren de la real de acuerdo con la función η (t).
Pero ¿qué tiene todo esto que ver con los principios fundamentales de la
mecánica?
Para empezar consideremos la siguiente propiedad matemática:
R
Lema funamental del cálculo de variaciones. Si una función f ( x ) es
Rb
continúa en un intervalo [ a, b] y se cumple que a f ( x )h( x )dx para toda
O
función h( x ) tal que h( a) = h(b) = 0, entonces f ( x ) = 0 para todos los
x ∈ [ a, b]
D
El inverso de este lema es bastante obvio y podemos utilizarlo en el caso de
nuestro sistema dinámico para decir que si f (t) = 0 en el intervalo [t1 , t2 ] entonces
la siguiente integral es también cero:
A
Z t2
f (t)η (t)dt = 0
t1
Aquí la función η (t) es la que definimos en la Figura y que cuantifica la
RR
∂L ∂q0
Z t
2 d ∂L
− dt =0
dt ∂q˙0 ∂q0 ∂α
BO
t1 α =0
Esta última expresión viene del hecho que la función f (t) podría ser calculada
para cualquier otra trayectoria, pero solo en la trayectoria real α = 0 es cero en
todos los puntos.
Consideremos ahora la integral para un α arbitrario:
Teniendo en cuenta que ∂q0 /∂α = η (t) evaluada en los extremos es siempre
cero, la integral anterior se convierte en:
∂L ∂q̇0 ∂L ∂q0
Z t2 Z t2 Z t2
dL d
− + dt = − dt = − Ldt
t1 ∂q˙0 ∂α ∂q0 ∂α t1 dα dα t1
6.6. El principio de Hamilton 233
Es decir el lema fundamental del cálculo de variaciones sumado con las ecua-
ciones de Euler-Lagrange conducen al resulado:
Z t2
d
Ldt =0
dα t1 α =0
Este resultado es bastante curioso. Significa que si nosotros definimos una can-
Rt
tidad matemática S(α) = t 2 L(q0 (t, α), q̇0 (t, α), t)dt, entonces S tiene un valor esta-
1
cionario (no cambia, ni aumenta, ni disminuye instantáneamente) exactamente en
α = 0, lo que corresponde justamente a la trayectoria real del sistema dinámico.
Este resultado es de suma trascendencia en tanto se conecta con principios físi-
cos que habían sido enunciados en tiempos anteriores en contextos completamente
diferentes, creando una conexión inesperada entre áreas completamente disímiles
de la física y las matemáticas.
R
Podemos enunciar el resultado anterior en la forma de un principio fundamen-
tal (que reemplazaría el principio de D’Alambert-Lagrange):
O
Principio de Hamilton o Principio de Acción Estacionaria. El
movimiento de un sistema dinámico entre dos instantes de tiempo t1 y
Rt
t2 es tal que la integral de acción o acción, S ≡ t 2 Ldt tiene un valor
D 1
estacionario cuando el Lagrangiano se evalúa en la trayectoria real del
sistema.
A
Para ilustrar numéricamente el principio de Hamilton consideremos por ejem-
plo un sistema que conozcamos a profundidad, el péndulo simple por ejemplo.
El lagrangiano de este sistema se escribe en términos de la única variable del
RR
sistema, q = θ como:
1 2 2
L= ml q̇ − mgl cos q
2
Las ecuaciones de Euler-Lagrange para el sistema producen:
BO
q̈ + ω 2 sin q = 0
Donde ω 2 = g/l.
Si aproximamos el movimiento a pequeñas amplitudes q 1, sin q ≈ q, El La-
grangiano y la solución, para condiciones iniciales q(0) = θ0 , q̇(0) = 0, se escriben:
mL2 2
L≈ (q̇ − ω 2 q2 )
2
#Función perturbadora
def h(t):
nt=np.sin(2*w*t)
return nt
def hp(t):
npt=2*w*np.cos(2*w*t)
return npt
R
#Trayectoria real
def q(t):
O
return q0*np.cos(w*t)
def qp(t):
return -q0*w*np.sin(w*t)
D
#Lagrangiano en la trayectoria perturbada
def L(t,alfa):
A
qprima=q(t)+alfa*h(t)
qprimap=qp(t)+alfa*hp(t)
L=0.5*m*l**2*qprimap**2-m*g*l*qprima**2/2
return L
RR
In [22]: fig=plt.figure()
ax=fig.gca()
t1=0
t2=np.pi/2
ts=np.linspace(t1,t2,100)
ax.plot(ts,q(ts),'k-',lw=5,label='Real')
alpha=0.5
ax.plot(ts,q(ts)+alpha*h(ts),'b--',label=r'No física, $\alpha$=%.2f'%alpha)
alpha=0.2
ax.plot(ts,q(ts)+alpha*h(ts),'r--',label=r'No física, $\alpha$=%.2f'%alpha)
ax.legend()
ax.grid()
6.6. El principio de Hamilton 235
R
O
D
La acción se puede calcular numéricamente con la integral del Lagrangiano así:
A
In [23]: #Puntos extremos
t1=0
t2=2*np.pi/w
RR
alfa=0.1
#Accion
S,error=integral(L,t1,t2,args=(alfa,))
In [24]: alfas=np.linspace(-1,1,100)
Ies=[]
for alfa in alfas:
I,error=integral(L,t1,t2,args=(alfa,))
Ies+=[I]
fig=plt.figure()
ax=fig.gca()
plt.plot(alfas,Ies)
R
O
D
Como puede verse la acción es mínima cuando α = 0 lo que confirma el prin-
cipio de Hamilton.
A
RR
BO
Chapter 7
Aplicaciones del
formalismo lagrangiano
R
O
7.1 Simetrías y leyes de conservación
Uno de los aspectos mejor conocidos del formalismo escalar de la mecánica, es
D
su capacidad implícita para revelar propiedades de los sistemas dinámicos muy
difíciles de revelar con el formalismo vectorial. Este es el caso por ejemplo, de
las denominadas cantidades conservadas (constantes de movimiento, primeras
integrales o cuadraturas) que tanta utilidad tienen en la descripción de sistemas
A
dinámicos como vimos en los capítulos anteriores.
El poder de las simetrías para revelar aspectos profundos de los sistemas físicos
o simplemente para entender su comportamiento, es uno de los descubrimientos
RR
237
238 Chapter 7. Aplicaciones del formalismo lagrangiano
transformación.
R
La simetría a la que hace referencia el teorema de Noether, no es una simetría
geométrica de los cuerpos implicados en el sistema dinámico. Es en realidad una
simetría matemática, es decir una transformación de las coordenadas que mantiene
O
la forma matemática de alguna función física relevante (la acción o el lagrangiano).
En física, decimos también que la función correspondiente es covariante bajo la
transformación indicada. D
Consideren por ejemplo el Lagrangiano de un oscilador armónico en 2 dimen-
siones (una masa unida a un resorte que puede además moverse en cualquier di-
rección):
A
1 1
m( ẋ2 + ẏ2 ) − k ( x2 + y2 )
L( x, y, ẋ, ẏ, t) =
2 2
Hay dos posibles transformaciones que hacen que la forma funcional del La-
RR
1 1
L( x 0 , y0 , ẋ 0 , ẏ0 , t0 ) = m[ ẋ 02 + ẏ02 + e2 ( ẋ 02 + ẏ02 )] − k[ x 02 + y02 + e2 ( x 02 + y02 )]
2 2
Si suponemos que e es muy pequeño, a primer orden en e el Lagrangiano
queda:
1 1
L( x 0 , y0 , ẋ 0 , ẏ0 , t0 ) =
m( ẋ 02 + ẏ02 ) − k( x 02 + y02 )
2 2
Que es funcionalmente idéntico (covariante) al Lagrangiano original. Como
la dinámica depende de la forma funcional del Lagrangiano, esta simetría impli-
cará que la dinámica del sistema es la misma descrita con respecto a las variables
x 0 , y0 , t0 que con respecto a las variables originales.
¿Cuál es la cantidad conservada aquí?
7.1. Simetrías y leyes de conservación 239
R
formación se puede expresar matemáticamente en términos del parámetro e de la
transformación así:
O
d
L({q0j (e)}, {q̇0j (e)}, t) = 0
de
Usando la regla de la cadena queda:
∂L ∂q j
0
D
∂L ∂q̇ j
0
!
∑ ∂q0j ∂e
+
∂q̇0j ∂e
=0
A
j
∂L
P({q j }, {q̇ j }) ≡ ∑ ∂q̇ j K j
j
∂L
=0
∂t
¿Qué cantidad física es conservada en este caso?. Una manera de obtener
la cantidad conservada en esta situación, es calculando la derivada total del La-
grangiano respecto al tiempo:
dL ∂L ∂L ∂L
∑ ∂q j q̇ j + ∑ ∂q̇ j q̈ j +
R
=
dt j j
∂t
O
Si despejamos la derivada parcial del lagrangiano respecto al tiempo (que es
la que nos indica si el Lagrangiano es simétrico o no respecto a una traslación
temporal) y nos valemos de las ecuaciones de Euler-Lagrange para modificar el
primer término del lado izquierdo de la ecuación anterior, obtenemos:
∂L d
D ∂L dL
=
dt ∑ ∂q̇ j q̇ j − dt
A
∂t j
∂L
h({q j }, {q̇ j }) ≡ ∑ ∂q̇ j q̇ j − L
j
∂T
h({q j }, {q̇ j }) ≡ ∑ q̇ j ∂q̇ j − T + U
j
Ahora bien, la función de energía cinética T ({q j }, {q̇ j }, t) = ∑i mi~r˙ i ({q j }, t)2 /2
se puede escribir, usando la regla de la cadena, en términos de las variables y
velocidades generalizadas como:
7.1. Simetrías y leyes de conservación 241
!2
1 ∂~ri ∂~r
T = ∑ mi ∑ q̇ + i (7.1)
i
2 j
∂q j j ∂t
" 2 #
1 ∂~ri ∂~ri ∂~r ∂~r ∂~ri
= ∑ mi ∑∑ · q̇ j q̇k + 2 ∑ i q̇ j · i + (7.2)
i
2 j k
∂q j ∂qk j
∂q j ∂t ∂t
1 ∂~r ∂~r
2∑ ∑ ∑ mi ∂qij · ∂qki q̇ j q̇k
T=
R
i j k
Es decir bajo esta condición la energía cinética será una función cuadrática de
las velocidades generalizadas. Esta propiedad nos permite aprovechar el teorema
O
de Euler para funciones homogéneas, que dice que si f ({ xi }) es un función de grado
k en { xi }, es decir, si f ({λxi }) = λk f ({ xi }), entonces:
∑ xi f ( xi ) = k f ( xi )
D
Usando esta propiedad en el caso de la función de energía cinética T, que bajo
las condiciones establecidas antes es una función de grado 2, obtenemos:
A
∂T
∑ q̇ j ∂q̇ j = 2T
j
RR
h({q j }, {q̇ j }) = T + U
Que tiene la forma de lo que conocemos en la mecánica Newtonicana como la
Energía Mecánica.
BO
R
Para aterrizar algunos de los conceptos mencionados hasta aquí, consideremos al-
gunos ejemplos generales y otros específicos que nos permitirán ilustrar el poder
que el teorema de Noether tiene en el contexto del formalismo escalar de la
O
mecánica
### Variables cíclicas y conservación de los momentos generalizados
Un caso muy particular de simetría del Lagrangiano se produce cuando este
D
último es covariante frente a un cambio arbitrario de un una de las variables gen-
eralizadas. Simbólicamente, q0k = qk + e.
En este caso Kk = 1 y de acuerdo al teorema de Noether la cantidad conservada
será:
A
∂L
pk ≡
∂q̇k
RR
∂L
=0
BO
∂qk
Es decir, la simetría mencionada inicialmente es equivalente a decir que el La-
grangiano no depende explícitamente de la coordenada qk . En otras palabras la
coordenada qk , sencillamente, no aparece en la expresión matemática de L. Lla-
mamos a este tipo de coordenadas, coordenadas cíclicas y la simetría correspon-
diente es una de las más fáciles de identificar en física.
Dos ejemplos concretos nos permiten ilustrar esta simetría.
El lagrangiano de un cuerpo que cae libremente en un campo gravitacional esta
dado por:
1
L= m( ẋ2 + ẏ2 + ż2 ) − mgz
2
En este caso las variables x, y son variables ciclicas y podemos concluir que sus
momentums generalizados, p x = ∂L/∂ ẋ = m ẋ y py = ∂L/∂ẏ = mẏ son constantes.
Este resultado, el hecho de que en un campo gravitacional la velocidad del
cuerpo en dirección perpendicular al campo se mantiene constante, había sido in-
tuido originalmente por Galileo y ahora podemos decir que es producto de una
7.2. Aplicaciones de las simetrías del Lagrangiano 243
R
tinguirlos en dos tipos generales de simetrías.
O
lineal
Entendemos por simetría traslacional a aquella que se produce cuando el La-
D
grangiano es invariante bajo una traslación en el espacio coordenado. En esta
situación suponemos que las variables generalizadas son las coordenadas carte-
sianas y la transformación la escribimos como:
A
~r 0 = ~r + k̂δr
Donde el vector k̂ es el vector unitario en la dirección del desplazamiento y
RR
en este caso el papel del parámetro e es jugado por la cantidad δr. El momento
conservado, de acuerdo al teorema de Neother en este caso será:
∂L
P= ∑ ∂q̇ j K j = ∑ p j K j
j j
BO
pk = ~p · k̂
Este resultado lo podemos enunciar de forma general diciendo:
Conservación del momentum lineal. Si el Lagrangiano de un sistema
dinámico es covariante bajo una traslación de coordenadas en la direc-
ción k̂, la componente del momentum lineal pk = ~p · k̂ en esa dirección
se conserva.
~r 0 = ~r + δθ (n̂ ×~r )
R
O
D
A
RR
P = ~p · (~n ×~r )
BO
Ln = (~r × ~p) · n̂
Que no es otra cosa que la componente del momentum angular ~L. De forma
general:
¿Es posible identificar alguna simetría, es decir encontrar alguna cantidad con-
servada?. En general en este tipo de Lagrangianos una traslación del tipo
x0 = x + ek x
0
y = y + ek y
R
Con k x , k y constantes es suficiente. Si reemplazamos en el Lagrangiano obten-
emos:
O
L = ( a ẋ 02 + b ẋ 0 ẏ0 + cẏ02 ) − [ex 0 + f y0 + e(ek x + f k y )]
D
A
La covarianza se produce si se cumple que ek x = − f k y . En este caso el mo-
mento conservado será:
RR
∂L ∂L
P= kx + ky
∂ ẋ ∂ẏ
= k x (2a ẋ + bẏ) + k y (b ẋ + 2cẏ)
1
= k x [(2a f − eb) ẋ + (b f − 2ec)ẏ]
BO
1
P= [(2a f − eb) ẋ + (b f − 2ec)ẏ]
f
R
Figure 7.3: Sistemas de cuerpos acoplados por poleas que tienen una simetría en
O
el Lagrangiano no tirvial.
−2x − y.
Las ecuaciones de transformación serán entonces:
y1 = x
y2 = y
BO
y3 = −2x − y
ẏ1 = ẋ
ẏ2 = ẏ
ẏ3 = −2ẋ − ẏ
Y el Lagrangiano será:
1
L= [m ẋ2 + m2 ẏ2 + m3 (−2ẋ − ẏ)2 ] − g[m1 x + m2 y + m3 (−2x − y)]
2 1
1
L= [(m1 + 4m3 ) ẋ2 + 4m3 ẋ ẏ + (m2 + m3 )ẏ2 ] − g[(m1 − 2m3 ) x + (m2 − m3 )y]
2
R
Y los coeficientes serán:
a= 13m/2
O
b= 4m
c= 3m
e= mg
f =
D 2mg
El momento conservado queda:
A
1
P= [(2a f − eb) ẋ + (b f − 2ec)ẏ]
f
RR
P = m(11ẋ + ẏ)
Las ecuaciones de movimiento del sistema (después de reemplazar la función
Lagrangiana en las ecuaciones de Euler-Lagrange) son:
4m ẍ + 6mÿ = −2mg
Si usamos el momento conservado podemos eliminar ÿ = −11ẍ de la primera
ecuación para escribir la ecuación de movimiento de la primera partícula:
1
ẍ = g
41
Que tiene como solución:
1 2
x = xo + ẋo t + gt
41
Y la ecuación de movimiento de la segunda partícula será:
11
ÿ = − g
41
Que tiene como solución
248 Chapter 7. Aplicaciones del formalismo lagrangiano
11 2
y = yo + ẏo t −
gt
41
Una animación del movimiento de este sistema se puede construir así. Las
condiciones iniciales son:
In [3]: #Condiciones iniciales
m=1
g=9.81
xo=2
xpo=0
yo=0
ypo=0
R
R=0.5
l1=4
l2=4
O
#Posición de la polea
R=0.5
xpol1=0
xpol2=xpol1+R
D
ypol1o=-2.0
A
ypol2o=ypol1o-l2/2
#Muro superior
ax.axhspan(0,1,color='k',alpha=0.2)
#Polea 1
polea1=pat.Circle((xpol1,ypol1o),R,color='w',ec='k',lw=1)
polea1=ax.add_patch(polea1)
polea2=pat.Circle((xpol2,ypol2o),R,color='w',ec='k',lw=1)
polea2=ax.add_patch(polea2)
cuerda_polea1,=ax.plot([xpol1,xpol1],[0,ypol1o],'k-')
cuerda_polea2,=ax.plot([xpol2,xpol2],[ypol1o,ypol2o],'k-')
#Referencia
ax.axhline(yini,color='k',ls='--')
#Cuerpo 1
cuerpo1,=ax.plot([xpol1-R],[yini+xo],'ko',ms=10)
cuerda1,=ax.plot([xpol1-R,xpol1-R],[ypol1o,yini+xo],'k-')
7.2. Aplicaciones de las simetrías del Lagrangiano 249
#Cuerpo 2
cuerpo2,=ax.plot([xpol2-R],[yini+yo],'ko',ms=10)
cuerda2,=ax.plot([xpol2-R,xpol2-R],[ypol2o,yini+yo],'k-')
#Cuerpo 3
cuerpo3,=ax.plot([xpol2+R],[yini],'ko',ms=10)
cuerda3,=ax.plot([xpol2+R,xpol2+R],[ypol2o,yini],'k-')
ax.set_xlim((-6,6))
ax.set_ylim((-10,2))
Out[4]: (-10, 2)
R
O
D
A
RR
BO
In [5]: fig=plt.figure(figsize=(6,6))
ax=fig.gca()
#Muro superior
ax.axhspan(0,1,color='k',alpha=0.2)
250 Chapter 7. Aplicaciones del formalismo lagrangiano
#Polea 1
polea1=pat.Circle((xpol1,ypol1o),R,color='w',ec='k',lw=1)
polea1=ax.add_patch(polea1)
polea2=pat.Circle((xpol2,ypol2o),R,color='w',ec='k',lw=1)
polea2=ax.add_patch(polea2)
cuerda_polea1,=ax.plot([xpol1,xpol1],[0,ypol1o],'k-')
cuerda_polea2,=ax.plot([xpol2,xpol2],[ypol1o,ypol2o],'k-')
#Referencia
ax.axhline(yini,color='k',ls='--')
#Cuerpo 1
cuerpo1,=ax.plot([xpol1-R],[yini+xo],'ko',ms=10)
R
cuerda1,=ax.plot([xpol1-R,xpol1-R],[ypol1o,yini+xo],'k-')
#Cuerpo 2
O
cuerpo2,=ax.plot([xpol2-R],[yini+yo],'ko',ms=10)
cuerda2,=ax.plot([xpol2-R,xpol2-R],[ypol2o,yini+yo],'k-')
#Cuerpo 3
D
cuerpo3,=ax.plot([xpol2+R],[yini],'ko',ms=10)
cuerda3,=ax.plot([xpol2+R,xpol2+R],[ypol2o,yini],'k-')
A
ax.set_xlim((-6,6))
ax.set_ylim((-10,2))
Nt=100
RR
ts=np.linspace(0,0.5+0.5,Nt)
def animacion(i):
t=ts[i]
x=xo+xpo*t+g/41.*t**2
y=yo+ypo*t-11*g/41.*t**2
BO
#Cuerpos
y1=yini+x
cuerpo1.set_data([xpol1-R],[y1])
y2=yini+yo+y
cuerpo2.set_data([xpol2-R],[y2])
y3=yini+2*xo+yo-2*x-y
cuerpo3.set_data([xpol2+R],[y3])
#Poleas
yp2=ypol2o+xo-x
polea2.center=(xpol2,yp2)
#Cuerdas
cuerda1.set_data([xpol1-R,xpol1-R],[ypol1o,y1])
cuerda2.set_data([xpol2-R,xpol2-R],[yp2,y2])
7.3. El Problema de los N cuerpos 251
cuerda3.set_data([xpol2+R,xpol2+R],[yp2,y3])
cuerda_polea2.set_data([xpol2,xpol2],[ypol1o,yp2])
return cuerda_polea2,cuerpo1,cuerda1,cuerpo2,cuerda2
animacion(0)
anim=animation.FuncAnimation(fig,animacion,frames=Nt,interval=Nt/30,blit=True)
R
O
D
A
RR
BO
∂L
piα = = mi ẋiα
∂ ẋiα
R
7.3.3 Simetría temporal
El lagrangiano no depende explícitamente del tiempo por lo que sabemos que la
O
función de Jacobi del sistema es constante. Adicionalmente dado que el poten-
cial solo depende de las coordenadas, la constante de Jacobi coincidirá con la en-
ergía mecánica, h = T + U, de donde encontramos nuestra primera constante de
D
movimiento:
1
E= ∑ 2 mi ẋiα2 + U ({xiα })
A
iα
Dado que la energía potencial solo depende de la distancia entre las partículas,
i.e. U ({ xiα } = U ({| xiα − x jα |}), entonces el Lagrangiano es simétrico frente a
traslaciones, ~ri → ~ri + δ~r y por lo tanto todas las componentes del momentum
lineal total se conservan. Esta es nuestra segunda constante de movimiento:
BO
~P = ∑ mi~r˙ i
i
∑i mi~ri
rCM ≡
M
Donde M = ∑i mi , podemos escribir la conservación del momentum como:
~P = M~r˙ CM
Como ~
P es constante, podemos integrar esta ecuación para obtener:
∑i mi~ri ~P
= ~rCM,0 + t
M M
Esta expresión puede ser considerada en sí misma una “cuadratura”.
7.3. El Problema de los N cuerpos 253
~L = ∑ mi~ri ×~r˙ i
i
Como vemos, lo que en el formalismo vectorial requirio de algunas truculen-
cias matemáticas, en el formalismo Lagrangiano es completamente elemental: la
identificación de las simetrías conduce de forma directa a la identificación de las
integrales de movimiento.
R
7.3.6 Problema de N cuerpos jerárquico
Dependiendo de la intensidad de las interacciones entre las partículas, un prob-
O
lema típico de N-cuerpos puede considerarse como un sistema anidado de prob-
lemas de dos cuerpos. A estos sistemas los llamamos problemas jerarquicos de dos
cuerpos. D
El Lagrangiano en términos de las coordenadas cartesianas del problema de los
dos cuerpos es:
A
1 1 Gm1 m1
L2B = m1 ( ẋ12 + ẏ21 + ż21 ) + m1 ( ẋ22 + ẏ22 + ż22 ) + p
2 2 ( x1 − x2 )2 + ( y1 − y2 )2 + ( z1 − z2 )2
El Lagrangiano escrito en términos de las coordenadas cartesianas tiene una
RR
tro de masa.
En este caso habíamos visto que:
m2
~r1 = ~rCM −
~r
M
m
~r2 = ~rCM + 2~r
M
Donde ~r = ~r2 −~r1 es el vector relativo.
Con esta transformación las velocidades quedan:
m
~r˙ 1 = ~r˙ CM − 2~r˙
M
m
~r˙ 2 = ~r˙ CM + 2~r˙
M
La energía cinética se puede escribir ahora como:
1 ˙2 1 ˙2 1 1 m1 m2 ˙
T= m1~r1 + m2~r2 = M~r˙ CM + ~r
2 2 2 2 M
254 Chapter 7. Aplicaciones del formalismo lagrangiano
1 ˙2 1 GMmr
L2B = M~rCM + mr~r˙ 2 +
2 2 r
El cambio realizado hasta ahora implico simplemente pasar del conjunto de
variables originales ( x1 , y1 , z1 , x2 , y2 , z2 ) a un nuevo conjunto de variables general-
izadas que pueden describir también el estado del sistema ( x, y, z, xCM , yCM , zCM ).
En este nuevo conjunto de variables generalizadas, descubrimos una simetría
que no existía en la forma original del Lagrangiano: las variables xCM , yCM , zCM
son cíclicas (no aparecen explícitamente en el Lagrangiano). Esto implica que sus
momentos generalizados, ∂L/∂ ẋCM = M ẋCM , ∂L/∂ẏCM = MẏCM , ∂L/∂żCM =
M żCM son constantes de movimiento.
Esto por supuesto no es nuevo. Las nuevas constantes no son otra cosa que
el momentum del centro de masa (o momentum total) que habíamos demostrado
R
constante por la invarianza translacional del Lagrangiano.
Con esto aprendemos una lección nueva, muy interesante: una simetría en un
O
conjunto de variables (pe. simetría traslacional) puede ser otra simetría en un con-
junto de variables distintas (pe. simetría de variables cíclicas).
P2 1 GMmr
L2B = + mr~r˙ 2 +
2M 2 r
Ahora bien, si tenemos en cuenta el siguiente teorema:
d
L0 = L +F ({q j }, t)
dt
En particular agregar o quitar una cantidad constante al Lagrangiano deja co-
variante la dinámica. De allí que el Lagrangiano del problema de los dos cuerpos
pueda escribirse de forma general como
1 ˙ 2 GMmr
L2B = mr~r +
2 r
El procedimiento de Routh, muestra que el número de grados de libertad de un
sistema es realmente menos cuando existen simetrías. En este caso, el problema de
los dos cuerpos, que originalmente tenía 6 grados de libertad (no existe ninguna
restricción geométrica), tiene en realidad solo 3 grados de libertad.
7.4. El Problema general de los dos cuerpos 255
De nuevo este Lagrangiano no parece tener más simetrías de las que hemos
identificado hasta aquí, al menos usando coordenadas cartesianas. Sin emabargo si
hacemos una nueva transformación de coordenadas y en lugar de las coordenadas
( x, y, z) usamos las coordenadas cartesianas (r, φ, θ ) (recordemos que en mecánica
celeste, φ es el ángulo respecto al plano x-y y θ es el ángulo acimutal sobre ese
plano), el Lagrangiano adpota la forma:
1 GMmr
L2B = mr (ṙ2 + r2 cos2 φθ̇ 2 + r2 φ̇2 ) +
2 r
En este Lagrangiano identificamos una nueva simetría: la coordenada angular
θ es cíclica y tiene como cantidad conservada el momentum generalizado:
∂L
pθ = = mr r2 cos2 φθ̇ ≡ Lr
R
∂θ̇
Por la conservación del momentum angular total que conocemos del problema
original, sabemos que las partículas en este sistema se mueven sobre un plano (el
O
plano invariante de Laplace) de modo que tenemos libertad para escoger el sistema
de coordenadas esférico referido a ese plano. En este caso φ = 0 y es constante con
lo que el Lagrangiano (referido al plano invariante de Laplace es):
D
1 GMmr
L2B = mr (ṙ2 + r2 θ̇ 2 ) +
2 r
A
y La constante de movimimiento Lr es:
Lr = mr r2 θ̇
RR
L2
1 GMmr
BO
L2B,eq = mr ṙ2 + 2r 2 +
2 mr r r
Lr
θ̇ =
mr r 2
1 Mmr
L2B = mr (ṙ2 + r2 θ̇ 2 ) +
2 r
Sin perdida de generalidad el Lagrangiano se puede escribir como:
1
L2B = mr (ṙ2 + r2 θ̇ 2 ) − U (r )
2
Donde U (r ) = − GMmr /r
Este Lagrangiano tiene una constante de movimiento (el momentum angular
reducido):
Lr = mr r2 θ̇
y la dinámica de la coordenada r puede obtenerse también usando el La-
R
grangiano (reducido):
L2r
1 2
L2B,eq = mr ṙ + 2 2 − U (r )
O
2 mr r
¿Cuál es la solución a este problema? ¿cuáles son las ecuaciones que rigen la
variable radial r y la variable angular θ?. En el capítulo 3 del formalismo vectorial
D
vimos cómo resolver este problema usando métodos vectoriales. Aquí veremos
como, usando exclusivamente ecuaciones escalares, el problema puede resolverse
de la misma manera, encontrando en el camino otros resultados interesantes.
A
El aspecto más interesante de la solución que encontraremos aquí, es que puede
aplicarse para describir el movimiento de sistemas sometidos a fuerzas centrales,
F (r ) = −∂U/∂r arbitrarias, no solo de fuerzas gravitacionales.
RR
∂L2B,eq 1 1 L2r
h= ṙ − L = mr ṙ2 + + U (r )
∂ṙ 2 2 mr r 2
1 1 L2r
Er = mr ṙ2 + + U (r )
2 2 mr r 2
Si dividimos toda la ecuación por mr obtenemos la energía específica:
1 2 1 h2
e= ṙ + + V (r )
2 2 r2
Donde h = Lr /mr es el momentum angular específico y V (r ) = U (r )/mr es el
potencial.
Despejando ṙ2 en función de las constantes e y h obtenemos:
1 h2
1 2
ṙ = e − V (r ) +
2 2 r2
= e − Veff (r )
7.4. El Problema general de los dos cuerpos 257
R
In [8]: def Vgrav(r,mu=1,n=1):
V=-mu/r**n
O
return V
Ahora podemos definir las rutinas que nos dan el potencial centrífugo y el po-
D
tencial efectivo:
def Veff(r,h,V,**pars):
Veffval=V(r,**pars)+Vcen(r,h,**pars)
RR
return Veffval
Nótese que el potencial efectivo depende, no solo de los parámetros del poten-
cial, sino también del momentum angular. Es decir para cada momentum angular
hay un potencial efectivo espefício.
BO
Usando la figura interactiva abajo puede visualizar el efecto que tiene el mo-
mentum angular específico h sobre la forma del potencial efectivo
rmax=5
rs=np.linspace(1e-3,rmax,1000)
Vs=Vgrav(rs,mu=mu,n=n)
Vcens=Vcen(rs,h)
Veffs=Veff(rs,h,Vgrav,mu=mu,n=n)
ax.plot(rs,Vs,'g--',label='Potencial')
ax.plot(rs,Vcens,'b--',label='Potencial Centrífugo')
ax.plot(rs,Veffs)
258 Chapter 7. Aplicaciones del formalismo lagrangiano
ax.set_xlim((0,rmax))
ax.set_ylim((-3.5*np.abs(Veffs.min()),+2.5*np.abs(Veffs.min())))
ax.set_xlabel(r"$r$")
ax.set_ylabel(r"$V(r)$")
ax.set_title(r"$h$=%g, n=%g"%(h,n))
ax.legend()
ax.grid()
i=interact(PotencialEfectivo,mu=fixed(1),l=(0.2,2.0),n=(-1.0,2.0))
R
O
D
A
RR
BO
Pero ¿cuáles son las regiones de exclusión? ¿qué significado tiene la distancia
ρ?
Supongamos ahora que la partícula, además de tener un momento angular es-
pecífico h tiene una energía específica e (ambas cantidades vienen determinadas
por la posición y velocidad inicial de la partícula).
7.4. El Problema general de los dos cuerpos 259
e − Veff (r ) = 0
Que sería el equivalente aquí a las superficies de cero velocidad que definimos
en el problema de los 3 cuerpos.
En la figura abajo podemos reconocer varias situaciones, que son válidas al
R
menos si n < 2:
O
D
A
RR
BO
más cerca de un valor mínimo o más lejos de un valor máximo. Esta condi-
ción se asemeja al caso de una órbita elíptica.
3. Si e = Veff,0 , donde Veff,0 es el mínimo del potencial, la partícula solo puede
estar a una distancia fija r = ρ del centro. Esta condición equivale a decir que
la partícula sigue una trayectoria circular de radio ρ.
Aquí descubrimos que independientemente de la forma del potencial siempre
y cuando 0 < n < 2 siempre será posible encontrar una condición para la cuál la
partícula se mueve en una trayectoria circular. Este es un resultado muy general
que revela el poder del formalismo escalar en la descripción de problemas dinámi-
cos muy generales.
R
Si ahora queremos encontrar de forma explícita la ecuación de movimiento del
sistema, debemos resolver las ecuaciones de movimiento. De un lado tenemos la
O
ecuación de movimiento angular, dada por la constancia del momentum angular
específico:
θ̇ = h/r2
D
y la ecuación para la variable radial que se obtiene de la ecuación de Euler-
Lagrange aplicada al Lagrangiano L2B,eq :
A
r̈ − r θ̇ 2 − f (r ) = 0
Donde f (r ) = −∂V/∂r es la fuerza específica.
RR
r̈ = f (r ) + r θ̇ 2
θ̇ = h/r2
Que se convierten en primer orden en:
ṙ = vr
v̇r = f (r ) + h /r3
2
θ̇ = h/r2
Asumiendo que el poencial es del tipo V (r ) = −µ/r n , la fuerza queda:
nµ
f (r ) = −
r n +1
Para ello lo primero que debemos hacer es escribir la ecuación de movimiento
del sistema:
7.4. El Problema general de los dos cuerpos 261
def EoM_2B(y,t,F,h,params):
r=y[0]
vr=y[1]
q=y[2]
drdt=vr
dvrdt=F(r,**params)+h**2/r**3
dqdt=h/r**2
return [drdt,dvrdt,dqdt]
R
Definimos las condiciones iniciales del sistema:
O
mu=1
#Condiciones iniciales
D
r=1.0
A
q=0.0
rdot=0.0
qdot=1.2
RR
#Energía específica
eps=0.5*rdot**2+Vgrav(r,mu=mu,n=n)+Vcen(r,h)
BO
#Tiempos de integración
Nt=1000
ts=np.linspace(0.0,50.0,Nt)
Integramos:
In [13]: solucion=odeint(EoM_2B,[r,rdot,q],ts,args=(Fcen,h,dict(mu=mu,n=n)))
rs=solucion[:,0]
qs=solucion[:,2]
In [14]: fig=plt.figure(figsize=(4,4))
ax=fig.gca()
line,=ax.plot([],[])
def animacion(i,delta=Nt):
ini=i-delta
262 Chapter 7. Aplicaciones del formalismo lagrangiano
if ini<0:ini=0
line.set_data(rs[ini:i]*np.cos(qs[ini:i]),rs[ini:i]*np.sin(qs[ini:i]))
return line,
ax.set_xlabel("x")
ax.set_ylabel("y")
xlims=ax.set_xlim((-1.2*rs.max(),1.2*rs.max()))
ylims=ax.set_ylim((-1.2*rs.max(),1.2*rs.max()))
ax.grid()
animacion(Nt,delta=Nt)
a=animation.FuncAnimation(fig,animacion,frames=Nt,interval=Nt/300,blit=True)
R
O
D
A
RR
BO
En el espacio de configuración:
In [15]: fig=plt.figure(figsize=(4,4))
ax=fig.gca()
ax.plot(rs,np.mod(qs,2*np.pi),'b.',ms=1)
ax.set_xlabel(r"$r$")
ax.set_ylabel(r"$\theta$")
R
O
D
A
RR
In [16]: fig,axs=plt.subplots(2,1)
axs[0].plot(ts,rs)
axs[1].plot(ts,np.mod(qs,2*np.pi))
axs[0].set_ylabel('r')
axs[1].set_ylabel(r'$\theta$')
R
O
D
A
Grafiquemos el potencial efectivo:
RR
BO
In [17]: fig=plt.figure()
ax=fig.gca()
rmax=3*rs.max()
res=np.linspace(1e-3,rmax,1000)
Vs=Vgrav(res,mu=mu,n=n)
Veffs=Veff(res,h,Vgrav,mu=mu,n=n)
ax.plot(res,Veffs)
ax.axhline(eps,color='g')
ax.plot(rs,eps*np.ones_like(rs),'ro',ms=2)
ax.set_xlim((0,rmax))
ax.set_ylim((-1.1*np.abs(Veffs.min()),1.5*np.abs(Veffs.min())))
ax.set_title(r"$h$=%g, n=%g"%(h,n))
ax.grid()
7.4. El Problema general de los dos cuerpos 265
R
O
D
A
7.4.4 Ecuación de la forma orbital
Una solución clásica a este problema se obtiene con un cambio de la variable de-
pendiente:
RR
1
u=
r
y escribiendo las ecuaciones en términos no del tiempo sino de la variable an-
gular. En este caso el operador derivada temporal se convierte en:
BO
d dθ d h d
= = 2
dt dt dθ r dθ
De allí la velocidad generalizada es:
h dr
ṙ =
r2 dθ
du
= −h
dθ
Y la aceleración
d du d2 u
r̈ = −h = − h2 u2 2
dt dθ dθ
Reemplazando en la ecuación para la coordenada radial queda:
d2 u
1 1
+u = − 2 2 f
dθ 2 h u u
266 Chapter 7. Aplicaciones del formalismo lagrangiano
d2 u µ
+u = 2
dθ 2 h
Una solución general para esta ecuación tiene la forma:
u = c(1 + e cos θ )
Donde c y e son constantes que deben determinarse.
R
Al reemplazar en la ecuación diferencial obtenemos c = µ/h2 de modo que la
solución general a la ecuación resulta ser:
O
h2 /µ
r=
1 + e cos θ
D
que es justamente la ecuación de una cónica, con p = h2 /µ, tal y como lo
habíamos predicho con el formalismo vectorial.
¿Qué es el parámetro e en este caso?
A
Podemos reemplazar la solución anterior en la ecuación de la energía, para lo
cual necesitamos primero demostrar, usando el momentum angular específico:
µ
RR
ṙ = − e sin θ
h
Reemplazando en la conservación de la energía queda:
1 h2
1 2
ṙ = e − V (r ) +
2 2 r2
BO
1 µ2 2 µ2 1 µ2
2
e sin2 θ = e + 2 (1 + e cos θ ) − (1 + e cos θ )2
2h h 2 h2
Que puede probarse conduce a:
s
2eh2
e= 1+
µ2
1 h2
1 2
ṙ = e − V (r ) +
2 2 r2
7.4. El Problema general de los dos cuerpos 267
dr
p = dt
e − V (r ) − h2 /(2r2 )
Si usamos la forma polar de la posición r = a(1 − e cos E), dr = − ae sin EdE,
con h2 /µ = a(1 − e2 )la ecuación anterior queda:
( E − e sin E) = n(t − t0 )
R
7.4.7 El problema de los dos cuerpos con n arbitrario
Como vimos experimentando con la solución numérica al problema de los dos
O
cuerpos, si n no es 2 las órbitas resultantes tienen una estructura peculiar: no se
cierran sobre sí mismas. Aún así la variación de r y θ siguen siendo períodicas.
Un tipo de fuerza (potencial) de gran interés en la mecánica celeste (por razones
que veremos más adelante) es el siguiente:
f (r ) = −
D µ σ
− 4
r2 r
A
Con σ µr2 para todos los valores de r relevantes para el sistema.
La ecuación de movimiento angular en términos de la variable u y θ es en este
caso:
RR
d2 u u2
1
2
+ u = − 2
f
dθ h u
d2 u µ σ
+u = + 2 u2
dθ 2 h2 h
BO
d2 g q
+ g ≈ 2 (2 + e2 + 4e cos θ + e2 cos 2θ )
dt2 2p
268 Chapter 7. Aplicaciones del formalismo lagrangiano
g00 = 2 + e2
g10 = eθ sin θ
1
g20 =− e2 cos 2θ
3
De ese modo la solución a la ecuación diferencial original se puede escribir en
R
la forma:
e2
1 q q qe
u(θ ) ≈ 1 + e cos θ + 1+ + eθ sin θ − cos 2θ
O
p p 2 p p6
La perturbación en u(θ ) con respecto a una cónica pura tiene 3 partes reconoci-
bles: D
1. Un término constante q/p(1 + e2 /2)
2. Un término que aumenta sistemáticamente a medida que el cuerpo orbita el
centro, qe/pθ sin θ. Llamamos a este un término secular.
A
3. Un término pequeño que oscila alrededor de cero −q/p(e/6) cos 2θ. Lla-
mamos a este el término oscilatorio.
RR
Una gráfica de u(θ ) para la solución cónica y para la solución con el potencial
modificado se puede construir así. Primero calculemos cada uno de los términos
de la función:
In [18]: q=0.1
p=1.0
BO
e=0.2
qmin=0.0
qmax=3*np.pi
qs=np.linspace(qmin,qmax,1000)
u_conica=(1/p)*(1+e*np.cos(qs))
u_const=(q/p**2)*(1+e**2/2)
u_secul=(q/p**2)*e*qs*np.sin(qs)
u_oscil=-(q/p**2)*(e/6)*np.cos(2*qs)
u=u_conica+u_const+u_secul+u_oscil
In [19]: fig=plt.figure()
ax=fig.gca()
ax.plot(qs,u_conica,'k--')
ax.axhline(u_conica.max(),color='r',label='Periastro')
7.4. El Problema general de los dos cuerpos 269
ax.axhline(u_conica.min(),color='b',label='Apoastro')
ax.grid()
ax.set_xlim((qmin,qmax))
ax.legend()
R
O
D
A
RR
BO
In [20]: fig=plt.figure()
ax=fig.gca()
ax.plot(qs,u_conica,'k--')
ax.plot(qs,u_conica+u_const,'b-')
ax.plot(qs,u_conica+u_const+10*u_oscil,'g-')
ax.grid()
ax.set_xlim((qmin,qmax))
R
O
D
A
En este gráfico se ha amplificado por un factor de 10 el término oscilatorio
para que se vea en la gráfica. Como se nota, estos dos términos no modifican
RR
In [21]: fig=plt.figure()
ax=fig.gca()
ax.plot(qs,u_conica+u_const+u_oscil,'g--',label='Cónica+Constante+Oscilatorio')
ax.plot(qs,u,'k-',label='Cónica+Constante+Oscilatorio+Secular')
ax.axvline(2*np.pi,color='g',ls='--')
ax.axvline(2*np.pi*(1+q/p),color='k')
ax.legend()
ax.grid()
ax.set_xlim((qmin,qmax))
R
O
D
Con el término secular notamos que el ángulo de llegada al afelio ya no es 2π
(línea verde vertical), como es en la órbita no perturbada, sino que es 2π + ∆θ p ,
A
con ∆θ p un desfase angular cuyo valor queremos estimar.
Usando lo aprendido en estas gráficas podemos aproximar el movimiento del
sistema bajo el potencial propuesto ofiginalmente con una función de la forma:
RR
0 1 qe
u (θ ) ≈ 0 1 + e cos θ + θ sin θ
p p
Donde p0 es un semilatus rectum efectivo (debido al cambio en la distancia al
periapsis y al apoapsis de la órbita por efecto del término constante). El segundo
BO
qθ p
θp − = 2π
p
272 Chapter 7. Aplicaciones del formalismo lagrangiano
2πq
∆θ p ≈
p
R
en la métrica de Schwarzschild?.
En una sección anterior habíamos explicado que la propiedad más importante
que se debe conocer en relatividad general es la métrica (distancia infinitesimal) en
O
la región del espacio en el que ocurre dicho movimiento. Para el caso del espacio-
tiempo en el exterior de un cuerpo esférico isotrópico, la métrica esta dada por la
métrica de Schwarzschild: D
ds2 = gtt (cdt)2 − ∑ gij2 dxi dx j
i
A
−1
2V 2V
ds2 = 1+ (cdt)2 − 1 + dr2 − r2 (dφ2 + cos2 φdθ 2 )
c2 c2
RR
Al aplicar los métodos del cálculo variacional se obtiene las que son las equiv-
alentes de las ecuaciones de Euler-Lagrange en el espacio-tiempo:
d2 x µ α
µ dx dx
β
dτ 2
+ ∑ Γ αβ dτ dτ = 0
∂gνα ∂gνβ ∂gαβ
Γαβ = ∑ 1 µν
µ
2g + α
−
ν ∂x β ∂x ∂x ν
Como sucede en la mecánica Lagrangiana, la descripción del movimiento de
las partículas no requiere necesariamente la solución explícita a las ecuaciones
geodésicas. Más útil es encontrar las constantes de movimiento o cuadraturas del
sistema usando procedimientos análogos a los utilizados en el formalismo escalar.
R
diente τ. En este sentido las velocidades las denotaremos como es usual como
ẋµ = dx µ /dτ, donde no debemos olvidar que el punto ahora hace referencia a la
derivada con respecto al tiempo propio.
O
La velocidad generalizada más interesante aquí es ṫ, que parece una contradic-
ción. Pero no lo es, debemos recordar que el flujo del tiempo coordenado (medido
por un observador remoto) no es el mismo que el flujo de tiempo propio τ, medido
D
por un observador en movimiento a través de la geodésica.
Si dividimos a ambos lados de la métrica por dτ obtenemos:
−1
A
2 2V 2 2 2V
c = 1+ 2 c ṫ − 1 + 2 ṙ2 − r2 (φ̇2 + cos2 φθ̇ 2 )
c c
Como vemos esta es claramente una cuadratura del problema en tanto es-
RR
momentum angular total de la partícula. Esto implica que también en este caso
existe un plano análogo al plano invariante de Laplace que es perpendicular al
vector momentum angular total.
Si nos situamos sobre este plano, entonces φ = 0, φ̇ = 0 y el momentum angular
específico es:
H = r2 θ̇
Es importante distinguir aquí entre el momentum angular específico relativis-
tico H y el clásico h. La diferencia estriba en el hecho que H es calculado respecto
al tiempo propio y no respecto al tiempo coordenado.
R
Esta, también es una cuadratura en el problema.
O
Si reemplazamos las dos ecuaciones de movimiento H y E en la primera
cuadratura obtenemos: D
−1
E∈ 2V −1 2 H 2
2V
c2 = 1+ − 1+ 2 ṙ − 2
c2 c2 c r
A
Despejando ṙ2 /2, en analogía con el caso clásico obtenemos:
" #
E 2 H2
1 2 1 2 2V
ṙ = c − 1 − V + 1 +
RR
2 2 c2 2r2 c2
1 2
ṙ = eg − Vg,e f f
BO
2
Donde los subíndices g hacen referencia al hecho que esta expresión es también
válida en relatividad general. En este caso la energúa específica generalizada será:
" #
1 2 E 2
eg ≡ c −1
2 c2
H2
2V
Vg,e f f (r ) ≡ V (r ) + 2 1+ 2
2r c
Desarrollando este último término nos da:
H 2 V (r ) H2
Vg,e f f (r ) ≡ V (r ) +
2 2
+ 2
c r 2r
Que poniéndolo en términos de µ = GM y r queda:
7.5. El problema de los dos cuerpos postnewtoniano 275
µ µH 2 H2
Vg,e f f (r ) = − − 2 3 + 2
r c r 2r
µ σ H2
Vg,e f f (r ) = − − 3+ 2
r 3r 2r
Con σ = 3µH 2 /c2 .
R
dr dθ dr
=
dτ dτ dθ
dr H dr
O
ṙ = θ̇ = 2
dθ r dθ
Obtenemos:
H2
r4
dr
dθ
2
DH2
= 2e − 2V − 2
r
2V
1+ 2
c
d2 u µ 3µ
+ u = 2 + 2 u2
dθ H c
BO
Ya habíamos mostrado antes que esta forma del potencial conduce a una
ecuación para ṙ2 idéntica a la del problema de fuerzas centrales clásica.
Si tomamos ahora la ecuación de la forma orbital clásica:
d2 u
1 1
2
+u = − 2 2 f
dθ h u u
Y reemplazamos f g obtenemos:
d2 u µ σ
+ u = 2 + 2 u2
dθ 2 H H
Que coincide exactamente con la ecuación de la forma orbital deducida en rel-
atividad general.
Así que todo lo que hemos dicho para el problema de fuerzas centrales en el for-
R
malismo clásico aplica también en el caso de la relatividad general, al menos para
describir el movimiento de partículas de prueba en la métrica de Schwarzschild.
O
7.5.7 Regiones de exclusión
Podemos comparar las regiones de exclusión clásica y relativística:
def Veff(r,H,V,**pars):
Veffval=V(r,**pars)+H**2/(2*r**2)
return Veffval
#Valores arbitrarios
BO
mu=1.0
H=1.0
sigma=0.15
#Gráfico
fig=plt.figure()
ax=fig.gca()
rmax=3
rs=np.linspace(1e-3,rmax,1000)
Veffs=Veff(rs,H,Vgrav,mu=mu)
Veffgs=Veff(rs,H,Vg,mu=mu,sigma=sigma)
ax.plot(rs,Veffs,label="Clásico")
ax.plot(rs,Veffgs,label="Relativistico")
ax.set_xlim((0,rmax))
ax.set_ylim((-1.5*np.abs(Veffgs.max()),+1.5*np.abs(Veffgs.max())))
7.5. El problema de los dos cuerpos postnewtoniano 277
ax.set_xlabel(r"$r$")
ax.set_ylabel(r"$V(r)$")
ax.set_title(r"$H$=%g, $\sigma$=%g"%(H,sigma))
ax.legend()
ax.grid()
R
O
D
A
RR
Como vemos existe una región del espacio en la que hay orbitas acotadas e
incluso una órbita circular estable. La distancia mínima a la que pueden llegar las
partículas es menor como lo habíamos mostrado en el análisis del movimiento bajo
BO
6πµ2
∆θ p ≈
c2 h2
278 Chapter 7. Aplicaciones del formalismo lagrangiano
6πµ
∆θ p ≈
c2 a (1 − e2 )
∆θ obs
p = 0.1038 ± 0.0010 arcsec
R
Si usamos el valor predicho por la relatividad general obtenemos:
In [24]: #Constantes
O
AU=1.496e11
year=365.25*86400
G=6.67e-11
M=1.98e30
mu=G*M
c=spy.clight()*1e3
D
A
#Tierra
#Avance observado (Marion Tabla 8-2): 5.0+/-1.2 arcsec/siglo
a=1.0*AU
e=0.016
RR
#Venus
#Avance observado (Marion Tabla 8-2): 8.4+/-4.8 arcsec/siglo
a=0.723332*AU
e=0.006772
BO
#Mercurio
#Avance observado (Marion Tabla 8-2): 43.11+/-0.45 arcsec/siglo
a=0.387098*AU
e=0.205630
#Periodo
P=2*np.pi/n
R
Es independiente del tamaño de la órbita y solo depende de la masa del cuerpo
central. En el caso del Sol la constante 6πµ/c2 es 27.7 km y es la misma para
cualquier objeto. Es mucho más fácil recordar este hecho que la fórmula completa
O
del avance del perihelio.
2GM
=1
Rc2
2GM 2µ
R≡ = 2
BO
c2 c
Llamamos a esta escala de distancia el radio de Schwarzschild. Si lo escribimos
en términos de la masa del Sol queda:
M
R = 2.938 km
M
El término 2V/c2 = R/r define ahora la magnitud de la diferencia entre la
métrica de Schwarzschild y la métrica de Minkowski. Como vemos en el caso de
cuerpos astronómicos típicos R r (donde r es una distancia típica por fuera
del cuerpo). Esto implica que lo que hemos visto hasta ahora se notará de forma
particularmente intensa cuando el radio del planeta sea comparable o menor que
R.
En particular un cuerpo con un tamaño igual o menor que R se conoce en física
y astronomía como un agujero negro.
Como demostramos antes las ecuaciones de movimiento de una partícula se
pueden escribir usando la teoría clásica del problema de fuerzas centrales:
280 Chapter 7. Aplicaciones del formalismo lagrangiano
H
θ̇ =
r2
r̈ − r2 θ̇ = f (r )
Donde la fuerza es ahora la fuerza general es f g = −µ/r2 − σ/r4 , con σ =
3µH 2 /c2 = 3R/(2c2 ). La única salvedad que debemos tener en cuenta es que la
variable independiente ahora es el tiempo propio τ y no el tiempo coordenado.
Como las medidas se hacen normalmente en el tiempo coordenado es necesario
escribir además de las anteriores, una ecuación diferencial para el tiempo propio.
Esta la podemos obtener directamente de la métrica:
s
R −1 r2 θ̇
ṙ
ṫ = 1− 1+ 2 + 2
R
r c c
Donde tomamos la raíz positiva en tanto solo nos interesan los instantes futuros
en el movimiento del cuerpo.
O
Si usamos el siguiente conjunto de unidades:
UM = M
UL =
G=
D R
1
A
p
= = 3
Entonces en estas unidadesp µ 1 y U T √ R /( GM). √La unidad de veloci-
dad es UV = UL /UT = R/ R /√ 3 ( GM) = GM/R = c/ 2. Es decir en estas
unidades, la velocidad de la luz es 2.
RR
1 3
r̈ = r2 θ̇ − 2 − 4
q r r
ṫ = 1 + 2ṙ + 2r2 θ̇ / (1 − 1/r )
In [25]: # Potenciales
def U(r,params):
mu=params["mu"]
h=params["h"]
Rs=params["Rs"]
Upot=-mu/r-Rs*h**2/2*mu/r**3
return Upot
def Ueff(r,params):
h=params["h"]
Upot=U(r,params)+h**2/(2*r**2)
return Upot
7.5. El problema de los dos cuerpos postnewtoniano 281
r=y[0]
vr=y[1]
q=y[2]
t=y[3]
f=(1-Rs/r)
R
drdT=vr
dvrdT=-mu/r**2-3./4*Rs*h**2*mu/r**4+h**2/r**3
dqdT=h/r**2
O
# Fuente: http://bit.ly/1VIbNSa
dtdT=np.sqrt((1/f)*(1+(drdT/c)**2)/f**2+(r*dqdT/c)**2/f)
return [drdT,dvrdT,dqdT,dtdT]
In [26]: # Constants
D
mu=1
Rs=1
A
# Position
t=0
RR
r=2
q=0
# Initial Velocity
drdT=0.0
dqdT=0.48
BO
vx=drdT*np.cos(q)-r*np.sin(q)*dqdT
vy=drdT*np.sin(q)+r*np.cos(q)*dqdT
print("v = ",vx,vy)
# Constantes
h=r**2*dqdT
# Parametros
params=dict(mu=mu,Rs=Rs,h=h)
# Total energy
E=0.5*(drdT**2+r**2*dqdT**2)+U(r,params)
params["E"]=E
print("h = ",h)
print("E = ",E)
282 Chapter 7. Aplicaciones del formalismo lagrangiano
v = 0.0 0.96
h = 1.92
E = -0.26959999999999995
In [27]: # Unidades
c=spy.clight()*1e3
GCONST = 6.67E-11 # m^3 / (kg s^2)
UM = 1.98e30 # kg
UL = 2*GCONST*UM/c**2 # metros
UT = np.sqrt(UL**3/(UM*GCONST))
print("UT = ",UT)
R
c = c*UT/UL
print("c = ",c)
params["c"]=c
O
UT = 1.3863532628540203e-05
c = 1.4142135623730951 D
In [28]: # Nt=1000
Nt=1000
A
Ts=np.linspace(0,100,Nt)
ys=[r,drdT,q,t]
solucion=odeint(eom,ys,Ts,args=(params,))
RR
rs=solucion[:,0]
vrs=solucion[:,1]
qs=solucion[:,2]
ts=solucion[:,3]
BO
In [29]: fig=plt.figure(figsize=(10,6))
axr=plt.subplot(1,3,1)
axq=plt.subplot(1,3,2)
axt=plt.subplot(1,3,3)
axr.plot(Ts,rs)
axq.plot(Ts,qs)
axt.plot(Ts,ts)
for ax in axr,axq,axt:
ax.set_xlabel("Proper time")
axr.set_ylabel("r")
axq.set_ylabel(r"$\theta$")
axt.set_ylabel("Coordinate time")
fig.tight_layout()
7.5. El problema de los dos cuerpos postnewtoniano 283
R
O
D
A
RR
ax=fig.gca()
tetas=np.linspace(0,2*np.pi,1000)
ax.plot(Rs*np.cos(tetas),Rs*np.sin(tetas))
ax.plot(rs*np.cos(qs),rs*np.sin(qs))
ext=5
ax.set_xlim(-ext,ext)
ax.set_ylim(-ext,ext)
Out[30]: (-5, 5)
284 Chapter 7. Aplicaciones del formalismo lagrangiano
R
O
D
A
RR
BO
Chapter 8
El formalismo
hamiltoniano
R
O
Como hemos visto el formalismo Lagrangiano ofrece ventajas teóricas impresio-
nantes sobre el formalismo vectorial de la mecánica. Sin embargo, en términos
prácticos, tiene todavía una serie de inconvenientes:
D
Así por ejemplo las ecuaciones de movimiento de los sistemas estudiados son
ecuaciones diferenciales de segundo orden, no trivialmente acopladas y en muchas
ocasiones difíciles de resolver. A continuación ofrecemos un ejemplo de cómo el
formalismo lagrangiano puede conducir a callejones matemáticos y numéricos.
A
RR
BO
8.1 Motivación
8.1.1 Motivación 1: el problema de las ecuaciones de
movimiento
285
286 Chapter 8. El formalismo hamiltoniano
R
O
D
Figure 8.1: Sistema mecánico simple
A
El sistema tiene 2 grados de libertad y por lo tanto, dos variables generalizadas:
RR
x1 = x − R sin θ
y1 = R cos θ
BO
1 1
L= M ẋ2 + m( ẋ2 + R2 θ̇ 2 − 2R ẋ θ̇ cos θ ) − mgR cos θ
2 2
De allí es posible también deducir las ecuaciones de movimiento, que resultan
ser:
( M + m) ẍ − mR cos θ θ̈ + mR sin θ θ̇ = 0
r θ̈ − ẍ cos θ − g sin θ = 0
¿Cuál es la solución a este sistema de ecuaciones?. Ciertamente la simplicidad
mecánica del sistema original no se compara con la complejidad matemática de las
ecuaciones de movimiento resultantes.
Podría uno pensar que siempre es posible apelar a una solución numérica. Para
esto último, sin embargo y como hemos mostrado a través de estas notas, es nece-
sario linearizar las ecuaciones de movimiento. La receta normal para hacerlo es
8.1. Motivación 287
hacer cambios de variable del tipo v x = ẋ, vθ = θ̇. Sin embargo esta sencilla
linearización no conduce, como se puede verificar fácilmente, a un conjunto de
ecuaciones que puedan programarse fácilmente.
La búsqueda de simetrías y cuadraturas no parece tampoco sencilla. No hay
variables cíclicas, ni simetría traslacional o rotacional. A lo sumo podemos asegu-
rar que la energía se conserva, de la que podríamos deducir al menos una integral
de movimiento, relacionando θ̇ con ẋ.
En síntesis, incluso un sistema mecánico tan sencillo y en nuestro poderoso
formalismo lagrangiano, parece lejos de resolverse.
R
malismo vectorial.
En ambos el movimiento del sistema se representa en un espacio geométrico,
O
el espacio de configuración en el caso del formalismo Lagrangiano y el espacio
coordenado en el formalismo vectorial, que tiene un defecto.
En ambos espacios un punto representa la configuración de un sistema. Sin
embargo, dado el conocimiento de las fuerzas que actúan sobre el sistema o equiv-
D
alentemente el Lagrangiano, no es posible saber a priori cuál será la trayectoria
que seguirá la partícula (ver figura).
A
RR
BO
ẍ + ω 2 x = 0
Como explicamos antes el grado de esta ecuación es responsable que una vez
sabida la posición no podamos solo con la fuerza saber hacia dónde se mueve la
R
partícula.
Haciendo un cambio de variables y llamando v x = ẋ, la ecuación de segundo
orden anterior, se convierte en un sistema de ecuaciones de primer orden:
O
ẋ = vx
v̇ x = −ω 2 x
D
Si ahora en lugar de usar el espacio de configuración, introducimos un espa-
cio geométrico nuevo, bidimensional, cuyas coordenadas son x y v x (lo podemos
llamar el espacio configuración-velocidad), la dinámica se hace más sencilla (ver
A
figura).
RR
BO
Nótese que en este espacio por cada punto pasa una y solo una trayectoria.
Esto porque la variación instantánea de las coordenadas depende solo de las coor-
denadas mismas (y posiblemente del tiempo).
¿Podrá esta construcción geométrica que hicimos en el caso de un oscilador
armónico generalizarse para cualquier sistema dinámico? ¿será posible construir
un espacio generalizado que combien configuración y velocidades generalizadas
en el que la dinámica no este degenerada?.
Esta es justamente la idea del formalismo Hamiltoniano de la mecánica que
introduciremos en esta sección.
8.2. Las ecuaciones canónicas de Hamilton 289
R
∂L
pj ≡
∂q̇ j
O
Si de esta identidad podemos invertir las coordenadas y velocidades general-
izadas para escribir funciones del tipo:
D
q̇ j = q̇ j ({qk }, { pk })
De modo que el Lagrangiano se puede escribir también como función de q j y
pj:
A
Lqp ({q j }, { p j }) = L({q j }, q̇ j ({qk }, { pk }), t)
RR
Nótese que hemos cambiado el nombre del Lagrangiano L que depende natu-
ralmente de q y q̇, a Lqp para representar el lagrangiano que depende del nuevo
conjunto de variables. Estos dos largangianos son matemáticamente completa-
mente diferentes y no deben confundirse.
Haciendo esta reemplazo las ecuaciones de Euler Lagrange se hacen lineales en
pj:
BO
( )
∂Lqp
ṗ j =
∂q j
M
Para ilustrar este aparentemente confuso cambio de variables, consideremos
nuevamente el oscilador armónico simple. El Lagrangiano del sistema es:
1 2 1 2
L( x, ẋ ) = m ẋ − kx
2 2
La nueva variable es:
∂L
px = = m ẋ
∂ ẋ
El Lagrangiano modificado será:
1 2 1 2
L xp = p − kx
2m x 2
290 Chapter 8. El formalismo hamiltoniano
∂L xp
ṗ x == −kx
∂x
Hasta aquí todo muy bien. Excepto porque M ecuaciones de segundo orden
(las ecuaciones de Lagrange) no pueden ser equivalentes a M ecuaciones de primer
orden (las ecuaciones para las nuevas variables { p j }). La razón es simple. Además
de la ecuación diferencial para p j nos hace falta la ecuación diferencial para q j .
Cuando linearizamos ecuaciones ordinarias, la definición misma de la variable
auxiliar, ej. v x = ẋ en el caso del oscilador armónico simple, era en si misma una
ecuación del sistema. No es el caso ahora con p j = ∂L/∂q̇ j .
Podríamos especular en que por “simetría” la ecuación diferencial para q j ten-
dría una forma similar a la de p j , algo de la forma:
R
( )
∂Lqp
q̇ j = ?
∂p j
M
O
Lamentablemente el mundo es más complicado. Para demostrar que la
ecuación anterior no es válida, calculemos ∂Lqp /∂p j :
∂Lqp
∂p j
= ∑ ∂q̇k ∂pkj
k
D
∂L ∂q̇
= ∑ pk
k
∂q̇k
∂p j
Nótese que en esta última expresión q̇ j es la función q̇ j ({qk }, { pk }), no la vari-
A
able.
Sin embargo, en nuestra búsqueda aparece una interesante relación. La expre-
sión anterior se puede escribir también en la forma:
RR
∂Lqp ∂
∂p j
= ∑ ∂p j ( pk q̇k ) − q̇ j
k
Despejando q̇ j obtenemos:
BO
∂ ∂Lqp
q̇ j = ∑ ∂p j ( pk q̇k ) − ∂p j
k
De entrada vemos que la ecuación propuesta anteriormente, no es la ecuación
correcta, primero porque tiene un término adicional, ∑k ∂( pk q̇k )/∂p j y segundo
porque la derivada del Lagrangiano tiene un signo negativo. Sin embargo, si jun-
tamos los términos anteriores obtenemos una ecuación nueva e inesperada:
( )
∂H
q̇ j =
∂p j
M
En la que hemos introducido una nueva función:
R
∂q j
M
O
Hemos logrado nuestro objetivo. La dinámica del sistema se puede escribir
como un conjunto de ecuaciones diferenciales de primer orden. La dinámica en
el espacio {q j } − { p j } (llamado también el espacio de fase) es una dinámica no
D
degenerada.
Pero hay un defecto en esta forma linearizada de las ecuaciones de movimiento:
no es la más simple. Para describir el movimiento de un sistema usando esta ver-
A
sión es necesario encontrar dos funciones (interrelacionadas), Lqp y H.
¿Existe alguna manera de describir la dinámica como de una sola función?
Aquí las matemáticas salen en nuestra ayuda. La transformación de coorde-
nadas:
RR
∂L
pj ≡
∂q̇ j
inámica.
Una particularidad especial de este tipo de transformación es que permite es-
cribir la relación entre las variables y funciones implicadas (L, Lqp , q̇ j , q j , p j , etc.)
de formas simple. Para ello se toma la función clave de la transformación (el La-
grangiano o el Hamiltoniano) y se encuentra el diferencial total por dos caminos
diferentes.
Dado que H ({q j }, { p j }, t) el diferencial total es:
∂H ∂H ∂H
dH = ∑ ∂q j dq j + ∂p j dp j + ∂t
dt
j
∂L
dH = ∑ q̇k dpk − ṗk dqk +
∂t
dt
k
R
Comparando con el diferencial original nos quedan las relaciones:
O
D
∂H
q̇ j = +
∂p j
∂H
−
ṗ j =
A
∂q j M
RR
Con un extra:
BO
∂H ∂L
=−
∂t ∂t
R
O
D
A
Figure 8.4: Dinámica en el espacio de fase descrita por las ecuaciones canónicas de
Hamilton.
RR
1 2 2
L(θ, θ̇ ) = ml θ̇ + mglcosθ
2
Lo primero que debemos hacer es encontrar el momento generalizado (la trans-
formación de Legendre):
∂L
pθ = = ml 2 θ̇
∂θ̇
De allí debemos escribir la función que nos da la velocidad generalizada en
términos del momento:
294 Chapter 8. El formalismo hamiltoniano
pθ
θ̇ =
ml 2
El Lagrangiano Lqp es en este caso:
1 p2θ
Lθ p = + mgl cos θ
2m l 2
La función Hamiltoniana es:
p2θ p2
H (θ, pθ ) = pθ θ̇ − Lθ p = 2
− θ 2 − mgl cos θ
ml 2ml
Que queda,
R
p2θ
H (θ, pθ ) = − mgl cos θ
2ml 2
O
En la figura abajo se muestran gráficos de contorno de este Hamiltoniano para
el siguiente conjunto de propiedades:
In [4]: pext=10.0
RR
pqs=np.linspace(-pext,pext,100)
qext=np.pi
qs=np.linspace(-qext,qext,100)
QS,PS=np.meshgrid(qs,pqs)
BO
HS=PS**2/(2*m*l**2)-m*g*l*np.cos(QS)
In [5]: fig=plt.figure(figsize=(8,6))
ax=fig.gca()
c=ax.contourf(QS*RADIAN,PS,HS,10,cmap="jet")
c=ax.contour(QS*RADIAN,PS,HS,np.linspace(-m*g*l,m*g*l,10))
cb=fig.colorbar(c)
c.clabel(colors='w')
c=ax.contour(QS*RADIAN,PS,HS,[0],colors=['w'],linewidths=2)
xl=ax.set_xlabel(r"$\theta$ (grados)")
tl=ax.set_ylabel(r"$p_\theta$")
fig.tight_layout()
8.2. Las ecuaciones canónicas de Hamilton 295
R
O
D
A
Interpretemos estas curvas de contorno:
RR
negativo.
• Para ángulos iniciales mayores a 90◦ la trayectoria sigue siendo acotada, pero
la forma de la misma en el espacio de fase se va modificando. Ya no tiene la
forma de una elipse y se parece más a un pastel.
R
que usando el Hamiltoniano escrito anteriormente quedarán:
O
∂H p
θ̇ = = θ2 (8.1)
∂pθ ml
∂H
ṗθ = − = −mgl sin θ (8.2)
∂θ
D (8.3)
Al ver estas ecuaciones reconocemos el poder de la linearización conseguido
A
con el formalismo Hamiltoniano. A diferencia del formalismo Lagrangiano en las
ecuaciones de una de las variables no aparecen las derivadas de la otra.
Numéricamente este sistema se puede escribir como:
RR
g=9.8
dqdt=p/(m*l**2)
BO
dpdt=-m*g*l*np.sin(q)
return [dqdt,dpdt]
Resolvamos:
In [8]: solucion=odeint(HE_pendulo,y,ts,args=(m,l))
R
O
D
A
Que coincide con lo que esperabamos anteriormente. Se invita al lector de la
versión digital a cambiar las condiciones iniciales tal y como se descibe anterior-
RR
In [10]: fig,axs=plt.subplots(1,2,figsize=(8,4))
BO
#Espacio coordenado
x=l*np.sin(solucion[:,0])
y=-l*np.cos(solucion[:,0])
axs[0].plot(x,y,'ko')
axs[0].set_xlim((-1.2*l,1.2*l))
axs[0].set_ylim((-1.2*l,1.2*l))
axs[0].set_xlabel(r"$x$")
axs[0].set_ylabel(r"$y$")
axs[0].set_title("Espacio coordenado")
#Espacio de Fase
axs[1].plot(solucion[:,0]*RADIAN,solucion[:,1],'r-')
c=axs[1].contourf(QS*RADIAN,PS,HS,np.linspace(-m*g*l,5*m*g*l,10))
axs[1].set_xlabel(r"$\theta$ (grados)")
axs[1].set_ylabel(r"$p_\theta$")
axs[1].set_title("Espacio de Fase")
fig.tight_layout()
298 Chapter 8. El formalismo hamiltoniano
R
O
Y ahora podemos ver todo animado:
#Espacio coordenado
q=solucion[0,0]
p=solucion[0,1]
x=l*np.sin(q)
y=-l*np.cos(q)
Ho=p**2/(2*m*l**2)-m*g*l*np.cos(q)
BO
part_conf,=axs[0].plot(x,y,'ko')
barra,=axs[0].plot([0,x],[0,y],'k-')
axs[0].set_xlim((-1.2*l,1.2*l))
axs[0].set_ylim((-1.2*l,1.2*l))
axs[0].set_xlabel(r"$x$")
axs[0].set_ylabel(r"$y$")
axs[0].set_title("Espacio coordenado")
#Espacio de Fase
part_fase,=axs[1].plot(solucion[0,0]*RADIAN,solucion[0,1],'ro-')
c=axs[1].contourf(QS*RADIAN,PS,HS,np.linspace(-m*g*l,5*m*g*l,10))
c=axs[1].contour(QS*RADIAN,PS,HS,[Ho],colors=['w'])
axs[1].set_xlabel(r"$\theta$ (grados)")
axs[1].set_ylabel(r"$p_\theta$")
axs[1].set_title("Espacio de Fase")
fig.tight_layout()
8.3. Simetrías y candidates conservadas 299
#Animacion
def animacion(i):
q=solucion[i,0]
p=solucion[i,1]
x=l*np.sin(q)
y=-l*np.cos(q)
part_conf.set_data(x,y)
barra.set_data([0,x],[0,y])
part_fase.set_data(q,p)
R
return part_conf,barra,part_fase
O
#animacion(10)
a=animation.FuncAnimation(fig,animacion,frames=Nt,interval=Nt/30,blit=True)
D
A
RR
BO
∂H ∂L
=−
∂t ∂t
300 Chapter 8. El formalismo hamiltoniano
R
8.3.1 Variables cíclicas
Como sucede en el formalismo Lagrangiano las variables cíclicas (variables que
O
no aparecen explícitamente en el Lagrangiano) se corresponden con cantidades
conservadas.
En el caso del formalismo Hamiltoniano, sin embargo, las cantidades conser-
D
vadas asociadas a las variables cíclicas son triviales.
Así por ejemplos si la variable generalizada qk no aparece explícitamente en el
Lagrangiano, ie. ∂H/∂qk , entonces por las ecuaciones canónicas sabemos que el
A
momento canónico conjugado pk será constante.
La diferencia entre este resultado en el formalismo Hamiltoniano y el mismo re-
sultado en el formalismo Lagrangiano, es que en este último la cantidad que es
constante (cuadratura) no es una función compleja de las variables independientes
RR
del problema ({q j }, {q̇ j }), sino una de las variables mismas, pk .
∂H
= 0 → pk : cte
∂qk
R
O
D
Figure 8.5: Sistema mecánico simple
A
Como vemos el problema tiene dos grados de libertad y por lo tanto puede ser
descrito por dos variables generalizadas independientes θ y φ.
Sin embargo el espacio de fase del problema es enorme, conteniendo un total de
RR
1
m(b2 θ̇ 2 + b2 sin2 θ φ̇) + mgb cos θ
L=
2
Los momentos canónicos conjugados serán en este caso:
∂L
pθ = = mb2 θ̇
∂θ
∂L
pφ = = mb2 sin2 θ φ̇
∂φ
Con esto el Lagrangiano escrito en términos de pθ , pφ será:
p2θ p2φ
Lqp = + + mgb cos θ
2mb2 2mb2 sin2 θ
Y el Hamiltoniano H = pθ θ̇ + pφ φ̇ − Lqp queda:
2
p2θ pφ
H= + − mgb cos θ
2mb2 2mb2 sin2 θ
302 Chapter 8. El formalismo hamiltoniano
∂H α2φ
φ̇ ≡ ωφ = − =
∂pφ mb2 sin2 θ
En términos de αφ el Hamiltoniano es ahora:
2
p2θ αφ
H= 2
+ − mgb cos θ
2mb 2mb2 sin2 θ
Por otro lado las ecuación de movimiento para θ y pθ serán:
p2θ
θ̇ =
R
mb2
α2φ cos θ
ṗθ = − mbg sin θ
mb2 sin3 θ
O
El espacio de fase de este problema se puede reducir a 3 dimensiones sola-
mente: θ, pθ y φ, ya que en la cuarta dimensión pφ el sistema se mantiene sobre la
D
hipersuperficie constante pφ = αφ .
Simulemos el movimiento del sistema y representémoslo, tanto en el espacio
coordenado como en el espacio de fase.
Las ecuaciones canónicas de Hamilton serán:
A
In [13]: def EoM_PenduloCilindrico(y,t,alpha,b,m,g):
q=y[0]
RR
f=y[1]
pq=y[2]
dqdt=pq/(m*b**2)
dfdt=alpha/(m*b**2*np.sin(q)**2)
dpqdt=alpha**2*np.cos(q)/(m*b**2*np.sin(q)**3)-m*b*g*np.sin(q)
BO
return [dqdt,dfdt,dpqdt]
In [14]: b=1.0
g=9.81
m=1.0
t0=0.0
tmax=50.0
Nt=1000
q0=15*GRADOS
f0=0.0*GRADOS
pq0=0.0
alpha=0.8
Solución:
8.3. Simetrías y candidates conservadas 303
In [15]: ts=np.linspace(t0,tmax,Nt)
solucion=odeint(EoM_PenduloCilindrico,[q0,f0,pq0],ts,args=(alpha,b,m,g))
qs=solucion[:,0]
fs=solucion[:,1]
pqs=solucion[:,2]
#Coordenadas cartesianas
xs=b*np.sin(qs)*np.cos(fs)
ys=b*np.sin(qs)*np.sin(fs)
zs=-b*np.cos(qs)
R
La animación del movimiento:
O
D
A
RR
In [16]: fig=plt.figure()
ax=fig.add_subplot(111,projection='3d')
BO
masa,=ax.plot([xs[0]],[ys[0]],[zs[0]],'ko')
traj,=ax.plot([xs[0]],[ys[0]],[zs[0]],'b-')
cuerda,=ax.plot([0,xs[0]],[0,ys[0]],[0,zs[0]],'k-')
ax.set_xlim((-b,b))
ax.set_ylim((-b,b))
ax.set_zlim((-b,0))
def animacion(i):
cuerda.set_data([0,xs[i]],[0,ys[i]])
cuerda.set_3d_properties([0,zs[i]])
masa.set_data([xs[i]],[ys[i]])
masa.set_3d_properties([zs[i]])
traj.set_data(xs[:i],ys[:i])
traj.set_3d_properties(zs[:i])
return traj,cuerda
anim=animation.FuncAnimation(fig,animacion,frames=Nt,interval=Nt/5.0,blit=True)
304 Chapter 8. El formalismo hamiltoniano
R
O
D
El movimiento en el espacio de fase es:
In [17]: fig=plt.figure()
A
ax=fig.add_subplot(111,projection='3d')
fs=np.mod(fs,2*np.pi)
RR
masa,=ax.plot([qs[0]],[fs[0]],[pqs[0]],'ko')
traj,=ax.plot([qs[0]],[fs[0]],[pqs[0]],'bo',ms=2)
pqmax=max(np.abs(pqs.min()),pqs.max())
BO
ax.set_xlim((-2*np.pi,2*np.pi))
ax.set_ylim((-2*np.pi,2*np.pi))
ax.set_zlim((-pqmax,+pqmax))
ax.set_xlabel(r"$\theta$")
ax.set_ylabel(r"$\phi$")
ax.set_zlabel(r"$p_\theta$")
def animacion(i):
masa.set_data([qs[i]],[fs[i]])
masa.set_3d_properties([pqs[i]])
traj.set_data(qs[:i],fs[:i])
traj.set_3d_properties(pqs[:i])
return masa,traj
8.3. Simetrías y candidates conservadas 305
anim=animation.FuncAnimation(fig,animacion,frames=Nt,interval=Nt/5.0,blit=True)
R
O
D
A
8.3.3 Conservación del Hamiltoniano
RR
dH ∂L ∂H
= =−
dt ∂t ∂t
De aquí se sigue que si la siguiente regla de conservación:
Conservación del Hamiltoniano. Si el Hamiltoniano no depende ex-
plícitamente del tiempo, el Hamiltoniano mismo es una constante de
movimiento.
El Hamiltoniano hereda algunas condiciones que demostramos para la función
de Jacobi, en particular el hecho de que si se cumple que las ecuaciones de trans-
formación entre las cooredenadas cartesianas y las variables generalizadas no de-
penden del tiempo y se cumple además que la función de energía potencial no
depende de las velocidades entonces:
H = T+U
Que es lo que llamamos la energía mecánica del sistema.
306 Chapter 8. El formalismo hamiltoniano
R
j
∂q j ∂p j ∂t
O
!
dc ∂c ∂H ∂c ∂H ∂c
=∑ − +
dt ∂q j ∂p j ∂p j ∂q j ∂t
j
D
Este resultado sugiere la definición de una nueva operación entre funciones:
∂ f ∂g ∂ f ∂g
{ f , g} ≡ −
∂q j ∂p j ∂p j ∂q j
En términos de los corchetes de Poisson la derivada total de la cantidad c es:
dc ∂c
= {c, H } +
dt
BO
∂t
Este resultado muestra la sencillez con la que en un problema físico puede pro-
barse si una determinada cantidad es constante o no. Para ello formulamos el
siguiente teorema:
{c, H } = 0
El uso de los corchetes de Poisson se vuelve así en el formalismo Hamiltoniano
una herramienta de primera mano para encontrar ecuaciones de movimiento o
probar si una determinada cantidad lo es.
En este caso es bueno contar con las siguientes propiedades de los corchetes de
Poisson:
8.4. Transformaciones canónicas 307
1. { f , g} = −{ g, f } (no conmutatividad).
2. {α f , g} = α{ f , g} (linearidad).
3. {α f , g} = { f , αg} (intercambio).
4. { f + g, h} = { f , h} + { g, h} (distributividad respecto a la suma).
5. { f g, h} = { f , h} g + f { g, h} (distributividad respecto al producto).
6. { f , { g, h}} + { g, {h, f }} + {h, { f , g}} = 0 (propiedad cíclica).
7. { f , f } = 0 (Inversa).
8. {q j , pk } = { p j , qk } = δjk (identidad).
9. {q j , qk } = { p j , pk } = 0.
R
8.4 Transformaciones canónicas
O
Una de las características más poderosas del formalismo Hamiltoniano es la man-
era como puede manipularse para simplificar la solución a problemas dinámicos
muy complicados. D
Así por ejemplo una transformación de coordenadas (adecuadamente dis-
eñada) puede hacer que la dinámica de un sistema se exprese de forma realmente
simple de modo que su solución pueda verse de forma inmediata.
A
Consideremos un caso ejemplar: el oscilador armónico.
8.4.1 Motivación
RR
p2x 1 1
H ( x, p x ) = + kx2 = ( p2 + mkx2 )
2m 2 2m x
BO
x = f ( P) sin X (8.4)
f ( P)
px = cos X (8.5)
mω
f ( P )2
K ( X, P) =
2m
308 Chapter 8. El formalismo hamiltoniano
Esta forma del “Hamiltoniano” es mucho más simple que la forma original y en
ella, por ejemplo la variable X, en contraposición con la variable original x, aparece
como una variable ciclica.
Pero, ¿es este en realidad un Hamiltoniano?, es decir, ¿satisfacen las nuevas
variables X, P las ecuaciones canónicas de Hamilton?:
Ẋ = +∂K/∂P
?
Ṗ = −∂K/∂X
Transformación Canónica. Llamamos a una transformación del tipo:
Qk = Qk ({q j }, { p j }, t), Pk = Pk ({q j }, { p j }, t), una transformación
canónica si la función resultante de transformar el Hamiltoniano,
K ({ Qk }, { Pk }, t) = H ({q j ({ Qk }, { Pk }, t)}, { p j ({ Qk }, { Pk }, t)}, t) es tal
que:
R
∂K
Q̇k = +
∂Pk
O
∂K
Ṗk = −
∂Qk M
En otras palabras una transformación puntual en el espacio de fase es canónica
D
si la variable correspondiente al momento, sigue siendo canónica conjugada a la
variable de configuración correspondiente.
A
8.4.2 La función generatriz
Existen tres formas diferentes de abordar este problema.
RR
δ dt = 0
j
Si queremos que un nuevo conjunto de variables satisfagan las mismas ecua-
ciones canónicas se debe cumplir que:
Z
!
δ ∑ Pk Q̇k − K dt = 0
k
Por comparación, podemos decir que estas dos ecuaciones se cumplen si la
siguiente relación se satisface:
dF
∑ p j q̇ j − H = ∑ Pk Q̇k − K + dt
j k
R
lo sugiere la función F1 , es decir si cualquier variación dq j se puede hacer indepen-
dientemente de la variación dQ j , el lado izquierdo de la ecuación debe ser idénti-
O
camente cero, lo que implica que las siguientes relaciones se cumplen:
∂F1
pj = + (8.6)
D
∂q j
∂F1
Pj = − (8.7)
∂Q j
A
∂F1
K= H+ (8.8)
∂t
RR
mωx2
F1 ( x, X ) =
cot X
2
Aplicando las primeras dos condiciones obtenemos:
∂F1
px = = mωx cot X (8.9)
∂x
∂F mωx2
P= 1 =− (8.10)
∂X 2 sin2 X
(8.11)
√
px = 2mωP cos X
Si reemplazamos en la primera ecuación y despejamos x obtenemos:
r
2P
x= sin X
mω
Que es justamente
√ la forma que habíamos postulado originalmente, donde la
función f ( P) = 2mωP. Reemplazando en el Hamiltoniano encontramos que:
K ( X, P) = ωP
Este Hamiltoniano es muy simple y tiene a la variable X como una variable
R
cíclica, tal que P es una constante de movimiento. Adicionalmente como no de-
pende del tiempo el Hamiltoniano es en sí mismo constante K ≡ E
El espacio de fase tiene ahora una estructura geométrica muy simple. Un grá-
O
fico de contornos elíptico se convierte simplemente en un gráfico de líneas hori-
zontales constantes.
La solución al problema se hace también trivial:
D
∂K
Ẋ = + =ω
∂P
A
De modo que X = ωt + Xo
La solución al problema se obtiene volviendo a las variables originales:
RR
r
2E
x (t) = sin(ωt + Xo ) (8.12)
mω 2
√
p x (t) = 2mE cos(ωt + Xo ) (8.13)
(8.14)
BO
! !
∂Qk ∂Qk ∂Qk ∂H ∂Qk ∂H
Q̇k = ∑ q̇ +
∂q j j
ṗ
∂p j j
=∑
∂q j ∂p j
−
∂p j ∂q j
= { Q, H }
j j
R
!
∂H ∂H ∂p j ∂H ∂q j
Q̇k = =∑ +
O
∂Pk j
∂p j ∂Pk ∂q j ∂Pk
Comparando uno a uno la ecuación anterior con esta obtenemos las relaciones:
∂Qk
!
=+
D
∂p j
(8.15)
∂q j ∂Pk Q,P
q,p
A
!
∂Qk ∂q j
=− (8.16)
∂p j ∂Pk Q,P
q,p
RR
(8.17)
!
∂p j
BO
∂Pk
=− (8.18)
∂q j ∂Qk Q,P
q,p
!
∂Pk ∂q j
=+ (8.19)
∂p j ∂Qk Q,P
q,p
(8.20)
una transformación tal que todas las coordenadas y momentos sean constantes
de movimiento?. Esto lo podemos escribir matemáticamente como:
∂K
Q̇k = + =0 (8.21)
∂Pk
∂K
Ṗk = − =0 (8.22)
∂Qk
R
∂F
H ({q j }, { p j }, t) +
=0
∂t
Si usamos una transformación canónica de tipo 2, F = F2 ({q j }, { Pj }, t) ≡
O
S({q j }, {α j }, t), donde por la condición de constancia de las coordenadas y los
momentos canónicos conjugados hemos hecho la identificación Pj ≡ α j con α j con-
stante. Ahora bien, como esta es una transformación canónica de tipo 2, se cumple
D
que:
∂S
pj =
A
∂q j
Y de allí la condición buscada es:
RR
( ) !
∂S ∂S
H { q j }, ,t + =0
∂q j ∂t
dS ∂S ∂S
dt
= ∑ ∂q j q̇ j + ∂t
= ∑ p j q̇ j − H
j j
∂S/∂t = − H = − E
De modo que podemos escribir
S = W − Et
R
donde W ( x ) es una función solo de las coordenadas (llamada en algunos con-
textos la función característica de Hamilton). Con esta sustitución la ecuación
O
anterior se puede escribir en la forma:
" #
∂W 2
1
+ m2 ω 2 x 2 = E
2m ∂x
D
Esta ecuación diferencial es separable y produce:
A
√ Z r
mω 2 x2
W = 2mE 1− dx
2E
De donde
RR
√ Z r
mω 2 x2
S= 2mE 1− dx − Et
2E
¿Qué propósito puede tener esta función?. Nótese que esta función es de la
forma S = S( x, E). Como el ideal original era que la función fuera S = S( x, P)
BO
∂S ∂S
Q= =
∂P ∂E
Como Q es en sí misma constante por construcción (recordemos que el
propósito original es encontrar un conjunto de variables en el que el Hamiltoni-
ano sea una constante, ie. Q̇ = 0), ie. Q ≡ β, obtenemos la siguiente relación:
r
m dx
Z
∂S
β= = q −t
∂E 2E 2 2
1 − mω2Ex
314 Chapter 8. El formalismo hamiltoniano
R
La solución para el momentum se obtiene de la relación que conecta la función
generatriz S de la transformación y los momentos del sistema:
O
∂S
px =
∂x
R
Que se puede obtener teniendo en cuenta que (∂/∂x ) f ( x )dx = f ( x ) y obte-
niendo posteriormente la derivada parcial:
D
√
px = 2mE cos(ωt + φ)
A
8.5.2 El procedimiento generalizado de Hamilton-Jacobi
RR
El ejemplo anterior nos permite ilustrar el que sería un procedimiento general para
conseguir los mismos resultados poderosos descritos arriba, pero en el caso de un
sistema general.
Con los elementos vistos en este capítulo podemos volver ahora sobre el problema
de los dos cuerpos y aplicar la “tecnología” matemática desarrollada para obtener
poderosas formas de la solución al problema.
El Lagrangiano del sistema en el plano invariante de Laplace, lo habíamos es-
crito ya y era:
1 mr µ
L= mr (ṙ2 + r2 θ̇ ) +
2 r
Los momentos generalizados serán:
∂L
pr = = mr ṙ (8.23)
∂ṙ
∂L
pθ = = mr r2 θ̇ (8.24)
∂θ̇
(8.25)
8.6. El Problema de los dos cuerpos 315
p2φ
!
1 2 p2θ mr µ
H (r, θ, φ, pr , pθ , pφ ) = pr + 2 2
+ 2 −
2mr cos φr r r
R
p2φ p2φ
!
1 mr µ
O
H ( qr , q θ , q φ , pr , p φ , p θ ) = p2r + + − (8.26)
2mr cos2 φr2 r2 r
pr = ṙ D (8.27)
2
pθ = r θ̇ (8.28)
2 2
pφ = r cos φφ̇ (8.29)
qr = r (8.30)
A
qθ = θ (8.31)
qφ = φ (8.32)
RR
No había mucho que decir excepto preguntarse si existe algún sistema de co-
ordenadas y momentos { Q j }, { Pj } en el cuál el sistema tuviera una forma más
“simple”, más simétrica.
Como bien sabemos existen otras maneras de parametrizar el movimiento del
problema de los dos cuerpos. Por ejemplo, en el plano invariante de Laplace, en
BO
" 2 2 #
1 ∂S 1 ∂S mr µ ∂S
+ 2 − + =0
2mr ∂r r ∂θ r ∂t
R
∂Wθ
= P2 (8.33)
∂θ
O
2
∂Wr P mr µ
+ 22 = 2mr αt + (8.34)
∂r r r
(8.35)
D
Aquí podemos identificar ahora mas claramente el significado de P2 =
∂Wθ /∂θ = pθ = mr r2 θ̇ = mr h, es decir, no se trata de otra cosa sino del momentum
A
angular específico del sistema.
De modo que la función principal de Hamilton S para el problema de los dos
cuerpos se puede escribir en la forma:
RR
r
mr µ m2r h2
Z
S(r, θ, E, h) = − Et + mr hθ + dr 2mr E + − 2
r r
Podemos ahora deducir las variables generalizadas Q j que son constantes en el
nuevo sistema. La primera es Q1 que esta asociada a P1 = E:
BO
∂S
β 1 = Q1 = = −t + I1
∂E
Donde I1 puede escribirse como:
mr dr
Z
I1 = p
2mr ( E + mr µ/r ) − m2r h2 /r2
O equivalentemente:
mr dr
Z
t= p − β1
2mr ( E + mr µ/r ) − m2r h2 /r2
Por otro lado Q2 estará dada por:
∂S
β 2 ≡ Q2 = = mr h − mr h2 I2
∂P2
Donde I2 es:
8.6. El Problema de los dos cuerpos 317
mr dr
Z
I2 = q
r2 2mr ( E + mr µ/r ) − α2θ /r2
d2 u
1 1
+u = − 2 2 f
dθ 2 h u u
Qué sabemos tiene como solución una cónica que se puede escribir como:
R
r = a(1 − e cos E)
O
n(t + β 1 ) = E − e sin E
D
De aquí se sigue naturalmente que la constante β 1 es simplemente el tiempo de
paso por el periapsis.
Reemplazando las ecuaciones en la decinición de β 2 obtenemos un resultado
A
increible:
βθ = ω
RR
K ( Q1 , Q2 , P1 , P2 ) = 0 (8.36)
BO
mr µ
P1 = − (8.37)
2a q
P2 = mr h = mr µa(1 − e2 ) (8.38)
Q1 = − t0 (8.39)
Q2 = ω (8.40)
K ( Q1 , Q2 , Q3 , P1 , P2 , P3 ) = 0 (8.41)
mr µ
P1 = − (8.42)
2a
q
P2 = mr µa(1 − e2 ) (8.43)
q
P3 = mr µa(1 − e2 ) cos i (8.44)
Q1 = − t0 (8.45)
Q2 = ω (8.46)
Q3 = Ω (8.47)
(8.48)
R
En este conjunto de ecuaciones las coordenadas generalizadas son ángulos
(ω, Ω), excepto una Qr que es un tiempo. Nos preguntamos cuál es el conjunto
O
de variable tal que:
L=? (8.49)
G = P2 = mr
q
D µa(1 − e2 ) (8.50)
q
µa(1 − e2 ) cos i
A
H = P3 = mr (8.51)
l = n ( t + Q1 ) = n ( t − t0 ) (8.52)
g = Q2 = ω (8.53)
RR
h = Q3 = Ω (8.54)
(8.55)
Una función generatriz que puede dar cuenta de una transformación de este
tipo es:
BO
3µ
F2 ( Q1 , Q2 , Q3 , L, G, H, t) = nL − ( t + Q1 ) + Q2 G + Q3 H
2a
Donde se ha introducido el término −3µ/(2a) para simplificar la forma final
del momento L.
Usando las reglas de las transformaciones canónicas de tipo 2:
∂F2 3µ
P1 = = nL −
∂Q1 2a
√
Reemplazando Pr y despejando L obtenemos L = µa. El Hamiltoniano en
este conjunto de variables es:
∂F2
K D (l, g, h, L, G, H ) = K ( Q1 , Q2 , Q3 , P1 , P2 , P3 ) +
∂t
Con esto el Hamiltoniano del problema de los dos cuerpos en las variables de
Dalaunay queda:
8.6. El Problema de los dos cuerpos 319
µ2
KD = − 2 (8.56)
√ 2L
L = µa (8.57)
q
G = mr µa(1 − e2 ) (8.58)
q
H = mr µa(1 − e2 ) cos i (8.59)
l=M (8.60)
g=ω (8.61)
h=Ω (8.62)
(8.63)
R
En términos de los elementos orbitales tenemos que:
µ
O
αt = E = −
2a
Sabemos que D
∂S
pθ = = αθ
∂θ
De modo que
A
q
αθ = mr r2 θ̇ = mr h = mr µa(1 − e2 )
RR
BO
320 Chapter 8. El formalismo hamiltoniano
R
O
D
A
RR
BO
Bibliography
R
O
D
A
RR
BO
321