Braquistócrona en el campo gravitatorio no uniforme de la Tierra
La Tierra tiene una masa M y un radio a. Supondremos que una partícula de masa m parte del reposo desde una distancia r0>a al centro de la Tierra, tal como se muestra en la figura
Calcularemos la trayectoria que deberá seguir la partícula para que emplee un tiempo mínimo en llegar al punto P más cercano al superficie terrestre
Cuando la partícula se encuentra en B a una distancia r del centro de la Tierra, su velocidad v es
El tiempo que tarda en desplazarse entre desde A(r0,0) a B (r,θ) es
Expresamos , en coordenadas polares
x=rcosθ, y=rsinθ
dx=dr·cosθ-rsinθ·dθ, dy=dr·sinθ+rcosθ·dθ
El tiempo que tarda en desplazarse el móvil entre A y B expresado en coordendas polares es
Establecemos magnitudes adimensionales, de modo que R=r/a, g=GM/a2 y
Tenemos que buscar la función R=R(θ) que haga la funcional T(r) extremo. Dado que el integrando, la función
no depende de θ, la ecuación de Euler-Lagrange se escribe
Siendo c una constante a determinar por las condiciones de contorno. El signo adecuado es (-) ya que R disminuye con el ángulo θ
Trayectoria
El punto P, la distancia más cercana a la Tierra Rc (en unidades adimensionales) se obtiene derivando dR/dθ=0. La raíz real de la ecuación cúbica, cR0R3+R-R0=0
Las raíces de un polinomio se calculan mediante el comando roots de MATLAB, para una ecuación cúbica las raíces se puede calcular de forma exacta. Se ha creado una función raices_3, que calcula las raíces de la ecuación x3+ax2+bx+c=0. Si la ecuación, como es este el caso, tiene una raíz real y dos complejas conjugadas, la primera es la real
function x = raices_3(p) Q=(p(2)*p(2)-3*p(3))/9; R=(2*p(2)^3-9*p(2)*p(3)+27*p(4))/54; x=zeros(3,1); %reserva memoria para un vector de tres elementos if (R*R)<(Q^3) tetha=acos(R/sqrt(Q^3)); x(1)=-2*sqrt(Q)*cos(tetha/3)-p(2)/3; x(2)=-2*sqrt(Q)*cos((tetha+2*pi)/3)-p(2)/3; x(3)=-2*sqrt(Q)*cos((tetha-2*pi)/3)-p(2)/3; else A=-sign(R)*nthroot(abs(R)+sqrt(R*R-Q^3),3); if A==0 B=0; else B=Q/A; end x(1)=(A+B)-p(2)/3; x(2)=-(A+B)/2-p(2)/3+(sqrt(3)*(A-B)/2)*sqrt(-1); %mejor que i x(3)=-(A+B)/2-p(2)/3-(sqrt(3)*(A-B)/2)*sqrt(-1); end end
Llamamos a la función raices_3 para calcular la raíz real de la ecuación
R0=2; c=0.5; raiz=raices_3([1,0,1/(c*R0),-1/c]); Rc=raiz(1); display(Rc)
Rc = 1
Obtenemos la ecuación implícita de la trayectoria R=R(θ) en magnitudes adimensionales, integrando la ecuación diferencial de primer orden
Para R=Rc obtenemos la otra coordenada θc del punto P más cercano a la superficie de la Tierra
R0=2; c=0.5; raiz=raices_3([1,0,1/(c*R0),-1/c]); Rc=raiz(1); f=@(x) sqrt((R0-x)./(c*R0*x.^3+x-R0))./x; phi_c=integral(f,Rc,R0); display(phi_c)
phi_c = 0.6054
El integrando se hace infinito para el límite inferior R=Rc, sin embargo, MATLAB maneja adecuadamente este tipo de integral. Representamos el integrando en función de R
>> fplot(f,[Rc,R0]) >> line([Rc,Rc],[0,15],'linestyle','--') >> xlim([0,R0])
Dado el valor de la constante c obtenemos las coordendas de los puntos B(R,θ) por los que pasa la trayectoria en la que la partícula tarda un tiempo mínimo en desplazarse. En principio, es posible el problema inverso, dadas las coordenadas de un punto B calcular la constante c, resolviendo la ecuación trascendente, f(c)=0.
Sin embargo, la función fzero de MATLAB, o el procedimiento de Newton dan errores provocados por valores complejos de la integral cuando el parámetro c desconocido está fuera de cierto rango
Una vez alcanzada la posición de retorno P, la partícula se mueve siguiendo una trayectoria simétrica hasta que alcanza la distancia R0 en reposo haciendo un ángulo 2θc, tal como vemos en la figura al principio de esta página. Debido a la simetría, solamente es necesario calcular media trayectoria.
R0=2; c=0.5; raiz=raices_3([1,0,1/(c*R0),-1/c]); Rc=raiz(1); %trayectoria f=@(x) sqrt((R0-x)./(c*R0*x.^3+x-R0))./x; r=linspace(R0,Rc,100); phi=zeros(0,length(r)); i=1; for R=r phi(i)=integral(f,R,R0); i=i+1; end ang=[phi,2*phi(end)-fliplr(phi)]; rr=[r,fliplr(r)]; x=rr.*sin(ang); y=rr.*cos(ang); hold on plot(x,y); %punto P más cercano x=Rc*sin(phi(end)); y=Rc*cos(phi(end)); plot(x,y,'o','markersize',3,'markeredgecolor','r','markerfacecolor','r') line([0,x],[0,y], 'linestyle','--') %superficie de la Tierra fplot(@(t) cos(t),@(t) sin(t),[0,2*pi]) hold off grid on axis equal xlim([0,R0]) ylim([0,R0]) xlabel('x') ylabel('y') title('trayectoria de tiempo mínimo')
Tiempo de viaje
El tiempo (en unidades adimensionales) que tarda la partícula en viajar desde A(R0,0) a B(Rc,θc)
con
Tenemos que integrar
La siguiente porción de código, nos proporciona las coordendas del punto B(Rc,θc) de llegada y el tiempo T que tarda en desplazarse desde A(R0, 0) a B siguiendo la trayectoria que emplea un tiempo mínimo
R0=2; c=0.5; raiz=raices_3([1,0,1/(c*R0),-1/c]); Rc=raiz(1); f=@(x) sqrt((R0-x)./(c*R0*x.^3+x-R0))./x; phi_c=integral(f,Rc,R0); g=@(x) (x.^2)./sqrt((R0-x).*(c*R0*x.^3+x-R0)); T=integral(g,Rc,R0)*sqrt(c)*R0; disp([Rc; phi_c;T])
1.0000 0.6054 4.2099
El integrando se hace infinito en los dos límites de integración, pero el procedimiento integral de MATLAB consigue hallar su valor numérico, sin avisos ni errores
>> fplot(g,[Rc,R0]) >> xlim([0,R0]) >> line([Rc,Rc],[0,15],'linestyle','--')
Otras posibles trayectorias
Trayectoria rectilínea
Para que sirva de comparación, examinamos el tiempo que tarda la partícula en moverse desde el punto A(R0, 0) a B(Rc,θc) siguiendo una trayectoria rectilínea bajo la única acción de la fuerza de atracción
La ecuación de la recta que une dos puntos A y B es
Despejamos R y calculamos dR/dθ
Calculamos el tiempo T integrando por procedimientos numéricos
R0=2; c=0.5; raiz=raices_3([1,0,1/(c*R0),-1/c]); Rc=raiz(1); f=@(x) sqrt((R0-x)./(c*R0*x.^3+x-R0))./x; phi_c=integral(f,Rc,R0); g=@(x) 1./(((Rc*sin(phi_c-x)+R0*sin(x)).^2).* sqrt(Rc*sin(phi_c-x)+R0*sin(x)-Rc*sin(phi_c))); T=integral(g,0,phi_c)*sqrt((Rc^2+R0^2-2*R0*Rc*cos(phi_c))* R0^3*Rc^3*sin(phi_c)^3); disp([Rc; phi_c;T])
1.0000 0.6054 4.4124
Tarda un tiempo de 4.41 en recorrer la trayectoria rectilínea, mayor que tiempo mínimo 4.21 calculado en el apartado precedente
Caída del cuerpo
Finalizamos, comparando con el tiempo que tarda la partícula en caer radialmente desde la distancia R0 a la distancia Rc partiendo del reposo. En la página titulada, Movimiento de dos cuerpos bajo la fuerza de atracción mutua, estudiamos esta situación, llegando a la expresión
Establecemos las mismas magnitudes adimensionales, de modo que R=r/a, g=GM/a2 y , siendo a el radio de la Tierra
R0=2; c=0.5; raiz=raices_3([1,0,1/(c*R0),-1/c]); Rc=raiz(1); T=R0^(3/2)*(acos(sqrt(Rc/R0))+sqrt(Rc/R0)*sqrt(1-Rc/R0)); disp(T)
3.6357
Referencias
Bani Singh, Raive Kumar. Brachistochrone problem in nonuniform gravity. Indian J. pure appl. Math. 19 (6): 575-585, June 1988