You are on page 1of 11

Fsica Computacional, Grupo 8232. Semestre 2016-I.

Anlisis Numrico aplicado al Problema de Kepler y la precesin del


perihelio de Mercurio.
Ana Ximena Monroy Romero, Omar Elas Velasco Castillo.
10 de diciembre de 2015
Resumen
El objetivo del proyecto es utilizar las herramientas del anlisis numrico y de las tcnicas de programacin
computacional para el estudio y el clculo de las rbitas de ciertos cuerpos regidos por la Mecnica Celeste. Como
se hall a la hora del desarrollo de este trabajo, la solucin de ecuaciones diferenciales ordinarias normalmente
estudiada en los cursos de anlisis numrico llega a tomar formas ms sofisticadas en su planteamiento con este
tipo de problemas. As pues, se discuten ciertas de ellas y se compara su proximidad.

1.

Problema de Kepler.

El desarrollo de este trabajo comienza con la revisin del problema de Kepler, revisado en la Mecnica Celeste.
Considrese el problema de Kepler para el cual un cuerpo celeste pequeo (puede tratarse de un planeta, satlite
natural o un cometa) orbita alrededor de otro cuerpo de masa mucho mayor (el Sol). Para el primer caso, tmese
el modelo copernicano para el cual se fija un sistema coordenado con el Sol en el origen. Por el momento, conviene
considerar nicamente la fuerza debida a la interaccin gravitacional entre el planeta y el Sol, despreciando as otro
tipo de fuerzas (por ejemplo, fuerzas de marea debido a otros cuerpos, el viento solar, etc.).
Entonces, se tiene que la fuerza gravitacional (atractiva, con signo menos) actuando sobre el planeta es:
FG =

GmM
GmM
ur =
r
|r|2
|r|3

(1)

con r la posicin en el sistema coordenado del planeta, ur un vector unitario en esa direccin ur = (cos , sin ); m
su masa, M = 1,99 1030 kg la masa del Sol y la constante G = 6,67 1011 m3 /kg s2 la constante de gravitacin
universal.
Ahora bien, las unidades convenientes de distancia y tiempo para este problema deben ser las ms convenientes,
no deben tomarse pues las unidades en MKS. Como unidad de distancia se optar por emplear la unidad astronmica (UA; 1 UA 1,5 1011 m), lo cual equivale a la distancia media entre el Sol y la Tierra. Por otro lado,
como unidad de tiempo se tomar el ao astronmico (ao UA= 3,2 107 s; que es el periodo de traslacin de una
rbita circular con radio igual a 1 UA). Se pedir tambin tomar al planeta como la Tierra, con masa m 61024 kg.
Para completar nuestro sistema de unidades se debe tambin de ocupar una unidad de masa correspondiente. Esto
se puede obtener fcilmente considerando el problema de la rbita como un movimiento circular uniforme (debido a
la excentricidad de la Tierra de e = 0,0167). Para un movimiento de tal tipo, se tiene que la fuerza completa debe
ser igual a la centrpeta:
GmM
mv 2
= Fcent = FG =
r
r2
con v la rapidez media de la Tierra. Despejando adecuadamente, se obtiene:
GM = v 2 r = 4 2 UA3 /ao2

(2)

donde se ha utilizado el hecho de que la velocidad de la Tierra es igual a 2r/(1 ao) = 2(1 UA)/(1 ao)
2 UA/ao

Fsica Computacional, Grupo 8232. Semestre 2016-I.

Regresando al planteamiento inicial para la fuerza que rige a la rbita del planeta, se elige a la Tierra y se considera
que como la masa del Sol es lo suficientemente grande, el propio movimiento de ste es despreciable. Nuestra meta
ser pues calcular la posicin de la Tierra como funcin del tiempo.
Por la segunda ley de Newton se tiene:
FGx
d2 x
=
dt2
m

donde FGx y FGx

(3)

FGy
d2 y
=
dt2
m
son las componentes x y y de la fuerza FG definida en (1).

De la Figura 1 se tiene que:


FGx =

GmM
GmM x
cos =
r2
r3

FGy =

GmM
GmM y
sin =
2
r
r3

(4)

Figura 1: Sistema coordenado utilizado para describir el movimiento de la Tierra orbitando alrededor del Sol. El Sol se sita en el
origen y la Tierra est localizada en las coordenadas (x, y).

Buscando escribir de (3) y (4) cada una de las ecuaciones diferenciales de segundo orden como dos ecuaciones de
primer orden:
dvx
GM x
=
dt
r3

(5)

dx
= vx
dt
dvy
GM y
=
dt
r3
dy
= vy
dt

Fsica Computacional, Grupo 8232. Semestre 2016-I.

