Líneas geodésicas

Supongamos la superficie

{ x=x(u,v) y=y(u,v) z=z(u,v)

La longitud de la línea que une dos puntos A y B y que está contenida en dicha superficie es

L= A B ds = A B d x 2 +d y 2 +d z 2 dx= x u du+ x v dv,dy= y u du+ y v dv,dz= z u du+ z v dv d x 2 = ( x u ) 2 d u 2 + ( x v ) 2 d v 2 +2 x u x v dudv d y 2 = ( y u ) 2 d u 2 + ( y v ) 2 d v 2 +2 y u y v dudv d z 2 = ( z u ) 2 d u 2 + ( z v ) 2 d v 2 +2 z u z v dudv L= A B [ ( x u ) 2 + ( y u ) 2 + ( z u ) 2 ]d u 2 +[ ( x v ) 2 + ( y v ) 2 + ( z v ) 2 ]d v 2 +2[ x u x v + y u y v + z u z v ]dudv L= A B P+R ( dv du ) 2 +2Q dv du ·du= A B P+R v ˙ 2 +2Q v ˙ ·du

Emplemos el cálculo de variaciones para determinar la curva que pasa por los puntos A y B contenida en dicha superficie y cuya longitud L sea mínima. Vamos a considerar dos casos particulares:

  1. P y R son funciones de u y Q=0

  2. La función integrando, f(u, v ˙ ) , no depende de v. La ecuación de Euler-Lagrange se escribe

    f v ˙ = c 1 R v ˙ P+R v ˙ 2 = c 1 R 2 ( dv du ) 2 = c 1 2 ( P+R ( dv du ) 2 ) v= c 1 P R 2 c 1 2 R du + c 2

  3. P y R son funciones de v y Q=0

  4. La función integrando, f(v, v ˙ ) , no depende de u. La ecuación de Euler-Lagrange se escribe

    f f v ˙ v ˙ = c 1 P+R v ˙ 2 R v ˙ 2 P+R v ˙ 2 = c 1 P 2 P c 1 2 =R ( dv du ) 2 u= c 1 R P 2 c 1 2 P dv + c 2

Superficie esférica

La ecuación de una superficie esférica de radio r es

{ x=rcosφsinθ y=rsinφsinθ z=rcosθ

Para esta superficie, u es φ y v es θ

P= ( x φ ) 2 + ( y φ ) 2 + ( z φ ) 2 = r 2 sin 2 φ sin 2 θ+ r 2 cos 2 φ sin 2 θ= r 2 sin 2 θ R= ( x θ ) 2 + ( y θ ) 2 + ( z θ ) 2 = r 2 cos 2 φ cos 2 θ+ r 2 sin 2 φ cos 2 θ+ r 2 sin 2 θ= r 2 Q= x φ x θ + y φ y θ + z φ z θ = r 2 sinφsinθ·cosφcosθ+ r 2 cosφsinθ·sinφcosθ=0

La longitud de la línea que une dos puntos A y B de la superficie esférica y que está contenida en dicha superficie es

L=r A B sin 2 θ+ ( dθ dφ ) 2 ·dφ

Q=0, P y R son funciones de v=θ. Estamos en el segundo caso con u=φ

φ= c 1 R P 2 c 1 2 P dθ + c 2

Resolvemos la integral

c 1 1 r 2 sin 4 θ c 1 2 sin 2 θ dθ = 1 sin 2 θ ( r c 1 ) 2 1 sin 2 θ dθ = 1 sin 2 θ ( r c 1 ) 2 sin 2 θ+ cos 2 θ sin 2 θ dθ = 1 sin 2 θ ( ( r c 1 ) 2 1 ) cos 2 θ sin 2 θ dθ = dw ( ( r c 1 ) 2 1 ) w 2 = arcsin( w ( ( r c 1 ) 2 1 ) )=arcsin( cotθ ( ( r c 1 ) 2 1 ) )

Obtenemos la ecuación del plano que pasa por dos puntos y el origen. Su intersección con la superficie esférica de radio r es una circunferencia máxima

φ=arcsin cotθ c 3 + c 2 sin( c 2 φ ) cosθ sinθ c 3 =0 sin c 2 ·r·sinθcosφcos c 2 ·rsinθsinφ rcosθ c 3 =0 xsin c 2 ycos c 2 z c 3 =0 sinA·xcosA·yBz=0

Elegimos dos puntos de la superficie esférica de radio unidad, r=1, especificando sus ángulos (φ, θ).

P 1 { x 1 =cos φ 1 sin θ 1 y 1 =sin φ 1 sin θ 1 z 1 =cos θ 1 P 2 { x 2 =cos φ 2 sin θ 2 y 2 =sin φ 2 sin θ 2 z 2 =cos θ 2

Determinamos la ecuación del plano que pasa por el origen y por los puntos P1 y P2.

{ sinA· x 1 cosA· y 1 B· z 1 =0 sinA· x 2 cosA· y 2 B· z 2 =0 A=arctan( y 1 z 2 y 2 z 1 x 1 z 2 x 2 z 1 ) B= sinA· x 1 cosA· y 1 z 1

Para trazar la circunferencia máxima, en la ecuación del plano, sustituimos x, y, z en coordenadas polares de radio r=1

sinA·xcosA·yBz=0 sinA·cosφsinθcosA·sinφsinθBcosθ=0 sinθ( sinA·cosφcosA·sinφ )=Bcosθ tanθ= B sin(Aφ)

Damos valores a φ entre 0 y 2π, obtenemos el ángulo θ, dibujamos el punto de coordenadas (φ,θ), unimos los puntos para trazar la circunferencia máxima que pasa por P1 y P2

Ejemplo

phi=linspace(0,pi,30);
theta=linspace(0,2*pi,40);
[phi,theta]=meshgrid(phi,theta);
x=sin(phi).*cos(theta);
y=sin(phi).*sin(theta);
z=cos(phi);
hold on
h1=mesh(x,y,z);
set(h1,'EdgeColor',[0.6,0.6,0.6]);

%punto P1
th=pi/4;
phi=0;
x1=cos(phi)*sin(th);
y1=sin(phi)*sin(th);
z1=cos(th);
plot3(x1,y1,z1,'o','markersize',4,'markeredgecolor','b','markerfacecolor','b')

%punto P2
th=pi/2;
phi=pi/2;
x2=cos(phi)*sin(th);
y2=sin(phi)*sin(th);
z2=cos(th);
plot3(x2,y2,z2,'o','markersize',4,'markeredgecolor','b','markerfacecolor','b')

%plano
A=atan2((y1*z2-y2*z1),(x1*z2-x2*z1));
B=(x1*sin(A)-y1*cos(A))/z1;
[x,y] = meshgrid(-1:0.1:1);
z = (x*sin(A)-y*cos(A))/B;
mesh(x,y,z)

%geodésica
phi=(0:360)*pi/180;
th=atan2(B,sin(A-phi));
plot3(cos(phi).*sin(th),sin(phi).*sin(th),cos(th), 'r','lineWidth',1.5)

axis equal
axis off
view(100,5)
hold off
xlabel('x'); ylabel('y'); zlabel('z')
title('Superficie esférica')

En la figura, vemos los dos puntos en color azul, el plano que pasa por los dos puntos y el origen y su intersección con la superficie esférica de radio unidad, línea gruesa de color rojo

Eliminaremos el plano y dibujaremos los puntos P1 y P2 y la circunferencia que pasa por dichos puntos

Los caso particulares más simples se producen cuando los puntos P1 y P2 están en el mismo meridiano φ=0, la circunferencia máxima es el meridiano. O cuando ambos están en el ecuador, θ=π/2

Otro caso particular, se produce cuando los P1 y P2 están alineados con el origen. P1 y P2 son antípodas. Hay infinitas circunferencias máximas que pasan por los dos puntos

phi=linspace(0,pi,30);
theta=linspace(0,2*pi,40);
[phi,theta]=meshgrid(phi,theta);
x=sin(phi).*cos(theta);
y=sin(phi).*sin(theta);
z=cos(phi);
hold on
h1=mesh(x,y,z);
set(h1,'EdgeColor',[0.6,0.6,0.6]);

%punto P1
th=pi/4;
phi=0;
x1=cos(phi)*sin(th);
y1=sin(phi)*sin(th);
z1=cos(th);
plot3(x1,y1,z1,'o','markersize',4,'markeredgecolor','b','markerfacecolor','b')

%punto P2
th=3*pi/4;
phi=pi;
x2=cos(phi)*sin(th);
y2=sin(phi)*sin(th);
z2=cos(th);
plot3(x2,y2,z2,'o','markersize',4,'markeredgecolor','b','markerfacecolor','b')

%plano
A=atan2((y1*z2-y2*z1),(x1*z2-x2*z1));
B=(x1*sin(A)-y1*cos(A))/z1;
%circunferencia máxima
phi=(0:360)*pi/180;
th=atan2(B,sin(A-phi));
plot3(cos(phi).*sin(th),sin(phi).*sin(th),cos(th), 'r','lineWidth',1.5)

axis equal
axis off
view(100,5)
hold off
xlabel('x'); ylabel('y'); zlabel('z')
title('Superficie esférica')

Longitud del arco que une dos puntos

Los vectores que unen el origen con los puntos P1 y P2 de la superficie esférica, son

O P 1 =cos φ 1 sin θ 1 · i ^ +sin φ 1 sin θ 1 · j ^ +cos θ 1 · k ^ O P 2 =cos φ 2 sin θ 2 · i ^ +sin φ 2 sin θ 2 · j ^ +cos θ 2 · k ^

El producto escalar de estos dos vectores de módulo unidad es

O P 1 · O P 2 =cosα=sin θ 1 sin θ 2 cos( φ 1 φ 2 )+cos θ 1 cos θ 2

Conocido el ángulo α, la longitud del arco es s=Rα. Siendo R el radio de la superficie terrestre

Superficie cilíndrica

La ecuación de una superficie lateral cilíndrica de radio r es

{ x=rcosφ y=rsinφ z=z

Para esta superficie, u es z y v es φ

P= ( x z ) 2 + ( y z ) 2 + ( z z ) 2 =1 R= ( x φ ) 2 + ( y φ ) 2 + ( z φ ) 2 = r 2 sin 2 φ+ r 2 cos 2 φ= r 2 Q= x z x φ + y z y φ + z z z φ =0

La longitud de la línea que une dos puntos A y B de la superficie lateral cilíndrica y que está contenida en dicha superficie es

L= A B 1+ r 2 ( dθ dz ) 2 ·dz

Q=0, P y R no son funciones de v=φ. Estamos en el primer caso con u=z

φ= c 1 1 r 2 c 1 2 r dz + c 2 φ= c 3 z+ c 2

Dados dos puntos P1 y P2 de la superficie lateral cilíndrica, calculamos las constantes c2 y c3. Dibujamos una superficie cilíndrica de radio r=1 y la espiral φ=0.05z

r=1*ones(30,1);
phi=linspace(0,2*pi,30);
[r,phi]=meshgrid(r,phi);
x=r.*cos(phi);
y=r.*sin(phi);
z=repmat(linspace(0,2,30),30,1);
hold on
surfl(x,y,z);
shading interp
colormap(gray);
%espiral
th=(0:10:6*360)*pi/180;
plot3(cos(th),sin(th),0.05*th, 'r','lineWidth',1.5) 

hold off
axis equal
axis off
xlabel('x'); ylabel('y'); zlabel('z')
title('Superficie cilíndrica')
view(60,15)

Superficie cónica

La ecuación de una superficie cónica de ángulo α es

{ x=rsinαcosφ y=rsinαsinφ z=rcosα

Para esta superficie, u es r y v es φ

P= ( x r ) 2 + ( y r ) 2 + ( z r ) 2 = sin 2 α cos 2 φ+ sin 2 α sin 2 φ+ cos 2 α=1 R= ( x φ ) 2 + ( y φ ) 2 + ( z φ ) 2 = r 2 sin 2 φ sin 2 α+ r 2 cos 2 φ sin 2 α= r 2 sin 2 α Q= x r x φ + y r y φ + z r z φ =sinαcosφ·rsinαsinφ+sinαsinφ·rsinαcosφ=0

La longitud de la línea que une dos puntos A y B de la superficie cónica y que está contenida en dicha superficie es

L= A B 1+ r 2 sin 2 α ( dφ dr ) 2 ·dr

Q=0, P y R no son funciones de v=φ. Estamos en el primer caso con u=r

φ= c 1 1 r 4 sin 4 α c 1 2 r 2 sin 2 α dr + c 2

Resolvemos la integral haciendo el cambio de variable, s=rsinα/c1

dr rsinα r 2 sin 2 α c 1 2 1 = 1 sinα ds s s 2 1

Hacemos el cambio, s=sect, s=1/cost, ds=sint/cos2t

1 sinα dt = 1 sinα t

Deshacemos los cambios y despejamos r

1 sinα arcsec(s) φ= 1 sinα arcsec( rsinα c 1 ) c 2 rsinα c 1 = 1 cos( φsinα+ c 2 ) r= c 1 sinα·cos( φsinα+ c 2 )

Para una geodésica que pase por los puntos P1 (φ1=0, r1) y P2 (φ2, r2), las constantes c1 y c2, valen

r 1 = c 1 sinα·cos c 2 r 2 = c 1 sinα·cos( φ 2 sinα+ c 2 ) r 1 r 2 = cos( φ 2 sinα+ c 2 ) cos c 2 tan c 2 = cos( φ 2 sinα ) r 1 r 2 sin( φ 2 sinα ) c 1 = r 1 sinα·cos c 2

Ejemplo

alfa=pi/3;
r=linspace(0,1,30);
phi=linspace(0,2*pi,30);
[r,phi]=meshgrid(r,phi);
x=r.*cos(phi)*sin(alfa);
y=r.*sin(phi)*sin(alfa);
z=r*cos(alfa);
hold on
surfl(x,y,z);
shading interp
colormap(gray);

%puntos
r1=1;
r2=1;
th_2=5*pi/6;
c2=atan2((cos(th_2*sin(alfa))-r1/r2),sin(th_2*sin(alfa)));
c1=sin(alfa)*cos(c2)*r1;
%geodésica
th=linspace(0,th_2,100);
r=c1./(sin(alfa)*cos(th*sin(alfa)+c2));
x=r.*cos(th)*sin(alfa);
y=r.*sin(th)*sin(alfa);
z=r*cos(alfa);
plot3(x,y,z,'r','lineWidth',1.5)
hold off
axis off
xlabel('x'); ylabel('y'); zlabel('z')
title('Superficie cónica')
view(47,50)

Comprobamos que para obtener la geodésica, el ángulo φ2<π/sinα. Si disminuimos el ángulo α del cono podemos aumentar el ángulo φ2 por encima de 2π, como en este ejemplo

Referencias

J Villanueva. Geodesics on surfaces by Variational Calculus. Florida Memorial University, Miami