Ahora, se busca convertir las ecuaciones de movimiento dadas en (5) en ecuaciones de diferencias para construir una
solucin computacional. Se tiene pues que, bajo el mtodo de Euler para resolver ecuaciones diferenciales y nuestro
sistema de unidades indicado por (4), las soluciones se ven como:
vx,i+1 = vx,i

4 2 xi
t
ri3

(6)

xi+1 = xi + vx,i+1 t
vy,i+1 = vy,i

4 2 yi
t
ri3

yi+1 = yi + vy,i+1 t
Este problema est pues ya resuelto para la consideracin del movimiento de la Tierra como un movimiento circular
uniforme con rapidez media dada y recordando su excentricidad cercana al 0. Se piensa que esta es una muy buena
aproximacin, ya que segn datos de archivo del 2013, el afelio de la Tierra se hallaba a 152 millones de kilmetros, mientras que su perihelio a 147 millones de kilmetros; con lo cual se tiene una diferencia entre distancia de
extremo a foco entre ambos puntos de poco ms del 3 %, haciendo que la idea de tomar la rbita como circular con
una cierta rapidez media para este caso no presente complicaciones.
El programa fuente keplertierra.f90 muestra un cdigo que resuelve para la rbita terrestre tomando:
x0 = 1 UA
y0 = 0
V0x = 0
V0y = 2 UA/ao
La velocidad transversal inicial en x es cero, porque se piensa que la Tierra empieza a orbitar hacia un sentido y
para eso no debe desplazarse en direccin de la lnea del Sol. La componente y de la velocidad inicial es la que har
las veces para la velocidad inicial de la Tierra, ya que es la necesaria para que comience a orbitar en direccin levgira.
Se grafica para un tiempo total de 1 ao astronmico (ao UA), utilizando como intervalo de tiempo entre posicin
y posicin la aproximacin genrica del ao terrestre: 365 das para el ao entero.
Textualmente, el programa es el siguiente:
program keplercirc
implicit none
integer :: i, year
real(kind=8) :: x, y, Vx, Vy, t, day, r, pi, k
!Dia=1ao/365
day = 1./365.
!1ao=365dias
year = 365.
pi= 4.*atan(1.)
k = 4.*pi**2
x=1. ! 1 UA, x0 inicial Tierra
y=0. ! y0=0 inicial Tierra
Vx=0.
Vy=2.*pi ! Rapidez media Tierra, 2pi*r/T=2pi*1UA/1ao=2pi
open(unit=1,file="kepler.dat")
!Posicion inicial
write(1,*) x, y
3

Fsica Computacional, Grupo 8232. Semestre 2016-I.

!Loop dia por dia hasta que se cumpla el ao de la rotacion terrestre, se grafica para 365 puntos
do i=1,year
! Contador de dias
t=i*day
! Radio de distancia Tierra-Sol para cada punto
r=sqrt(x**2+y**2)
! Velocidades en x y y
Vx=Vx-(k*day*x)/r**3
Vy=Vy-(k*day*y)/r**3
!Nuevas posiciones en x y y
x=x+Vx*day
y=y+Vy*day
write(1,*) x, y
end do
end program keplercirc
Para ese tiempo total de 365 das aproximados, se obtiene en GNUPlot la siguiente grfica:

Figura 2: rbita circular para la Tierra alrededor del Sol, tomando el periodo de revolucin total como el ao astronmico UA.

Fsica Computacional, Grupo 8232. Semestre 2016-I.

2.

Precesin del Perihelio de Mercurio

Como se puede revisar de datos de archivo, la mayora de los planetas dentro del Sistema Solar tienen rbitas muy
cercanas a las circulares. Un planeta cuya rbita se desva ms del tener una circunferencia describiendo su trayectoria es Mercurio. En su caso, era conocido por inicios del siglo XIX que la orientacin de los ejes de la elipse que
describe su rbita rota con el tiempo. A este fenmeno se le conoce como la precesin del perihelio de Mercurio,
donde se entiende por perihelio como el punto sobre la rbita donde el planeta est ms cercano al Sol.
La magnitud de esta precesin es de aproximadamente 566 segundos de arco por siglo. Un segundo de arco equivale
a 1/3600 de un grado. De manera que su perihelio realiza una rotacin completa cada 230 mil aos.

Figura 3: Precesin del perihelio en la rbita de Mercurio. Para un tiempo de 2 siglos, es prcticamente 2 grados sexagesimales.
La precesin debida a otros objetos calculada para el siglo XIX daba como resultado 523 segundos de arco por siglo.
Mientras que ambas estimaciones, experimental y terica resultaban impresionantes, aun quedaba esclarecer el por
qu no coincidan. Sera hasta 1917 cuando Albert Einstein mostrara con la relatividad general que para objetos
demasiado cercanos, se presentan unas desviaciones sobre la ley de gravitacin universal que va como el inverso del
cuadrado de las distancias.
Einstein mostr que la cercana del Sol con Mercurio lograba que dichas desviaciones fueran significativas y que de
ellas salan los 43 segundos de arco de precesin de diferencia entre ambas observaciones.
La precesin debida a relatividad general puede ser calculada analticamente. Sin embargo, mediante un modelado
adecuado y no tan rebuscado con mtodos numricos se puede hallar una simulacin de la rbita para Mercurio
(utilizando la fuerza que predice relatividad general y midiendo cmo va cambiando la tasa de precesin de esa
rbita). Sin embargo, los parmetros que describan esa rbita deben ser los adecuados, puesto que la simulacin
debe ser cualitativamente mucho mayor que en escalas de segundos de arco.
La fuerza predicha por relatividad general que rige el comportamiento de la rbita de Mercurio viene dada por:
FG =
donde se ve que el trmino


GM MM 
1
+
r2
r2

(7)



= 1+ 2
r

contiene un trmino de perturbacin extra de la ley de gravitacin universal de Newton, que va como 1/r4 .
Los efectos debidos a esta desviacin son minscuslos para que puedan ser medidos con facilidad por una simulacin
que sea enteramente apegada al valor terico para el parmetro , que es = 1,1 108 . La aproximacin que se
tomar aqu ser para valores mucho ms grandes de este parmetro.
Se pueden tomar los valores tericos de la rbita elptica de Mercurio alrededor del sol, donde la longitud de su
semieje mayor es de a = 0,39 UA y un valor de rapidez media en el punto donde se encuentra su afelio como
v = 8,2 UA/ ao. Y as recrear mediante algunos programas fuente cmo se vera la rbita desviada por la precesin
como los de a continuacin.

Fsica Computacional, Grupo 8232. Semestre 2016-I.

Programa con mtodo de Euler


program precesion_mercurio
!abrimos archivos
open(1,file=tiempo_posicion.dat,status=replace)
open(2,file=posicion.dat,status=replace)
!nmero de puntos
n=30000

!definimos constantes
pi=4.*atan(1.)
!paso en aos
h=0.00005
!condiciones iniciales
!posicion en UA
x=0.39
y=0.
t=0.
!velocidad en UA/ao
v_x=0.
v_y=8.2
!valor de la perturbacin
alpha=0.00000001
do i=1,n
!va aumentando el tiempo
t=t+i*h
!calculamos el radio
radio=sqrt((x*x)+(y*y))
!el factor de relatividad
factor=1+(alpha/(radio*radio))
!calculamos los valores de las ecuaciones en y con Runge Kutta
y=y+1*v_y*h
v_y=v_y-(1*(4*pi*pi*y*h)*factor/(radio**3))
!calculamos para las ecuaciones en x con Runge Kutta
x=x+1*v_x*h
v_x=v_x-(1*(4*pi*pi*x*h)*factor/(radio**3))
write(1,*) t, x , y
write(2,*) x, y
end do
end

Fsica Computacional, Grupo 8232. Semestre 2016-I.

Figura 4: rbitas con precesin para los casos que indican los ttulos de las grficas, utilizando el mtodo de Euler.

Programa con mtodo de Runge-Kutta de orden 2


program precesion_mercurio
real :: k1,k2,k5,k6,j1,j2,j5,j6,x,y,v_x,v_y,h,alpha,factor
!abrimos archivos
open(1,file=tiempo_posicionRK2.dat,status=replace)
open(2,file=posicionRK2.dat,status=replace)
!nmero de puntos
n=85000
!n=10
!definimos constantes
pi=4.*atan(1.)

Fsica Computacional, Grupo 8232. Semestre 2016-I.

!paso en aos
h=0.0001
!condiciones iniciales
!posicion en AU
x=0.39
y=0
t=0
!velocidad en AU/ao
v_x=0
v_y=8.2
!valor de la perturbacin
alpha=0.0008
!alpha=0.01

do i=1,n
!va aumentando el tiempo
t=t+i*h
!calculamos el radio
radio=sqrt((x*x)+(y*y))
!el factor de relatividad
factor=1+(alpha/(radio*radio))
!calculamos para la velocidad en x con RK orden 2
k1=h*(-4*pi*pi*x*factor/radio)
k2=h*(-4*pi*pi*(x+(k1))*factor/radio)

v_x=v_x+0.5*(k1+k2)
!write(*,*) x,h,t,k1,k2,k3,k4
!write(*,*) factor,radio,k1, -(4*pi*pi*x*factor/radio)*h
!calculamos para la posicion en x con RK orden 2
k5=h*(v_x)
k6=h*(v_x+(k5))

x=x+0.5*(k5+k6)
!calculamos para la velocidad en y con RK orden 2
j1=h*(-4*pi*pi*y*factor/radio)
j2=h*(-4*pi*pi*(y+(j1))*factor/radio)
v_y=v_y+0.5*(j1+j2)
!calculamos para la posicion en x con RK orden 2
j5=h*(v_y)

Fsica Computacional, Grupo 8232. Semestre 2016-I.

j6=h*(v_y+(j5))
y=y+0.5*(j5+j6)
!!calculamos los valores de las ecuaciones en y con Runge Kutta orden 4
!y=y+0.5*v_y*h
!v_y=v_y-(0.5*(4*pi*pi*y*h)*factor/(radio**3))!
!!calculamos para las ecuaciones en x con Runge Kutta
!x=x+0.5*v_x*h
!v_x=v_x-(0.5*(4*pi*pi*x*h)*factor/(radio**3))!
write(1,*) t, x, y
write(2,*) x, y
end do
end

Figura 5: rbitas con precesin para los casos que indican los ttulos de las grficas, utilizando el mtodo de Runge-Kutta de orden 2.

Programa con mtodo de Runge-Kutta de orden 4


program precesion_mercurio
real :: k1,k2,k3,k4,k5,k6,k7,k8,j1,j2,j3,j4,j5,j6,j7,j8,x,y,v_x,v_y,h,alpha,factor
!abrimos archivos
open(1,file=tiempo_posicionRK4.dat,status=replace)
open(2,file=posicionRK4.dat,status=replace)
!nmero de puntos
n=85000
9

Fsica Computacional, Grupo 8232. Semestre 2016-I.

!n=10
!definimos constantes
pi=4.*atan(1.)
!paso en aos
h=0.0001
!condiciones iniciales
!posicion en AU
x=0.47
y=0
t=0
!velocidad en AU/ao
v_x=0
v_y=8.2
!valor de la perturbacin
alpha=0.0008

do i=1,n
!va aumentando el tiempo
t=t+i*h
!calculamos el radio
radio=sqrt((x*x)+(y*y))
!el factor de relatividad
factor=1+(alpha/(radio*radio))
!calculamos para la velocidad en x con RK orden 4
k1=h*(-4*pi*pi*x*factor/radio)
k2=h*(-4*pi*pi*(x+(k1/2))*factor/radio)
k3=h*(-4*pi*pi*(x+(k2/2))*factor/radio)
k4=h*(-4*pi*pi*(x+k3*factor/radio))
v_x=v_x+((k1+(k2*2)+(k3*2)+k4)/6)
!write(*,*) x,h,t,k1,k2,k3,k4
!write(*,*) factor,radio,k1, -(4*pi*pi*x*factor/radio)*h
!calculamos para la posicion en x con RK orden 4
k5=h*(v_x)
k6=h*(v_x+(k5/2))
k7=h*(v_x+(k6/2))
k8=h*(v_x+k7)
x=x+((k5+(k6*2)+(k7*2)+k8)/6)
!calculamos para la velocidad en y con RK orden 4
j1=h*(-4*pi*pi*y*factor/radio)
j2=h*(-4*pi*pi*(y+(j1/2))*factor/radio)
j3=h*(-4*pi*pi*(y+(j2/2))*factor/radio)

10

Fsica Computacional, Grupo 8232. Semestre 2016-I.

j4=h*(-4*pi*pi*(y+j3)*factor/radio)
v_y=v_y+((j1+(j2*2)+(j3*2)+j4)/6)
!calculamos para la posicion en x con RK orden 4
j5=h*(v_y)
j6=h*(v_y+(j5/2))
j7=h*(v_y+(j6/2))
j8=h*(v_y+j7)
y=y+((j5+(j6*2)+(j7*2)+j8)/6)
!!calculamos los valores de las ecuaciones en y con Runge Kutta orden 4
!y=y+0.5*v_y*h
!v_y=v_y-(0.5*(4*pi*pi*y*h)*factor/(radio**3))!
!!calculamos para las ecuaciones en x con Runge Kutta
!x=x+0.5*v_x*h
!v_x=v_x-(0.5*(4*pi*pi*x*h)*factor/(radio**3))!
write(1,*) t, x , y
write(2,*) x, y
end do
end

Figura 6: rbitas con precesin para los casos que indican los ttulos de las grficas, utilizando el mtodo de Runge-Kutta de orden 4.

11

You might also like