Trabajo Fin de Grado Visualización de Geodésicas

70
Universidad Politécnica de Madrid Escuela Técnica Superior de Ingenieros Informáticos Grado en Matemáticas e Informática Trabajo Fin de Grado Visualización de Geodésicas Autor: Roberto Martín Ferreras Tutor(a): Águeda Mata Hernández Madrid, Junio 2020

Transcript of Trabajo Fin de Grado Visualización de Geodésicas

Universidad Politécnicade Madrid

Escuela Técnica Superior deIngenieros Informáticos

Grado en Matemáticas e Informática

Trabajo Fin de Grado

Visualización de Geodésicas

Autor: Roberto Martín FerrerasTutor(a): Águeda Mata Hernández

Madrid, Junio 2020

Este Trabajo Fin de Grado se ha depositado en la ETSI Informáticos de laUniversidad Politécnica de Madrid para su defensa.

Trabajo Fin de GradoGrado en Matemáticas e Informática

Título: Visualización de Geodésicas

Junio 2020

Autor: Roberto Martín FerrerasTutor: Águeda Mata Hernández

Matemática AplicadaETSI InformáticosUniversidad Politécnica de Madrid

Resumen

El tema de este trabajo de fin de grado es el estudio de un algoritmo para visualizarcurvas geodésicas sobre superficies regulares.

Las geodésicas son curvas muy importantes en geometría y en física, pero las ecua-ciones diferenciales que las describen a menudo deben ser resueltas por métodosnuméricos. En este trabajo se propone el estudio y la implementación del métodopropuesto por Ingrid Hotz y Hans Hagen en su artículo «Visualizing geodesics», en elque se utiliza un enfoque geométrico para dibujar tales curvas.

Este algoritmo que se presenta, se basa en la visión de las curvas geodésicas comorectas en un entorno local de la superficie, ya que estas curvas al poseer la curvaturanecesaria, se perciben como rectas sobre la superficie.

La idea del trabajo consiste en una introducción donde se desarrollará un estudioprevio sobre conceptos de geometría diferencial que sean importantes de conocer pa-ra entender las curvas geodésicas.

Posteriormente, en el desarrollo, antes de hablar del algoritmo, se realizará un es-tudio sobre los conceptos geométricos y propiedades que involucran las curvas geo-désicas. Además, se presentará el algoritmo de visualización de geodésicas, donde sedetallará, la estimación del error local que involucra y la eficiencia computacional delmismo.

En el penúltimo capítulo de la memoria, se comentarán los resultados obtenidosy las conclusiones a las que se han llegado tras la implementación del algoritmo.

Finalmente, se expondrá el código del algoritmo desarrollado en Python.

i

Abstract

The subject of this end-of-degree paper is the study of an algorithm to visualize geo-detic curves on regular surfaces.

Geodesics are very important curves in geometry and physics, but the differentialequations that describe, often have to be solved by numerical methods. This paperproposes the study and implementation of the algorithm proposed by Ingrid Hotz andHans Hagen in their article "Visualizing geodesics", in which a geometric approach isused to draw these curves.

This algorithm is based on the vision of geodetic curves as straight lines in a lo-cal environment of the surface, because these curves have the necessary curvature,they are perceived as straight lines on the surface.

The idea of the work consists of an introduction, where a previous study on differen-tial geometry concepts that are important to know in order to understand geodesiccurves, will be developed.

Later, in the development, before talking about the algorithm, a study will be ma-de on the geometric concepts and properties involved in geodesic curves. In addition,the algorithm of geodesic visualization will be presented, where the estimation of thelocal error involved and its computational efficiency will be detailed.

Last but not least, the results obtained and the conclusions reached after the im-plementation of the algorithm will be discussed.

Finally, the code of the algorithm developed in Python, will be displayed.

iii

Tabla de contenidos

1. Introducción 11.1. Curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.1. Curva parametrizada . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.2. Velocidad, tangencia y vector aceleración . . . . . . . . . . . . . . . 31.1.3. Curva regular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.4. Función longitud de arco . . . . . . . . . . . . . . . . . . . . . . . . 31.1.5. Reparametrización de curvas . . . . . . . . . . . . . . . . . . . . . . 41.1.6. Aplicación de reparametrización . . . . . . . . . . . . . . . . . . . . 41.1.7. Reparametrizaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.8. Curvatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.1.8.1. Curvatura de una curva regular . . . . . . . . . . . . . . . 61.1.8.2. Curvatura de una curva con velocidad unitaria . . . . . . 71.1.8.3. Vector normal a una curva plana . . . . . . . . . . . . . . 71.1.8.4. Curvatura con signo de una curva plana . . . . . . . . . . 8

1.1.9. Teorema fundamental de curvas planas . . . . . . . . . . . . . . . 91.1.10.Curvas en el espacio . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.1.10.1.Triedro de Frenet . . . . . . . . . . . . . . . . . . . . . . . . 91.1.10.2.Torsión de curvas con velocidad unitaria . . . . . . . . . . 101.1.10.3.Torsión de curvas con parametrización arbitraria . . . . . 10

1.2. Superficies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2.1. Superficies parametrizadas . . . . . . . . . . . . . . . . . . . . . . . 111.2.2. Superficies regulares . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2.3. Superficies diferenciables . . . . . . . . . . . . . . . . . . . . . . . . 121.2.4. Superficies de nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.2.5. Reparametrización de superficies . . . . . . . . . . . . . . . . . . . 121.2.6. Plano Tangente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.6.1. Vectores tangentes a una superficie en un punto . . . . . 121.2.6.2. Plano tangente a una superficie . . . . . . . . . . . . . . . 131.2.6.3. Ecuaciones del plano tangente . . . . . . . . . . . . . . . . 131.2.6.4. El plano tangente es invariante por reparametrizaciones . 13

1.2.7. Primera forma fundamental . . . . . . . . . . . . . . . . . . . . . . 141.2.7.1. La primera forma fundamental es invariante por repara-

metrizaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 141.2.8. Longitud de arco de curva sobre superficies . . . . . . . . . . . . . 151.2.9. Ángulo entre curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.2.10.Curvatura normal de una superficie . . . . . . . . . . . . . . . . . 16

1.2.10.1.Vector unitario normal a una superficie en un punto . . . 161.2.10.2.Base de R

3 ampliada en cada punto de la superficie . . . 16

v

TABLA DE CONTENIDOS

1.2.10.3.Curvatura normal de una curva a una superficie . . . . . 171.2.11.Superficies orientadas . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.2.11.1.Símbolos de Christoffel de primera especie . . . . . . . . . 181.2.11.2.Símbolos de Christoffel de segunda especie . . . . . . . . 18

2. Desarrollo 192.1. Conceptos Geométricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1.1. Triedro de Darboux . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.1.2. Curvatura geodésica . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.1.3. Caracterización de geodésicas con velocidad constante . . . . . . . 232.1.4. Ecuación diferencial de una geodésica . . . . . . . . . . . . . . . . 242.1.5. Coordenadas polares geodésicas . . . . . . . . . . . . . . . . . . . . 252.1.6. Curvatura de Gauss en coordenadas polares geodésicas . . . . . . 26

2.2. Construcción geométrica de curvas geodésicas . . . . . . . . . . . . . . . 262.3. Algoritmo Visualización de Geodésicas . . . . . . . . . . . . . . . . . . . . 27

2.3.1. Entorno de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . 272.3.2. Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.3.2.1. Proyección . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.3.2.2. Estimación del error local . . . . . . . . . . . . . . . . . . . 32

3. Resultados y conclusiones 333.1. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.2. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.3. Eficiencia computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4. Líneas futuras 47

Bibliografía 52

Anexo 53.1. Código en python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

.1.1. Primera implementación . . . . . . . . . . . . . . . . . . . . . . . . 53

.1.2. Segunda implementación . . . . . . . . . . . . . . . . . . . . . . . . 56

vi

Índice de figuras

1.1. Figura 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2. Figura 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3. Figura 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4. Figura 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.5. Figura 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.6. Figura 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.7. Figura 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.8. Figura 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.1. Figura 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2. Figura 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.3. Figura 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.4. Figura 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.5. Figura 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.6. Figura 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.7. Figura 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.8. Figura 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.1. Figura 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.2. Figura 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.3. Figura 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.4. Figura 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.5. Figura 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.6. Figura 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.7. Figura 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.8. Figura 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.9. Figura 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.10.Figura 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.11.Figura 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.12.Figura 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.1. Figura 29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.2. Figura 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

vii

Capítulo 1

Introducción

Para la realización de este trabajo de fin de grado, en concreto el estudio previo sobrelos conceptos geométricos necesarios para la compresión de las curvas geodésicas,así como el estudio sobre las curvas geodésicas, sus propiedades, y los conceptosgeométricos que involucran, se han basado en el libro de "Geometría diferencial decurvas y superficies" cuyos autores son Águeda Mata Hernández y Miguel Reyes Cas-tro.

En esta introducción veremos que las geodésicas se comportan en la superficie comolas rectas en el espacio euclídeo y se expondrá la base matemática necesaria paraconocer las propiedades y el comportamiento de estas curvas.

Según la geometría euclidiana, "la recta se extiende en una misma dirección, existeen una única dimensión y contiene infinitos puntos, bastaría conocer solo dos puntospara que pase solo una recta por ellos"(postulado de Euclídes)[1]. La recta proporcio-na la distancia más corta entre dos puntos en el plano si se usa la norma euclídea.En este caso el camino más corto entre dos puntos x e y viene dada por:

|x− y| =√√√√ n∑

i=1

(xi − yi)2

[2]

Que coincide con la longitud del segmento que une los puntos x e y. Ahora bien,si existe la trayectoria mínima entre dos puntos en una superficie, esa trayectoriaes una curva geodésica, de ahí las aplicaciones que se le pueden dar en el mundoreal, como trazar cartas de navegación aéreas,y su importancia en la matemáticasy la física. Pero no siempre la geodésica nos marca la trayectoria mínima entre dospuntos en una superficie, por ejemplo:

1

1.1. Curvas

Figura 1.1: Obtenida con la herramienta Sage.

En este caso, la curva que une ambos puntos es una curva geodésica pero no esla mínima trayectoria entre ambos puntos. Solo en aquellas superficies que seancerradas y conexas se podrá asegurar la existencia del camino mínimo entre dospuntos.

Por definición, las curvas geodésicas son aquellas que tienen curvatura geodésicanula, además las geodésicas son curvas cuya curvatura coincide con el valor abso-luto de la curvatura normal, por lo que vistas desde la superficie se perciben comorectas. Más adelante veremos los conceptos de curvatura (k) y curvatura normal (kn)y curvatura geodésica (kg).

Por otro lado, el cálculo de estas curvas es complicado, ya que las ecuaciones que des-criben de forma general las curvas geodésicas,vienen dadas por ecuaciones diferen-ciales no lineales. Es por este motivo, que es necesario restringir dichas ecuacionesa unas condiciones específicas.

Antes de introducirnos en los cálculos de las curvas geodésicas, así como el algoritmode visualización de geodésicas propuesto en este trabajo, es necesario conocer conmás detalle todos estos conceptos geométricos.

Conceptos previos :

1.1. Curvas

Una curva es una trayectoria que describe un punto al moverse por el espacio amedida que transcurre el tiempo.

1.1.1. Curva parametrizada

Como hemos mencionado, si una curva va cambiado a lo largo de un tiempo t, existi-rán un par de funciones f y g, tal que x = f(t) y y = g(t). Cada valor de t nos proporcionaun punto (x,y) del plano, generando una curva[5].

Una curva parametrizada en Rn es una aplicación continua

2

Introducción

γ : (a,b) −→ Rn

donde (a,b) = {t∈ R : a<t<b}, -∞ �a<b� ∞.

1.1.2. Velocidad, tangencia y vector aceleración

Sea (I,γ) una curva parametrizada

• Se denomina vector velocidad de γ a la derivada de la curva en un determinadoinstante t.

Vector velocidad = −→γ ’(t).

Velocidad = ‖−→γ ’(t)‖.• Si la velocidad de γ no es nula en un determinado instante t, se denomina vectortangente en dicho instante al vector unitario (norma = 1):

Vector tangente =−→γ ′(t)

‖−→γ ′(t)‖• Se denomina vector aceleración de γ a la segunda derivada de la curva.

Vector aceleración =−→γ′′

1.1.3. Curva regular

Se dice que un punto t de una curva parametrizada γ : (a, b) −→ Rn es regular, si

−→γ′ (t) �= −→

0 .

Una curva regular es una curva parametrizada γ : (a, b) −→ Rn, en la que todos sus

puntos ti ∈ (a, b) son puntos regulares.

Observación: Toda curva con velocidad unitaria es una curva regular.

1.1.4. Función longitud de arco

La longitud de arco es la medida de la curva desde un punto t0 a t.

La función longitud de arco de la curva γ : (a,b)−→ Rn desde el punto t0∈(a,b) es

la función s : (a,b)−→ R definida por:

s(t) = Ltt0 (γ) =

∫ tt0‖−→γ ′(u)‖ du

Propiedad : La función longitud de curva es invariante por movimientos[4].

Φ(x) = Mx + b, con M∈ Rnxn, verificando que MTM = Id y γ : (a,b)−→ R

n una cur-va parametrizada, entonces si α = Φ ◦ γ, se verifica que:

Ltto(α) = Lt

to(γ)

Demostración:

Sea−→α′ = M

−→γ′ ⇒ ‖α′‖2 = ‖M−→

γ′‖2 =−→γ′TMTM

−→γ′ =

−→γ′T

−→γ′ = ‖−→γ ′‖2, luego

Ltt0 (α) =

∫ tt0‖−→α ′‖dv =

∫ tt0‖−→γ ′‖dv = Lt

t0 (γ)

3

1.1. Curvas

Ejemplo:

La función de longitud de arco de α : R −→ R2, t−→ α(t) = (a cos(t), a sin(t)), para

a>0, desde t0 = 0 , se calcularía del siguiente modo:

−→α′ = (-a sin(t), a cos(t)); ‖−→α′‖ = as(t) =

∫ tt0‖−→α′‖dt =

∫ t0a dt = at

1.1.5. Reparametrización de curvas

Dada la aplicación continua f : R2 −→ R y c∈ R, las curvas implícitas o de nivel son elconjunto de puntos de la forma:

C = {(x, y) ∈ R2 : f(x, y) = c}

Una curva parametrizada cuya imagen está contenida en una curva de nivel C, dire-mos que es una parametrización de C.

α : I∈ R −→ R2

Al variar el valor de la variable t∈I, la imagen α(t) nos describe los puntos de C.

Las curvas de nivel tienen distintas parametrizaciones.

Tanto el vector aceleración como el vector velocidad dependen de la parametrizaciónusada.

1.1.6. Aplicación de reparametrización

Observación: Una función f : (a,b) −→ R es suave si existen todas sus derivadas entodos los puntos del intervalo (a,b) y además son continuas.

Se dice que una aplicación h es una aplicación de reparametrización si cumple que es:

• Biyectiva• Suave• Su inversa h−1 también es suave

Observación: Sea h una aplicación de reparametrización entonces:

h−1 ◦ h = Id ⇒ h−1(h(t)) = t(h−1)′(s)h′(t) = 1 siendo s = h(t)

luego,h′(s) �= 0∀s ∈ I, esto implica que h′(s) puede ser:

•h’(s) >0 ∀s ∈ I, entonces la aplicación de reparametrización se dice que conservala orientación.

•h’(s) <0∀s ∈ I, entonces la aplicación de reparametrización se dice que cambia laorientación.

4

Introducción

1.1.7. Reparametrizaciones

Si existe una aplicación de reparametrización h : (c, d) −→ (a, b), tal que α = β ◦ h, sedice que la curva parametrizada α : (c, d) −→ R

n es reparametrización de otra curvaparametrizada β : (a, b) −→ R

n.

Al ser h aplicación de reparametrización es h′ �= 0, se abren dos escenarios, queh′ > 0 o que h′ < 0 que nos indica que h es creciente o decreciente en (c,d) respec-tivamente, luego h(c) y h(d) coinciden con los puntos inicial y final de β, aunque nonecesariamente en ese orden.

Si α es reparametrización de β ⇒ α(s) = β(h(s)), ∀s ∈ (c, d) ⇒ −→α ′(s) =−→β ′(h(s))h′(s)

En caso de que el signo de las derivadas de las curvas α y β sea el mismo ⇒ h > 0y la reparametrización conserva la orientación, pero puede ser que no sea así y laorientación cambie.

Ejemplo: Si quisieramos reparametrizar la curva γ(t) = (cos(t), sin(t)), t ∈ (0, 2π), conla aplicación h : R −→ R definida por h(s) = π − s, comenzaríamos comprobando quela aplicación es de reparametrización:

Sabemos que h es aplicación de reparametrización si es 1. biyectiva, 2. h es suavey 3. h−1 es suave.

1.Biyectiva: Para que la función h(s) = π − s sea biyectiva, la función tiene queser inyectiva y suprayectiva.

Figura 1.2: Obtenida con la herramienta Wolfram alpha.

La aplicación h es inyectiva porque:

h(s1) = h(s2) ⇔ π − s1 = π − s2 ⇔ s1 = s2

El rango de la función h es (−∞,+∞), luego la función es suprayectiva.Luego h(s) es biyectiva.

2.h es suave: Como vimos, se dice que una función es suave si existen todas susderivadas y además son continuas.

h′(s) = −1hn)(s) = 0 ∀n > 1

Por lo que h(s) es suave y h′(s) �= 0.

5

1.1. Curvas

3.h−1 es suave:

h−1(t) = π − t(h−1)′(t) = −1

hn)(s) = 0 ∀n > 1

Luego h(s) = π − s es aplicación de reparametrización.Ahora vamos a calcular la reparametrización de la curva γ:

α(t) = γ(h(t)) ⇒ α(t) = (cos(π − t), sin(π − t)) ⇒ α(t) = (−cos(t), sin(t))

La reparametrización calculada cambia la orientación h′(t) < 0.

1.1.8. Curvatura

En una recta, el vector tangente siempre tiene la misma dirección. Sin embargo,en una curva, el vector tangente a la curva varía su dirección a medida que nosdesplazamos por ella. Esta variación del vector tangente nos indica que existe unacierta curvatura.

Figura 1.3:

Una forma de medir la curvatura podría ser estudiar cuánto se desvía una curva deser recta[4].

1.1.8.1. Curvatura de una curva regular

La curvatura de una curva regular viene dada por el cociente entre la variación delvector tangente con la longitud de arco de la curva

k(t) =Δ−→T

Δs

Aplicando la función longitud de arco sabemos que s(t) =∫ tt0 ‖−→γ ′(u)‖du, luego s′(t) =

‖−−→γ′(t)‖, y aplicando la regla de la cadena, podemos relacionar el vector curvatura d−→Tds

con la derivada−→T ′ con respecto al tiempo

−→T ′ =

d−→T

dt[6]:

d−→T

ds=

d−→T

dt

dt

ds=

−→T ′ 1

ds

dt

=−→T ′ 1

‖−→γ ′(t)‖

6

Introducción

Luego, la curvatura viene dada por:

k(t) = ‖d−→T

ds‖ =

1

‖−→γ ′(t)‖‖−→T ′(t)‖ =

‖−→T ′(t)‖‖−→γ ′(t)‖ (1)

Por definición es

−→T =

−→γ ′(t)‖−→γ ′(t)‖ ⇒ −→

T ‖−→γ ′(t)‖ = −→γ ′(t) ⇒ −→Tds

dt= −→γ ′(t)

Obtenemos:

−→γ ′(t) =−→Tds

dt−→γ ′′(t) =

−→Td2s

dt2+

ds

dt

−→T ′

Aplicando el producto vectorial entre −→γ ′(t) y −→γ ′′(t) nos queda:

−→γ ′(t)×−→γ ′′(t) =−→Tds

dt× ds

dt

−→T ′

‖−→γ ′(t)×−→γ ′′(t)‖ = (ds

dt)2‖−→T ′‖ ya que

−→T y

−→T ′ son ortogonales.

Despejando ‖−→T ′‖ nos queda

‖−→T ′‖ =‖−→γ ′(t)×−→γ ′′(t)‖

(ds

dt)2

=‖−→γ ′(t)×−→γ ′′(t)‖

‖−→γ ′(t)‖2

Sustituyendo en (1)

k(t) =‖−→γ ′(t)×−→γ ′′(t)‖

‖−→γ ′(t)‖3La curvatura de una curva regular γ, la cual no está reparametrizada a velocidadunitaria ya sea porque encontrar una reparametrización a velocidad unitaria es com-plicado, o imposible definirla de forma explícita, la fórmula de la curvatura quedadefinida de la siguiente forma

k(t) =‖−→γ ′(t)×−→γ ′′(t)‖

‖−→γ ′(t)‖3

1.1.8.2. Curvatura de una curva con velocidad unitaria

Sea γ una curva parametrizada con velocidad unitaria, su función curvatura es:

k(s) = ‖−→γ ′′(s)‖

1.1.8.3. Vector normal a una curva plana

Se llama vector normal a una curva plana al que se obtiene aplicando un giro de 90o

al vector tangente−→T en sentido positivo.

−→T (t) =

−→γ ′(t)‖−→γ ′(t)‖

−→N (t) =

(0 −11 0

)−→T (t)

7

1.1. Curvas

Figura 1.4:

1.1.8.4. Curvatura con signo de una curva plana

Sea γ : (a, b) −→ R2 una curva regular con parámetro arbitrario, la curvatura con signo

es la función ks : (a, b) −→ R que aparece como tercera coordenada de la siguienteoperación vectorial:

−→γ ′(t)×−→γ ′′(t)‖−→γ ′(t)‖3 = ks(t)

⎛⎝ 0

01

⎞⎠

Donde se está considerando que la curvaγ está inmersa en el espacio R3

Si γ : (a, b) −→ R2 es una curva parametrizada con velocidad unitaria, la curvatura

con signo viene dada por la función ks : (a, b) −→ R tal que

−→γ ′′(s) = ks(s)−→N (s)

Ejemplo: Para poder obtener la curvatura con signo de la curva γ(t) = (t, t2) procede-remos de la siguiente manera:

γ(t) = (t, t2) γ′(t) = (1, 2t) γ′′(t) = (0, 2)

Considerando la curva inmersa en R3 tal que, −→γ ′(t) = (1, 2t, 0) y −→γ ′′(t) = (0, 2, 0):

γ′(t)× γ′′(t) = det

⎛⎝ i j k

1 2t 00 2 0

⎞⎠ = 2

−→k =

(0 0 2

)

‖γ′(t)‖ =√1 + 4t2

−→γ ′(t)×−→γ ′′(t)‖−→γ ′(t)‖3 =

(0 0 2

)(√1 + 4t2)3

= ks(t)

⎛⎝ 0

01

⎞⎠

luego la curvatura con signo de la curva γ(t) = (t, t2) es

ks =2√

1 + 4t23

8

Introducción

1.1.9. Teorema fundamental de curvas planas

Sea f : I −→ R una función suave, con I ⊂ R un intervalo abierto, entonces existe unacurva parametrizada con velocidad unitaria γ : I −→ R

2, de forma que su curvaturacon signo es

ks = f(t)∀t ∈ I

Además, la curva γ es única, salvo que se le apliquen movimientos rígidos como girosy traslaciones en el plano.

Demostración: Definimos una función φ : I −→ R de forma que sea el ángulo queforma la recta tangente a la curva γ(t) en ∀t ∈ I con la recta tangente en un puntoarbitrario t0 ∈ I

φ(t) =∫ tt0f(u)du fijando un t0 ∈ I

Dicha función verifica que φ′(t) = f(t). Asumimos que φ(t) debe ser el ángulo queforma la curva γ, con −→γ ′(t0), por lo que −→γ ′(t) = (cosφ(t), sinφ(t)), luego definimos lacurva como

γ(t) =∫ tt0(cosφ(u), sinφ(u))du

La curva γ que acabamos de definir es suave y tiene velocidad unitaria ya que cumple

‖−→γ ′(t)‖ = 1 ⇒ −→T ′(t) = −→γ ′(t)

Además el vector normal es−→N (t) = (−sinφ(t), cosφ(t))

y por consiguiente

−→γ ′′(t) =−→T ′(t) = (−φ′(t)sinφ(t), φ′(t)cosφ(t)) = φ′(t)

−→N (t) ⇒ ks(t) = φ′(t) = f(t)

Consecuencia de la caracterización de curvas planas por su curvatura con signo.

Observación: La caracterización de curvas planas por su curvatura con signo diceque, si dos curvas parametrizadas por la longitud de arco tienen la misma curva-tura con signo f, entonces una de ellas se puede obtener de la otra aplicándole unmovimiento rígido.

1.1.10. Curvas en el espacio

Una curva en el espacio está caracterizada, además de por la curvatura definida an-teriormente por otro tipo de curvatura, llamada torsión.

Para definir este concepto se introduce el triedro de Frenet.

1.1.10.1. Triedro de Frenet

Dado un punto cualquiera del espacio de una curva, podemos determinar tres vecto-res ortogonales entre sí, el tangente, el normal y el binormal. Estos vectores formanel triedro de Frenet y se pueden interpretar como un sistema de referencia apropiado

9

1.2. Superficies

para cada punto de la curva.

Dada una curva regular con velocidad unitaria γ, su vector normal−→N es un vector

unitario que tiene la dirección de −→γ ′′(t) y el vector binormal−→B es un vector unitario

que es ortogonal tanto al vector tangente−→T como al vector normal

−→N .

−→T (t) = −→γ ′(t)

−→N (t) =

−→γ ′′(t)‖−→γ ′′(t)‖

−→B (t) =

−→T (t)×−→

N (t)

Figura 1.5:

1.1.10.2. Torsión de curvas con velocidad unitaria

Si γ : (a, b) → R3 una curva regular con velocidad unitaria y curvatura no nula, se

define la torsión de γ como la función τ(s) : (a, b) → R tal que

τ(s) = −−→B ′(s) · −→N (s)

La torsión mide la variación del vector binormal y nos marca cuanto se aleja la curvade ser una curva plana.

1.1.10.3. Torsión de curvas con parametrización arbitraria

Sea γ : (a, b) → R3 una curva regular con parametrización arbitraria y curvatura no

nula, la torsión viene definida:

τ =det[−→γ ′(t),−→γ ′′(t),−→γ ′′′(t)]

‖−→γ ′(t)×−→γ ′′(t)‖2

1.2. Superficies

Las superficies son objetos geométricos de dimensión dos en el espacio tridimensio-nal, en el cual una partícula se puede mover en dos direcciones independientes, adiferencia de una curva que en dicho espacio es un objeto de dimesión uno, ya queuna partícula que se desplace por ella solo podrá hacerlo en una sola dirección.

10

Introducción

Figura 1.6: Obtenida con la herramienta Sage

Definiremos la superficie matemáticamente a través de una función continua de dosvariables, que llamaremos superficie parametrizada.

1.2.1. Superficies parametrizadas

Se llama superficie parametrizada al par (U ,α) donde U ⊂ R2 es un conjunto abierto

conexo del plano y α : U → R3 es una aplicación que verifica:

• α es inyectiva• α es continua• La aplicaciones inversa α−1 : α(U) → U es continua.

LLamaremos superficie a todo subconjunto S ⊂ R3 tal que para todo P ∈ S existe

una superficie parametrizada (U ,α) y un abierto W ⊂ R3 verificando que:

P ∈ S ∩W = α(U)

1.2.2. Superficies regulares

Decimos que una superficie es regular si es una superficie parametrizada en la queen cada punto existe un plano tangente a la superficie[7]. Para definir las condicionesnecesarias para que una superficie sea regular, necesitamos saber que es una apli-cación suave.

Sea U ⊂ R2 un conjunto abierto del plano. Una aplicación α : U → R

3 es suave sitodas sus derivadas parciales existen y son continuas.

Luego decimos que una superficie (U ,α) es regular si:

11

1.2. Superficies

• (U ,α) es una superficie parametrizada• α es suave• {−→ϕu,

−→ϕv} es linealmente independiente.

1.2.3. Superficies diferenciables

Para comprender qué es una superficie diferenciable primero tenemos que saber quées un atlas.

Se llama atlas de una superficie S a un conjunto de superficies parametrizadas cuyasimágenes recubren todo S. Cada elemento del atlas se dice que es una parametriza-ción local de S.

Pues bien, una superficie diferenciable es una superficie con un atlas formado porsuperficies regulares.

1.2.4. Superficies de nivel

Sea S ⊂ R3 un subconjunto que cumple que para todo P ∈ S existe un abierto W ⊂ R

3

y una función suave f : W → R tales que

• P ∈ S ∩W = {(x, y, z) ∈ W : f(x, y, z) = 0}• ∇f = (fx, fy, fz) �= −→

0 en P

Entonces S es una superficie diferenciable, llamada superficie de nivel.

1.2.5. Reparametrización de superficies

Una aplicación de reparametrización para superficies es una aplicación h : V → Ucon U ⊂ R

2 y V ⊂ R2 que verifica que

• h es biyectiva• h es suave• h−1 es suave

Si (U ,α) es una superficie parametrizada y h : V → U , siendo U y V dos abiertosconexos, es una aplicación de reparametrización, entonces (V ,β), con β : V → R

3 defi-nida por β = α◦h, es una superficie parametrizada que llamaremos reparametrizaciónde (U ,α).

1.2.6. Plano Tangente

1.2.6.1. Vectores tangentes a una superficie en un punto

Sea (U ,α) una superficie regular y p ∈ U un punto. Un vector −→v ∈ R3 es tangente a la

superficie en α(p), si existe una curva regular (I,γ) sobre la superficie que pasa porα(p) con γ(t0) = α(p) y −→γ ′(t0) = −→v .

12

Introducción

El conjunto de todos los vectores tangentes a la superficie en α(p) junto con el vectornulo se representa por Tpα.

1.2.6.2. Plano tangente a una superficie

El plano tangente a una superficie S en un punto P ∈ S, es el subespacio vectorial dedimensión dos generado por los vectores {−→ϕu,

−→ϕv} evaluados en P .

1.2.6.3. Ecuaciones del plano tangente

Sea (U ,α) una superficie regular y Tpα su plano tangente en el punto p = (u0, v0)

• La base del plano tangente de la superficie regular en el punto p es:

BTpα = {−→ϕu(p),−→ϕv(p)}

• La ecuación cartesiana del plano tangente de la superficie regular en el punto p es:

(−→ϕu(p)×−→ϕv(p)) · (x, y, z) = 0

• La ecuación del plano afín tangente de la superficie regular en el punto p es:

Πpα = α(p) + Tpα

1.2.6.4. El plano tangente es invariante por reparametrizaciones

Dadas dos superficies, una de ellas obtenida a través de una aplicación de reparame-trización, el plano tangente a dichas superficies en un punto y su transformado es elmismo.

Demostración:

Sea (U ,ϕ) una superficie regular y (V ,σ) una superficie obtenida de la aplicación dereparametrización h : V → U , σ = ϕ ◦ h vamos a verificar que:

Tqσ = Th(q)ϕ

Tenemos que ver que los vectores de la base BTqσ = {−→σs(q),−→σt(q)} son combinaciónlineal de los vectores de la base BTpϕ = {−→ϕu(p),

−→ϕv(p)}.

Puesto que la aplicación de reparametrización es biyectiva, suave y su inversa essuave:

• h(s, t) = (u(s, t), v(s, t)) • σ = ϕ ◦ h • p = h(q)

σ(s, t) = ϕ(u(s, t), v(s, t)) ⇒

⎧⎪⎨⎪⎩

−→σs(q) = −→ϕu(p)∂u∂s

(q) +−→ϕv(p)∂v∂s

(q)

−→σt(q) = −→ϕu(p)∂u∂t

(q) +−→ϕv(p)∂v∂t

(q)

Tanto −→σs(q) como −→σt(q) ∈ Tpϕ

Ejemplo: Para calcular una base del plano tangente y las ecuaciones cartesianasdel plano afín tangente de la superficie ϕ(u, v) = (u, v, u2 + v2) en p = (1, 1):

13

1.2. Superficies

• −→ϕu = (1, 0, 2u) • −→ϕv = (0, 1, 2v)

BTpϕ = {(1, 0, 2), (0, 1, 2)}−→V⊥ = (1, 0, 2)× (0, 1, 2) = (−2,−2, 1)

Luego el plano tangente es : 2x+ 2y − z = 0Para calcular el plano afín sustituimos en ϕ(u, v) por el punto p, y obtenemos P =(1, 1, 2). Sustituimos el nuevo P en la ecuación de nuestro plano tangente:

2x+ 2y − z ⇒ 2 · 1 + 2 · 1− 2 = 2

Por tanto, el plano tangente afín es: 2x+ 2y − z = 2

1.2.7. Primera forma fundamental

Llamamos primera forma fundamental de una superficie al producto escalar usual deR3, restringido a vectores del plano tangente, en cada punto de la superficie regular.

La primera forma fundamental nos ayudará a calcular longitudes de curvas, ángulosdefinidos sobre la superficie...etc.

Sea una superficie regular S de ecuación

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

Se define la expresión matricial de la primera forma fundamental como

Ip(−→a ,

−→b ) =

(a1 a2

)( E FF G

)(b1b2

)

Siendo los coeficiente de la matriz de la primera forma fundamental

[Ip] =

(E FF G

)

•E = −→ϕu · −→ϕu • F = −→ϕu · −→ϕv •G = −→ϕv · −→ϕv

Siendo E > 0 y G > 0, consecuencia inmediate de la definición de regularidad de lasuperficie, además EG−F 2 = ‖−→ϕu×−→ϕv‖2 > 0, consecuencia inmediata de la propiedadde los vectores:

‖−→a ×−→b ‖2 + (−→a · −→b )2 = ‖−→a ‖2‖−→b ‖2

1.2.7.1. La primera forma fundamental es invariante por reparametrizaciones

Sea (U ,ϕ) una superficie regular y (V ,σ) una superficie obtenida a partir de una aplica-ción de reparametrización h : V → U , σ = ϕ ◦ h. Entonces, las expresiones matricialesde la primera forma fundamental en las dos supericies está relacionada a través dela formula[

Iσq]= J(h)t

[Iϕh(q)

]J(h), ∀q ∈ V , siendo J(h) la matriz jacobiana de h.

Por lo tanto, la primera forma fundamental es invariante por reparametrizacionespara cualesquiera q ∈ V y −→a ,

−→b ∈ Tqσ = Th(q)ϕ

14

Introducción

Iσq (−→a ,

−→b ) = Iϕh(q)(

−→a ,−→b )

Demostración: Si σ = ϕ ◦ h y h(s, t) = (u(s, t), v(s, t)), entonces:

•−→σs = −→ϕuus +−→ϕvvs • −→σt = −→ϕuut +

−→ϕvvt

Desarrollando los coeficientes de la primera forma fundamental de (V ,σ) nos queda:

[Iσq]=

(Eσ F σ

F σ Gσ

)=

(us vsut vt

)(Eσ F σ

F σ Gσ

)(us utvs vt

)= J(h)t

[Iϕh(q)

]J(h)

Sean −→a ,−→b ∈ Tqσ = Th(q)ϕ vamos a ver que la primera forma fundamental es invariante

por reparametrizaciones:

−→a = (a1, a2)Th(q)ϕ = (a′1, a′2)Tqσ ⇒(

a1a2

)= J(h)

(a′1a′2

)

−→b = (b1, b2)Th(q)ϕ = (b′1, b′2)Tqσ ⇒

(b1b2

)= J(h)

(b′1b′2

)

Entonces:

Iσq (−→a ,

−→b ) = (a′1a′2)

[Iσq]( b′1

b′2

)= (a′1a′2)J(h)t

[Iϕh(q)

]J(h)

(b′1b′2

)= (a1a2)

[Iϕh(q)

]( b1b2

)=

Iϕh(q)(−→a ,

−→b )

Concluimos que la la primera forma fundamental es invariante por reparametrizacio-nes:

Iσq (−→a ) = Iσq (

−→a ,−→a ) = Iϕh(q)(−→a ,−→a ) = Iϕh(q)(

−→a )

1.2.8. Longitud de arco de curva sobre superficies

Dada una superficie regular (U ,ϕ) y una curva definida sobre ella (I,γ), la longitud dearco de la curva sobre la superficie desde un punto arbitrario t0 hasta t ∈ I es:

Ltt0(γ) =

∫ tt0

√Ip(

−→γ ′(r))dr donde p = (u(r), v(r))

Ejemplo: Si queremos calcular la longitud de curva de la curva (I,γ) siendo γ = ϕ(et, t)con t ∈ I = (0, π) sobre la superficie ϕ(u, v) = (u · cos(v), u · sin(v), u)

•−→ϕu = (cos(v), sin(v), 1) • −→ϕv = (−u · sin(v), u · cos(v), 0)

[Iϕp ] =

(cos(v) sin(v) 1

−u · sin(v) u · cos(v) 0

)⎛⎝ cos(v) −u · sin(v)sin(v) u · cos(v)

1 0

⎞⎠ =

(2 00 u2

)

•γ = ϕ ◦ α siendo α(t) = (et, t) ⇒ α′(t) = (et, 1)

(et 1

)( 2 00 e2t

)(et

1

)= 2 · e2t + e2t = 3 · e2t

Aplicando la fórmula de la longitud de arco de una curva sobre una superficie nosqueda:

Ltt0(γ) =

∫ tt0

√Ip(

−→γ ′(r))dr =√3 · e(t−t0)

15

1.2. Superficies

1.2.9. Ángulo entre curvas

El ángulo que forman dos curvas en una superficie, es el ángulo que forman susvectores velocidad en dicho punto, verificandose:

cosθ =Ip(

−→a ,−→b )√

Iq(−→a )

√Iq(

−→b )

Ejemplo: Siendo la superficie ϕ(u, v) = (u2v, u, uv2 + v) y las curvas γ1 = ϕ(sin(t), t) yγ2 = (t, cos(t) − 1) que se cortan en el punto t = 0, para hallar el ángulo que formandichas curvas en su punto de corte tenemos que:

•ϕu = (2uv, 1, v2) • ϕv = (u2, 0, 2uv + 1)

[Iϕp ] =

(2uv 1 v2

u2 0 2uv + 1

)⎛⎝ 2uv u2

1 0v2 2uv + 1

⎞⎠ =

(4u2v2 + 1 + v4 2u3v + 2uv3 + v2

2u3v + 2uv3 + v2 4u2v2 + 4uv + 1 + u4

)

[I(0,0)ϕ

]=

(1 00 1

)

•α′(t) = (cos(t), 1) α′(0) = (1, 1)•β′(t) = (1,−sin(t)) β′(0) = (1, 0)

‖α′(0)‖2 = (1, 1)

(1 00 1

)(11

)= 2

‖β′(0)‖2 = (1, 0)

(1 00 1

)(10

)= 1

Ip(α′, β′) = α′(0) · β′(0) =

(1 0

)( 1 00 1

)(11

)= 1

Aplicando la fórmula del ángulo de dos curvas de la superficie en un punto:

cosθ =Ip(

−→a ,−→b )√

Iq(−→a )

√Iq(

−→b )

=1√2⇒ θ =

π

4

1.2.10. Curvatura normal de una superficie

1.2.10.1. Vector unitario normal a una superficie en un punto

Sea (U ,ϕ) una superficie regular y p = (u0, v0) ∈ U . Se llama vector unitario normal aun vector unitario perpendicular al plano tangente en dicho punto de la superficie.Un vector unitario normal se puede obtener como:

−→n =−→ϕu ×−→ϕv

‖−→ϕu ×−→ϕv‖

1.2.10.2. Base de R3 ampliada en cada punto de la superficie

Sea una superficie regular (U ,ϕ), denotamos a la base ampliada:

BϕR3 = {−→ϕu,

−→ϕv,−→n }

16

Introducción

1.2.10.3. Curvatura normal de una curva a una superficie

Dada una curva con velocidad unitaria contenida en un superficie regular (U ,ϕ), convector de curvatura

−→k en un punto de la curva, la curvatura normal es la proyección

del vector−→k sobre el vector normal en dicho punto.

Figura 1.7:

Sea (U ,ϕ) una superficie regular e (I,γ) una curva regular contenida en la superficiecon γ = ϕ ◦ α. Entonces la curvatura normal de γ en p es:

kn(t) =−→γ ′′(t) · −→m(t)

‖−→γ ′(t)‖2

Siendo −→m(t) = −→n ◦ α(t) = −→n (α(t)), el vector normal a la superficie sobre la curva.

Ejemplo: Para obtener la curvatura normal en un punto genérico de la curva γ(t) =(x(t), y(t), 0) contenida en el plano ϕ(u, v) = (u, v, 0) debemos hacer:

•−→ϕu = (1, 0, 0) • −→ϕv = (0, 1, 0)

−→n =−→ϕu ×−→ϕv

‖−→ϕu ×−→ϕv‖ = (0, 0, 1) = −→m

•−→γ ′(t) = (x′(t), y′(t), 0) • −→γ ′′ = (x′′(t), y′′(t), 0)

Aplicando la fórmula de la curvatura normal obtenemos:

kn(t) =−→γ ′′(t) · −→m(t)

‖−→γ ′(t)‖2 =

(x′′(t), y′′(t), 0)

⎛⎝ 0

01

⎞⎠

√x′(t)2 + y′(t)2

= 0

1.2.11. Superficies orientadas

En cada punto P de una superficie regular existen dos posibles elecciones para elvector normal, uno para cada cara de la superficie.

17

1.2. Superficies

Figura 1.8: Gráfica paramétrica banda de Moebius. Fuente: Wikipedia

Toda superficie regular (U ,ϕ) se orientará seleccionando la orientación natural dadapor la parametrización:

−→n =−→ϕu ×−→ϕv

‖−→ϕu ×−→ϕv‖

1.2.11.1. Símbolos de Christoffel de primera especie

Se definen los símbolos de Christoffel de primera especie de una superficie orientadaa las funciones:

Γijk : U → R, 1 � i, j, k � 2, con Γijk = −→ϕij · −→ϕk

Además, los símbolos de Christoffel de primera especie cumplen la identidad de Ricci:

Γijk =1

2(−∂gij

∂uk

+∂gjk∂ui

+∂gki∂uj

) 1 � i, j, k � 2

1.2.11.2. Símbolos de Christoffel de segunda especie

Se definen los símbolos de Christoffel de segunda especie de una superficie orientadaa las funciones:

Γkij : U → R, 1 � i, j, k � 2, con Γk

ij = Γkji

La expresión de los símbolos de Christoffel de segunda especie en función de loscoeficientes de la primera forma fundamental son:

(Γ111 Γ1

12 Γ122

Γ211 Γ2

12 Γ222

)=

⎛⎜⎝

GEu − 2FFu + FEv

2(EG− F 2)

GEv − FGu

2(EG− F 2)

2GFv −GGu − FGv

2(EG− F 2)−FEu + 2EFu − EEv

2(EG− F 2)

−FEv + EGu

2(EG− F 2)

−2FFv + FGu + EGv

2(EG− F 2)

⎞⎟⎠

18

Capítulo 2

Desarrollo

En la parte del desarrollo de este trabajo de fin de grado, se expondrán los conceptosgeométricos sobre las geodésicas, además del algoritmo que se implementará para lavisualización de curvas geodésicas, así como los resultados obtenidos.

Como ya se ha mencionado en la introducción, en general el cálculo de las curvasgeodésicas es complicado, ya que las ecuaciones que describen de forma general lascurvas geodésicas, vienen dadas por ecuaciones diferenciales no lineales, por lo quesiempre suelen involucrar un cierto error.

Antes de proceder a la explicación y desarrollo del algoritmo es necesario conocerlos conceptos geométricos y propiedades que componen las curvas geodésicas.

2.1. Conceptos Geométricos

Una curva geodésica es aquella curva sobre una superficie, que tiene la curvaturanecesaria es decir, carece de curvatura extra. Por eso estas curvas en la superficie,se comportan como las rectas en el plano.

Las curvas geodésicas se caracterizan por tener, en todos sus puntos, la curvatu-ra geodésica igual a cero.

2.1.1. Triedro de Darboux

El triedro de Darboux es análogo al triedro de Frenet, con la diferencia que el triedrode Darboux además contiene la información geométrica de la superficie. Este triedroserá una base ortonormal diferenciable y positivamente orientada.

Sea (U ,ϕ) una superficie orientada con N : S → S2 un campo normal unitario, alque llamaremos aplicación de Gauss, y sea α : I → S una curva parametrizada convelocidad unitaria perteneciente a la superficie, el triedro de Darboux vendrá dadopor tres vectores.El primer vector será el vector tangente.

−→T (s) = −→α ′(s)

19

2.1. Conceptos Geométricos

El segundo vector será el vector normal a la superficie en cada punto de la curva.−→m(s) = −→n (α(s))

Y por ultimo, el tercer vector del triedro de Darboux es−→b (s) = −→m ×−→

T

Es claro que, {T (s),−→b ,−→m} es una base ortonormal diferenciable y positivamenteorientada.

Para hallar las ecuaciones de Darboux, expresamos las primeras derivadas respectode la base anterior.

Para T ′ obtenemos:−→T · −→m = 0 ⇒ −→

T ′ · −→m = −−→T · −→m′ = kn

T ′(s) = kn(s)−→m + kg(s)

−→b

Para −→m′ obtenemos:−→m′ = −kn(s)T (s) + τg(s)

−→b

Por último, aplicando T ′ y −→m′ obtenemos para−→b ′:

−→b ′ = −kg(s)T (s)− τg(s)

−→mSiendo τg la torsión geodésica.

De la primera ecuación de Darboux, obtenemos la importante relación la cual nosdice que la curvatura de una curva en el espacio se descompone como la suma de lacurvatura geodésica, la cual es intrínseca, y la curvatura normal, que es extrínseca.

k2 = k2n + k2g [8]

Por eso se dice que una curva geodésica no tiene curvatura extra, ya que kg es cero.

2.1.2. Curvatura geodésica

Sea (U ,ϕ) una superficie, y (V ,γ) una curva regular tal que γ = ϕ ◦ α, siendo α =(u(t), v(t)), llamamos curvatura geodésica de la curva (V ,γ) en un punto P ∈ U a:

kg =det [−→γ ′(t),−→γ ′′(t),−→m(t)]

‖−→γ ′(t)‖3donde −→m(t) es el vector unitario normal a la superficie en el punto P .

Propiedades de la curvatura geodésica

• La curvatura geodésica de una curva no cambia si reparametrizamos la curva conuna parametrización que conserve el sentido del vector tangente. En el caso de quela curva se reparametrice con una parametrización que cambia el sentido del vectortangente, la curvatura geodésica cambiará de signo.

• La curvatura geodésica no cambia si reparametrizamos la superficie con una para-metrización que no cambie el sentido del vector unitario normal −→m(t) . En el caso de

20

Desarrollo

que la parametrización de la superficie cambie el sentido del vector unitario normal,la curvatura geodésica cambiará de signo.

Interpretación geométrica de la curvatura geodésica

Sea (U ,ϕ) una superficie, y (I,γ) una curva parametrizada con velocidad unitaria,la cual esta contenida en la superficie. Entonces, la curvatura geodésica de la curvaen un punto P ∈ U coincide con la proyección ortogonal del vector curvatura de lacurva k

−→N sobre el vector −→m ×−→

T ∈ TpS

kg = k−→N · (−→m ×−→

T ) = proy−→m×−→T(k−→N )

Figura 2.1:

Observación: Si los vectores del triedro natural o de Darboux y el triedro de Frenetcoinciden, es decir cuando la curvatura de la curva C tiene la misma dirección

−→N que

la curvatura normal, de dirección −→m, a la superficie S que la contiene, implica que Ces geodésica.

Figura 2.2:

Considerando el plano perpendicular al vector tangente−→T , se tiene, en el caso de la

líneas geodésicas, los siguientes vectores unitarios:

21

2.1. Conceptos Geométricos

Figura 2.3:

Si en cada punto P descomponemos el vector de curvatura de la curva C, contenidaen S, en las direcciones −→m y

−→b , se tienen las componentes kn y kg.

Figura 2.4:

La proyección ortogonal k · −→N sobre el vector−→b es:

kg = k · cos(θ)Ejemplo: Vamos ha hallar la curvatura geodésica de una curva sobre una superficie,el procedimiento sería el siguiente. Sea γ(t) = ϕ(t, t2) una curva regular definida sobrela superficie (R2,ϕ) con ϕ(u, v) = (u2v, u, uv2+v), en el punto t = 0, aplicamos la fórmulade la curvatura geodésica:

kg =det [−→γ ′(t),−→γ ′′(t),−→m(t)]

‖−→γ ′(t)‖3 (1)

Siendo

−→ϕu =(2uv, 1, v2

)−→ϕv =

(u2, 0, 2uv + 1

)−→m(t) = −→n (γ(t))

22

Desarrollo

−→ϕu ×−→ϕv = det

⎡⎣ i j k

2uv 1 v2

u2 0 2uv + 1

⎤⎦ =

(2uv + 1,−uv(3uv + 2),−u2

)

t = 0 ⇒ γ(0) = (0, 0) ⇒ −→n (u(t), v(t)) = −→m(t) = (1, 0, 0)

−→γ (t) =(t4, t, t5 + t2

)−→γ′ (t) =

(4t3, 1, 5t4 + 2t

)⇒ (t = 0) ⇒ (0, 1, 0)−→γ′′(t) =

(12t2, 0, 20t3 + 2

)⇒ (t = 0) ⇒ (0, 0, 2)

‖−→γ′ (0)‖ = 1

Sustituyendo en la ecuación de la curvatura geodésica (1)

kg =

det

⎡⎣ 0 0 1

1 0 00 2 0

⎤⎦

1= 2

2.1.3. Caracterización de geodésicas con velocidad constante

Sea (U ,ϕ) una superficie orientada y sea (I,γ) una curva regular sobre la superficie.Entonces γ es una curva geodésica y tiene velocidad constante si y sólo si −→γ ′′ es or-togonal a Tpϕ.

Demostración: Sea −→m el vector normal a la superficie sobre la curva.

(⇒)Si la curva tiene velocidad constante, es decir ‖−→γ ′(t)‖ = c = cte �= 0. Sea α = γ ◦ hcon h(s) =

s

c:

−→α ′(t) = −→γ ′(t)h′(s) =−→γ ′(t)c

⇒ ‖−→α ′(s)‖ = 1

Como γ tiene curvatura geodésica igual a cero en todos los puntos, α también latendrá y como además α tiene velocidad unitaria concluimos:⎧⎨

⎩−→α ′′(s) =

−→γ ′′(t)c

h′(s) =−→γ ′′(t)c2−→α ′′(s) = kg(

−→m ×−→T ) + kn

−→m = kn−→m

⇒ −→γ ′′||−→m

−→γ ′′ es ortogonal a Tpϕ.

(⇐) Si −→γ ′′ es ortogonal a Tpϕ, entonces el producto escalar entre −→γ ′′ y −→γ ′ es ceroe implica que la velocidad de la curva es constate

−→γ ′′ · −→γ ′ = 0 ⇒ d

dt‖−→γ ′‖2 = 0 ⇒ ‖−→γ ′(t)‖ = c = cte �= 0

Considerando α = γ ◦ h con h(s) =s

c, que tiene velocidad unitaria,verificándose:

−→α ′′ =−→γ ′′

c2= kg(

−→m ×−→T ) + kn

−→m

Al ser −→γ ′′ ortogonal a Tpϕ, su producto escalar con (−→m × −→T ) también es cero, obte-

niendo:

23

2.1. Conceptos Geométricos

−→γ ′′ · (−→m ×−→T ) = c2

[kg(

−→m ×−→T ) · (−→m ×−→

T ) + kn−→m · (−→m ×−→

T )]= c2kg‖−→m ×−→

T ‖2 = 0

Concluimos que kg debe ser cero, es decir γ es una curva geodésica.

2.1.4. Ecuación diferencial de una geodésica

Para obtener la ecuación diferencial de una curva geodésica basta con igualar a cerola expresión del vector curvatura geodésica.

kg =∑2

k=1

(d2uk

ds2+∑2

i,j=1 Γkij

dui

ds

duj

ds

)−→x k

De esta expresión obtenemos dos ecuaciones diferenciales lineales de segundo orden:

d2uk

ds2+∑2

i,j=1 Γkij

dui

ds

duj

ds= 0 (k = 1, 2) (1)

Siendo s el parámetro longitud de arco, la curva geodésica debe verificar también lasiguiente condición:

∑2i,j=1 gij

dui

ds

duj

ds= 1

Con esta nueva condición, la cual define una curva geodésica con velocidad unitaria,podemos resumir la ecuación (1) como:

d2u2

(du1)2= Γ1

22

(du2

du1

)3

+(2Γ1

12 − Γ222

)(du2

du1

)2

+(Γ111 − 2Γ2

12

) du2du1

− Γ211 [9]

que es equivalente a:{ ∧1 = u′′1 + Γ1

11(u′1)

2 + 2Γ112u

′1u

′2 + Γ1

22(u′2)

2 = 0∧2 = u′′2 + Γ2

11(u′1)

2 + 2Γ212u

′1u

′2 + Γ2

22(u′2)

2 = 0

Proposición: Sea una superficie de clase C2, en todo punto regular de la superficie,y en toda dirección pasa al menos una curva geodésica. Si la superficie es de claseC3, entonces existe exactamente una geodésica[9].

Demostración: Sea −→a = Σ2i=1a

i−→x i un vector unitario que determina la dirección en

el punto P = (u10, u20). Las componentes ai, utilizadas como valores iniciales para

du1

ds,

satisfacen la expresión:

∑2i,j=1 gij

dui

ds

duj

ds= 1

Así, la ecuación de una curva geodésica que pasa por P en la dirección −→a es unasolución de la ecuación diferencial de segundo orden:

d2uk

ds2+∑2

i,j=1 Γkij

dui

ds

duj

ds= 0

Por el teorema de existencia y unicidad de la teoría de ecuaciones diferenciales, dichasolución existe, siendo ésta única y con coeficientes continuos , si tienen derivadasparciales continuas.La hipótesis de clase C2 implica que Γk

ij son continuas y la clase C3 implica que losΓkij son de clase C1, completando así la demostración.

Observación: Sea (U,ϕ) una superficie de revolución orientada:

24

Desarrollo

ϕ(u, v) = (f(u)cos(v), f(u)sin(v), g(u))

siendo f y g funciones suaves y f > 0. Entonces:

• Todo meridiano γ(t) = ϕ(t, v0) es una curva geodésica de la superficie.• Si f ′(u0) = 0, entonces un paralelo γ(t) = ϕ(u0, t) es curva geodésica.

2.1.5. Coordenadas polares geodésicas

Para cada punto P de una superficie diferenciable orientada, existe un entorno de P ,que puede ser parametrizado en base a la familia de curvas geodésicas que pasan porP . Dicha parametrización se denomina Sistema de coordenadas polares geodésicas,centradas en el punto P .

En un Sistema de coordenadas geodésicas, las trayectorias ortogonales a las geo-désicas son curvas cerradas.Un ejemplo es la superficie esférica. Dado un punto cualquiera de la superficie, lasgeodésicas que pasan por él, forman forman círculos máximos.

Figura 2.5: Esfera en el espacio euclídeo. Fuente: Wikipedia

Sea S una superficie diferenciable orientada con P ∈ S y −→u ∈ TPS. Para cada ánguloθ ∈ (0, 2π) siendo la curva geodésica parametrizada con velocidad unitaria γθ(r), talque γθ(0) = P y el ángulo que forman −→u con (−→γ θ)′(0) sea igual a θ. Entonces tenemosla parametrización por coordenadas polares geodésicas:

σ(r, θ) = γθ(r) r ∈ (0, R) y θ ∈ (0, 2π).

Además, las coordenadas polares geodésicas son ortogonales:−→σ r · −→σ θ = 0

Demostración: Como la curva geodésica esta parametrizada con velocidad unitaria,se cumple:

‖−→σ r‖2 = ‖(−→γ θ)′‖2 = 1 ⇒ ∫ R0−→σ r · −→σ rdr =

∫ R0 ‖−→σ r‖2dr =

∫ R0 dr = R

Si derivamos con respecto de θ:

2 · ∫ R0−→σ r · −→σ rθdr = 0 ⇒ ∫ R

0−→σ r · −→σ rθdr = 0

Ahora, integrando por partes obtenemos:

25

2.2. Construcción geométrica de curvas geodésicas

∫ R0−→σ r · −→σ rθdr = −→σ r · −→σ θr −

∫ R0−→σ rr · −→σ θdr = 0 ⇒ −→σ r · −→σ θ =

∫ R0−→σ rr · −→σ θdr = 0

Luego, al ser curva geodésica con velocidad unitaria, tenemos que −→σ θ ∈ Tpσ y −→σ rr =(−→γ θ)′′⊥Tpσ.

2.1.6. Curvatura de Gauss en coordenadas polares geodésicas

Tomando una superficie orientada (U,ϕ),cuyos coeficientes de la primera forma fun-damental verifican que E = 1 y F = 0, para todos los puntos (u, v)∈ U . Entonces lacurvatura de Gauss es:

K = − 1√G

∂2√G

∂u2

Si la superficie esta expresada en coordenadas polares geodésicas, u = rDemostración: Para que E = 1 y F = 0 los símbolos de Christoffel deben de ser:

(Γ111 Γ1

12 Γ122

Γ211 Γ2

12 Γ222

)=

⎛⎜⎝ 0 0

−Gu

2

0Gu

2G

Gv

2G

⎞⎟⎠

Sustituyendo E = 1 y los símbolos de Christoffel de segunda especie en la primeraecuación de Gauss, que dice:

EK =∂Γ2

11

∂v− ∂Γ2

12

∂u+ Γ1

11Γ212 + Γ2

11Γ222 − Γ1

12Γ211 − Γ2

12Γ221

nos queda:

K = −(Gu

2G)− G2

u

4G2= −GuuG−G2

u

2G2− G2

u

4G2= −Guu

2G+

G2u

4G2=

−1

2√G(Gu√G)u =

−1√G(Gu

2√G)u =

−1√G(∂√G

∂u)u =

−1√G

∂2√G

∂u2

2.2. Construcción geométrica de curvas geodésicas

Como hemos visto las curvas geodésicas vienen dadas por ecuaciones diferencialesno lineales, las cuáles suponen diversos problemas a la hora de calcularlas, y porconsiguiente la dificultad para representarlas adecuadamente.

Para ello, se han desarrollado diferentes algoritmos y métodos para poder calcu-larlas (no de forma exacta), uno de los métodos más utilizados para resolver dichossistemas de ecuaciones diferenciales, es el método de Runge-Kutta de cuarto orden,también conocido como «RK4». Este método, consiste en evaluar hasta cuatro veceslos seis símbolos de Christoffel por cada iteración del método. Esto hace que el errorpor iteración sea del orden de O(h5), mientras que el error total acumulado tiene elorden O(h4) [14], lo que implica que la convergencia es del orden de O(h4). De ahí,la razón por la cual es uno de los métodos más usados a la hora de afrontar esteproblema.

Otra solución, es aplicar la propiedad de que las geodésicas, localmente, se percibencomo rectas. Este nuevo procedimiento nos evitaría evaluar los símbolos de Christof-fel.

26

Desarrollo

La curvatura geodésica es la medida que nos da la variación del ángulo entre la curvay el vector tangente, a lo largo de la curva. Esto quiere decir que el vector normal dela curva geodésica coincide con el vector normal a la superficie en ese punto:

k2 = k2n

Esto hace que podamos construir la curva geodésica cogiendo un punto cercano alevaluado anteriormente, que pertenezca al plano tangente del anterior, y proyectareste último ortogonalmente sobre la superficie.

El algoritmo que se presenta a continuación, y que se va a desarrollar en Python,permite visualizar las geodésicas en una superficie, ha sido desarrollado por IngridHotz y Hans Hagen, el cual viene explicado en su artículo Visualizing Geodesics, yse basa en el método de ver las geodésicas como rectas en un entorno muy cercanosobre la superficie.

2.3. Algoritmo Visualización de Geodésicas

2.3.1. Entorno de desarrollo

El algoritmo se va a desarrollar en Python ya que además de ser un software libre yque ofrece código abierto, cuenta con diferentes módulos matemáticos que nos facili-tarán el desarrollo de este método matemático.

El entorno de desarrollo elegido ha sido SAGE.

SAGE

SAGE es un entorno de cálculos matemáticos capaz de proveer el poder de diferentesentornos de cálculo matemático dentro de una arquitectura.

SAGE esta escrito en lenguaje de programación Python y el lenguaje de programaciónorientado a las matemáticas.

Por qué SAGE

Las razones por las cuales se ha decidido escoger esta herramienta para desarro-llar el algoritmo son entre otras:

• Manejo previo con dicha herramienta:

Durante el transcurso de la carrera de Matemáticas e Informática en la universidadPolitécnica de Madrid, se ha empleado SAGE en diferentes asignaturas como álge-bra lineal y geométría y topología computacional, con el fin de desarrollar diferentesalgoritmos matemáticos, como por ejemplo, el algoritmo de Jarvis o el algoritmo deDelaunay.

• Funcionalidad:

27

2.3. Algoritmo Visualización de Geodésicas

Este software desarrollado en Python, tiene la funcionalidad de realizar cálculos má-tematicos complejos que son utilizados en distintos campos de las matemáticas, enconcreto dos campos en los cuales se va a centrar el algoritmo, Geometría diferencialy gráficos.

Existen softwares con los que podemos trabajar en distintos campos matemáticospero SAGE tiene la peculiaridad de que podemos trabajar en todos ellos con un mis-mo programa, siendo software libre.

2.3.2. Algoritmo

El algoritmo para visualizar curvas geodésicas, trabajará con superficies dadas poruna parametrización de la forma X(u, v) = (x(u, v), y(u, v), z(u, v)) tal que, x, y, z, seanfunciones diferenciables de los parámetros u y v.

La notación que seguiremos será la siguiente dependiendo de donde se localicen loselementos geométricos:

Espacio paramétrico Superficie Plano tangenteDirección inicial SD STD

Punto inicial SP SSP (≡STP)Primera aproximación FP FSP FTP

Siguiente aproximación NP NSP NTPPunto medio MP MSP MTP

Una vez definida la ecuación de la superficie con la que vamos a trabajar, procedere-mos con el algoritmo:

1. Se definen los parámetros iniciales, en concreto, el punto inicial de partida enel espacio paramétrico (SP ), y una dirección inical también en el espacio paramétrico(SD), ambos bidimensionales.

2. Dependiendo del dominio escogido para la función, calculamos un paso (step),que es un número real positivo, que se empleará para hallar un punto próximo a otroen una dirección.

3. Se calcula el plano tangente T a la superficie en el punto SP .

4. Calculamos la dirección SD y el punto SP , en el plano tangente T, obteniendoSTD y STP respectivamente. Desde el punto STP en la dirección de STD y con elstep calculado previamente, obtenemos la primera aproximación del punto FTP .

5. Por último, para hallar el siguiente punto de la curva geodésica (NP ), debemosproyectar ortogonalmente al plano el punto FTP sobre la superficie, obteniendo elsiguiente punto de la geodésica sobre la superficie NSP .

6. Si las condiciones para que el algoritmo continue se cumplen, el punto siguientede la geodésica pasa a ser el inicial SP = NP y repetimos el proceso desde el paso 3.

28

Desarrollo

Figura 2.6: Imagen obtenida del artículo de Visualizing Geodesics

Condiciones de ruptura del algoritmo

El algoritmo deberá parar su ejecución si ocurre uno de los siguientes casos:

• La curva geodésica supera el dominio establecido.• La curva geodésica supera la longitud establecida.• El punto evaluado de la curva geodésica supera un número máximo establecido.• La curva geodésica se interseca consigo misma.

2.3.2.1. Proyección

El procedimiento donde proyectamos el punto de la aproximación sobre la superficiees el más importante. En este apartado se explicará con más detalle dicho punto delalgoritmo.

Partimos de una superficie parametrizada, un punto inicial SP y una dirección inicialSD.

Para hallar el siguiente punto de la curva geodésica debemos proyectar ortogonal-mente sobre la superficie, un punto próximo al punto incial, que también se encuen-tre sobre el plano tangente a la superficie en el punto inicial. Esto, supondría resolverun sistema de ecuaciones no lineales de tres variables (u, v, λ):

SSP + step ∗ STD + λ ∗N = X(u, v)

donde N es el vector normal sobre la superficie.

Esta forma de calcular el siguiente punto, involucra ciertos problemas:

• Que el step no sea un valor adecuado, esto implicaría tener que adaptarlo a lageometría de la superficie.

29

2.3. Algoritmo Visualización de Geodésicas

• En caso de corregir el step, puede provocar que la proyección ortogonal al plano nocorte a la superficie, es decir, que el sistema no tenga solución.• En el caso de que el sistema tenga solución, no es fácil llegar a ella, por el costecomputacional de los cálculos.

Existe otra forma de proceder a la hora de proyectar el punto sobre la superficie,que nos evitaría estos problemas, usando la información que nos proporciona el stepde la anterior iteración del algoritmo y la geometría local de la superficie.

Tomamos como punto de aproximación:

FP = SP + step ∗ SD

A partir de este punto, podemos hallar facilmente FSP y FTP sustituyendo el puntoen la superficie y proyectandolo sobre el plano.

Ahora, debemos variar la longitud del step hasta que:

• El ángulo que forma el plano tangente y la línea que une los puntos FSP y SSP ,esté dentro del rango establecido.Este ángulo es una medida de la curvatura en el punto inicial.• El ángulo que forma el plano tangente y la línea que une los puntos FTP y SSP ,esté dentro del rango establecido.Este ángulo representa la relación entre la curvatura de la curva geodésica y su tor-sión.

Si el punto FTP , se encuentra sobre la recta tangente, es decir, la recta que pasapor los puntos LTP y STP , tomamos FP como el siguiente punto de la curva geodé-sica.

En caso contrario, rotaremos la dirección SD tal que la recta tangente se encuen-tre entre FTP y la nueva aproximación NTP correspondiente a la nueva dirección.

Calculamos el punto medio entre FP y NP obteniendo MP , quedándonos en el espa-cio paramétrico una situación similar a la siguiente:

Figura 2.7: Imagen obtenida del artículo de Visualizing Geodesics

30

Desarrollo

Si llevamos los puntos FP , SP , NP , MP y LP al plano tangente en SSP , el planoqueda dividido en cuatro regiones, dependiendo de dónde se encuentren FTP y NTP :

Región I: Puntos pertenecientes a la componente positiva de la tangente.Región IV: Puntos que se encuentran al otro lado de la recta paralela a la recta queune NTP y FTP y pasa por STP . Esto quiere decir que STP se encontrará dentro deltriángulo de vértices FTP,NTP, P .Región II: Puntos que se encuentran en el mismo lado que el punto NTP con res-pecto a la tangente (excluyendo los puntos que pertenecen a la región I y IV).Región III: Puntos que se encuentran en el mismo lado que el punto FTP con res-pecto a la tangente (excluyendo los puntos que pertenecen a la región I y IV).

Mientras que el punto MTP no se encuentre en la región I, procederemos de la si-guiente manera:

MTP perteneciente a la región I: El punto MP se considera válido, y lo tomamoscomo el nuevo punto de la curva geodésica.MTP perteneciente a la región II: NP = MT y MP = puntoMedio(NP,FP )MTP perteneciente a la región III: FP = MT y MP = puntoMedio(NP,FP )MTP perteneciente a la región IV: Mientras MP se encuentre en la región IV:MP = SP + 0.5 ∗ (SP,MP ).

Figura 2.8: Imagen obtenida del artículo de Visualizing Geodesics

En la mayoría de los casos MTP nunca se encuentra en la región IV, ya que por logeneral el step es muy pequeño y las superficies que suele introducir por el usuariono son extremadamente extrañas.

31

2.3. Algoritmo Visualización de Geodésicas

2.3.2.2. Estimación del error local

Lo que el algoritmo realmente calcula, es la sección normal en el punto α(0) = p0 =(x0, y0, z0) en la dirección α′ = w. Para estimar el error, extendemos la curva alrededordel punto inicial α(0)

α(ds) = α(0) + dsα′(0) +1

2ds2α′′(0) +

1

6ds3α′′′(0) +O(ds4)

donde s es la longitud de arco.

Aplicando la fórmula de Frenet, obtenemos:

α(ds) = α(0) + dst(0) +1

2ds2k(0)n(0) +

1

6ds3(k′n(0)− k(0)τ(0)b(0)− k(0)2t(0)) +O(ds4)

Tanto la normal n(0) como el vector binomial b(0) como la curvatura k(0) coinciden, yes τ(0) el que tiene diferentes valores.Ahora, calcularemos la diferencia entre la curva geodésica γ y la sección normal αn

en el mismo punto inicial. Para la sección normal tenemos que τ(0) ≡ 0.

γ(ds)− αn(ds) = ds3(k′γ(0)− k′αn

(0))

6n(0)− ds3

k(0)τγ(0)

6b(0) +O(ds4) =:

Δnn(0) + Δbb(0) +O(ds4)

Como ambos puntos se encuentran sobre la superficie, Δn y Δb no son independien-tes, luego:

Δn � k⊥Δb2

A continuación, analizaremos las condiciones que controlan el step que cogemos:

La primera condición para el ángulo, el cual le limita a estar entre el plano tangentey la conexión entre los puntos FSP y SSP , es equivalente a:

k(0)ds2 = sin(α) � α ≤ αmax

Luego, el error puede ser controlado con el valor de αmax

La segunda condición del ángulo, no es más que una medida de la curvatura dela curva, que depende de la parametrización de la misma. Esta condición es nece-saria para asegurarnos que nuestra primera aproximación FP se encuentra en unaregión razonable.

32

Capítulo 3

Resultados y conclusiones

3.1. Resultados

Como hemos mencionado la clave del algoritmo, es cómo proyectamos el punto so-bre la superficie para obtener el siguiente punto de la curva geodésica.Pues bien, seha implementado, las dos formas de proceder en dicho punto, primero, resolvien-do las ecuaciones no lineales, que surgen de intersecar la recta ortogonal al planotangente con la superficie, y posteriormente, se ha implementado la forma con laque evitamos tener que evaluar dichas ecuaciones no linealnes reajustando el step encada evaluación hasta que el punto medio MTP se encuentre sobre la recta tangente.

Se ha observado que el algoritmo resolviendo las ecuaciones no lienales

SSP + step ∗ STD + λ ∗N = X(u, v)

su tiempo de ejecución se incrementa mucho por cada iteración del algoritmo, ha-ciendo que para tener un resultado eficiente del algoritmo solo se puedan evaluar 15puntos, es decir 15 iteraciones del algoritmo, ya que de otra forma nos salta un errorde timeout.

De esta forma, también hemos visto que los puntos que se evaluan, la mayoría sonirracionales, por lo que en la mayoría de los casos es necesario limitar el número a15 dígitos por ejemplo, perdiendo precisión.

Además, esta implementación, no funcionaba para superficies trigonométricas, co-mo el toro, la esfera...etc. ya que no se encontraba una solución a las ecuaciones nolineales.

Estos son algunos de los resultados obtenidos por el algoritmo resolviendo las ecua-ciones no lineales:

Una de las primeras pruebas que se realizaron, fue con un paraboloide:

X(u, v) = (u, v, u2 + v2)

33

3.1. Resultados

Figura 3.1: Paraboloide elíptico Fuente: Sage

Tomando como parametros iniciales:

• Dominio = [−2, 2]× [−2, 2]• Punto inicial = [0, 0]

• Dirección inicial = [1, 0]• Límite (número de puntos a evaluar) = 10

Primero, se verifica que la superficie es regular, es decir:

1.− (U,ϕ) es una superficie parametrizada.2.− ϕ es suave.3.− {−→ϕu,

−→ϕv} es linealmente independiente, es decir, −→ϕu ×−→ϕv �= −→0

La primera condición y segunda condición, asumimos que es el usuario el que de-be introducir al algoritmo una superficie que cumpla ambas condiciones. La terceracondición se analiza y en caso de que sean linealmente independientes el algoritmocomienza.

Como −→ϕu × −→ϕv = −2 ∗ u ∗ x − 2 ∗ v ∗ y + z, se verifica la tercera condición, y toma-mos la superficie X(u, v) como una superficie regular.

Hallamos, en el punto inicial el plano tangente a la superficie en dicho punto.

34

Resultados y conclusiones

Figura 3.2: Paraboloide elíptico y plano tangente en un punto Fuente: Sage

Computamos un punto de aproximación al punto inicial y proyectamos sobre la su-perficie.

Figura 3.3: Punto de aproximación Fuente: Sage

Siendo el punto rojo el punto incial, el punto verde, el punto de aproximación y elpunto azul la proyección del punto sobre la superficie, siendo este último, nuevo

35

3.1. Resultados

punto de la geodésica.

Repetimos este proceso durante el número de iteraciones que hemos definido enLimite y obtenemos la siguiente curva geodésica:

Figura 3.4: Geodésica en paraboloide elíptico Fuente: Sage

Si computamos, más curvas geodésicas en diferentes direcciones:

36

Resultados y conclusiones

Figura 3.5: Familia de geodésicas Fuente: Sage

Como vemos, el algoritmo devuelve buenos resultados, pero sujeto a muchas con-diciones, como el tipo de superficie, el número de puntos a evaluar, el paso entrepuntos, lo que lo hace poco eficiente.

Con esto, se demuestra la complicación de calcular estas curvas, como se ha co-mentado en este trabajo de fin de grado, es por ello, que es necesario el uso de otrosalgoritmos para poder calcularlas.

Ejecutando el algoritmo con la solución a la proyección que se describe en el artículoV isualizing Geodesics, no solo el tiempo de ejecución es lineal, lo cual lo hace muyeficiente, también podemos introducir el número de puntos a evaluar que queramos,en mis pruebas han sido 50, una gran diferencia con la primera implementación, quemáximo podíamos tomar 15 puntos y dependiendo de la superficie que fuera.

Otra ventaja, es que los puntos que se evalúan raramente son irracionales, luegola eficiencia computacional es mucho mejor.

Con esta implementación, se pueden encontrar curvas geodésicas en cualquier su-perficie, ya sea trigonométrica o no.

37

3.1. Resultados

Algunos de los resultados, obtenidos por el algoritmo con la implementación nue-va son:

Una de las primeras pruebas que se realizaron, fue con un paraboloide, al igualque en el caso anterior, y así comparar los resultados obtenidos.

X(u, v) = (u, v, u2 + v2)

Tomando como parámetros iniciales:

• Dominio = [−2, 2]× [−2, 2]• Punto inicial = [0, 0]

• Dirección inicial = [1, 0]• Límite (número de puntos a evaluar) = 50

Figura 3.6: Geodésica en paraboloide elíptico Fuente: Sage

Como vemos, el resultado obtenido es practicamente el mismo que en el primer caso,ya que el error que acumula esta nueva forma, es muy pequeño.

También hemos probado el algoritmo en un toro, superficie la cual nos daba errorresolviendo las ecuaciones no lineales:

38

Resultados y conclusiones

X(u, v) = (cos(u) ∗ (5 + 3 ∗ cos(v)), sin(u) ∗ (5 + 3 ∗ cos(v)), 3 ∗ sin(v))Tomando como parámetros iniciales:

• Dominio = [0, 2π]× [0, 2π]• Punto inicial = [0, 0]

• Dirección inicial = [1, 0]• Límite (número de puntos a evaluar) = 50

Además, hemos añadido otros parámetros de otra curva geodésica:

• Dominio = [0, 2π]× [0, 2π]• Punto inicial = [0, 0]

• Dirección inicial = [1, 1]• Límite (número de puntos a evaluar) = 50

Obteniendo, las dos curvas geodésicas:

Figura 3.7: Geodésicas en toro Fuente: Sage

Para verificar que los resultados que estamos obteniendo son fiables, probamos aobtener la curva geodésica en una esfera, ya que sabemos que deberá de ser uncírculo máximo.

X(u, v) = (cos(u) ∗ cos(v), sin(u) ∗ cos(v), sin(v))

39

3.2. Conclusiones

Tomando como parámetros iniciales:

• Dominio = [0, 2π]× [0, 2π]• Punto inicial = [0, 0]

• Dirección inicial = [1, 0]• Límite (número de puntos a evaluar) = 50

Figura 3.8: Geodésicas en esfera Fuente: Sage

Como vemos, la curva geodésica que hemos obtenido, es círculo máximo.

Un aspecto que hay que tener en cuenta con esta nueva implementación, es queel step que se coja, se recomienda que sea un número entre 0 y 1 (sin ser nunca 0), yaque cuanto mayor sea, no solo aumentará el error, si no que el tiempo de ejecuciónaumentará cuanto mayor sea el paso definido.

3.2. Conclusiones

Tras el estudio e implementación del algoritmo para visualizar geodésicas expuestoen el capítulo anterior, se han llegado a las siguientes conclusiones:

Regularidad de la superficie:

40

Resultados y conclusiones

Para poder proceder con el algoritmo, lo primero es necesario definir una superfi-cie. Pero no toda superficie es válida, ya que para que pueda existir curva geodésicaen todos los puntos del dominio de la superficie, es necesario que ésta sea una su-perficie regular.

Sería interesante, una vez definida la función de la superficie (U,ϕ), comprobar quees regular, es decir:

• (U,ϕ) es una superficie parametrizada.• ϕ es suave.• {−→ϕu,

−→ϕv} es linealmente independiente, es decir, −→ϕu ×−→ϕv �= −→0

Como el algoritmo solo acepta ingresar una superficie parametrizada, la primera con-dición siempre se ha de cumplir. Saber si ϕ es suave, es decir, que existen todas susderivadas en todos los puntos del dominio, será el usuario el que debe verificar quela superficie que introduce cumpla la condición de ser suave. Y por último, para latercera condición, simplemente añadiremos una condición del producto vectorial deambos vectores {−→ϕu,

−→ϕv}.

No obstante, con la implementación del algoritmo hallando la solución de las ecua-ciones no lineales, tras varias pruebas realizadas, comprobar que la superficie esregular, no es suficiente, debemos analizar cómo se comporta la superficie en unentorno cercano a un punto en un radio similar al step que vamos a utilizar.

Figura 3.9: Paraboloide elíptico. Fuente: Sage

ϕ(u, v) = (u, v, u2 + v2)

41

3.2. Conclusiones

Figura 3.10: Fuente: Sage

ϕ(u, v) = (u, v, u6 + v6)

Ambas superficies son regulares, pero la segunda podemos ver que crece muy rápido,llegando a alcanzar un número de cinco dígitos moviéndonos tan solo cinco unidadesen el eje x ó y. Esto haría que aunque cogiésemos un step para el algoritmo muypequeño, fuese muy laborioso encontrar la curva geodésica ya que en pocas iteracio-nes, el siguiente punto que evaluaríamos sería demasiado grande, haciendo que laeficiencia computacional del algoritmo disminuyera, y el avance sería muy lento.

Sin embargo, esta apreciación desaparece con la segunda implementación del al-goritmo, la cual nos va a dar un buen resultado, siempre y cuando la superficie searegular, aunque cabe destacar que si la superficie se comporta de forma no natural,puede que el punto que evaluamos en el algoritmo MTP se encuentre en la región IVdel plano, lo que nos haría calcular otro MP distinto, aumentando el error.

Para este posible problema, una posible solución podría consistir en que indepen-dientemente del step seleccionado, cogiésemos un segundo step atendiendo al dominiode la superficie, más pequeño que el anterior. Si el siguiente punto calculado con elnuevo step, difiere del anterior en más de 3 dígitos, se advierte que sería muy costosocalcular todas las iteraciones.

Otra forma, de dar solución a este problema, es poner un límite numérico, y si laevaluación del punto supera un máximo establecido, la ejecución del algoritmo sedetiene.

Dominio de la superficie:

42

Resultados y conclusiones

Durante las pruebas del algoritmo, se ha observado una mayor precisión a la ho-ra de calcular las curvas geodésicas en superficies con un dominio más pequeño. Enlas pruebas realizadas, se observaba que en las superficies con rangos más grandes,se acumulaba un mayor error a medida que realizábamos una nueva iteración, sinembargo, en rangos más pequeños, la desviación era mucho más pequeña, dandouna mayor fiabilidad al resultado.

Condiciones de ruptura:

El algoritmo define una serie de condiciones, que en caso de que alguna de ellasse cumpla, el algoritmo debe terminar su ejecución. Esas condiciones son:

• La curva geodésica alcanza el límite del dominio.• La geodésica tiene una cierta longitud.• Se supera un máximo de puntos evaluados.• La curva geodésica interseca con ella misma.• La curva geodésica interseca con otras curvas.

Las dos últimas condiciones, no se comprueban en la implementación del algorit-mo, ya que presenta diversos problemas:

Como el algoritmo va obteniendo los nuevos puntos de la curva geodésica dado unpaso, entre los puntos se acumula un error ya que se unen con una recta los pun-tos evaluados. Es por ello, que es muy dificil que dos puntos coincidan llegando ala conclusión que la recta ha intersecado con ella misma o con otra curva, ademássi quisiéramos intersecar la recta entre dos puntos de una curva y la recta entre lospuntos de otra curva, solo podemos asegurar que los puntos obtenidos por el algorit-mo pertenecen a la superficie, por lo que puede ocurrir que no se corten simplementese crucen.

Región IV errata:

En el algoritmo que se propone en el artículo, plantea que el plano tangente que-da dividido en cuatro regiones atendiendo a las siguientes condiciones:

Región I: Puntos pertenecientes a la componente positiva de la tangente.Región IV: Puntos que se encuentran al otro lado de la recta paralela a la recta queune NTP y FTP y pasa por STP . Esto quiere decir que STP se encontrará dentro deltriángulo de vértices FTP,NTP, P .Región II: Puntos que se encuentran en el mismo lado que el punto NTP con res-pecto a la tangente (excluyendo los puntos que pertenecen a la región I y IV).Región III: Puntos que se encuentran en el mismo lado que el punto FTP con res-pecto a la tangente (excluyendo los puntos que pertenecen a la región I y IV).

Un posible escenario es el que se muestra en la figura 2.8.

Pues bien, la región IV no está bien definida, ya que no todos los puntos de esaregión, cumplen que el punto SSP se encuentra contenido en el triángulo de vérticesNTP,FTP, P siendo P un punto de esta región, como por ejemplo:

43

3.3. Eficiencia computacional

Figura 3.11:

Como vemos el punto STP = SSP no está contenido en el triángulo, por lo que hayque replantear la definición de región IV.

Región IV: Puntos que se encuentran en la intersección de las áreas que formanlas rectas que pasan por NTP − STP y FTP − STP y no contiene a los puntos NTPy FTP . Esto quiere decir que STP se encontrará dentro del triángulo de vérticesFTP,NTP, P .

Figura 3.12:

3.3. Eficiencia computacional

En cuanto a la eficiencia computacional del algoritmo por iteración, debemos teneren cuenta que: el cálculo del plano tangente supone una evaluación de las derivadasparciales −→ϕu y −→ϕv y para determinar la dirección del vector tangente solo es necesarioaplicar un producto escalar y sumar un vector. Hasta aquí, el algoritmo no consumemucho tiempo de cómputo, mientras que en el punto de proyección el esfuerzo deuna iteración viene dado por:

• Calcular el nuevo punto de aproximación→ Simplemente sumar un punto y unvector

44

Resultados y conclusiones

• Calcular el correspondiente punto de aproximación en la superficie.

• Evaluar las funciones paramétricas.

• Proyección sobre el plano tangente→ Producto escalar y suma de un vector.

• Probar que el punto obtenido es válido→ Productos escalares.

En conclusion, el esfuerzo computacional requerido, depende principalmente de lalongitud del paso que se tome y cómo se comporte la superficie localmente. Si el pasoes pequeño, la precisión a la hora de obtener los nuevos puntos será mejor, ademássi nos movemos en una superficie que no sea muy turbulenta la precisión tambiénaumenta, y no serán necesarias tantas correcciones por iteración.

Este algoritmo, en comparación con otros métodos de calcular curvas geodésicascomo es el RungeKutta de cuarto orden, suele involucrar un mayor error, depen-diendo del paso que se tome, pero no es necesaria la evaluación de los símbolos deChristoffel, los cuáles consumen mucho tiempo de cómputo.

45

Capítulo 4

Líneas futuras

En este apartado de la memoria se presentarán algunas líneas futuras de investiga-ción que se derivan de este trabajo, así como algunas ideas personales.

Algunas de las nuevas ideas que se pueden desarrollar a partir del algoritmo sonlas siguientes:

Propuesta 1:

Una posible incorporación al algoritmo, es que en vez de dar un punto inicial y unadirección de forma que nos devuelva la curva geodésica desde ese punto en esa di-rección, poder darle un punto inicial y un punto final, y que nos devuelva las curvasgeodésicas que empiecen y acaben en dichos puntos respectivamente.

Esta nueva versión, nos daría la posibilidad de visualizar la mejor ruta para des-plazarnos por la superficie de un punto a otro.

Propuesta 2:

Como hemos visto, el algoritmo presentado en este trabajo, nos devuelve la curvageodésica dada la ecuación de una superficie. Una posible idea, sería emplear elalgoritmo para obtener la curva geodésica en un objeto cualquiera, ya sea en la su-perficie de un coche, un avión...etc. Un objeto cuya superficie no se puede definir conuna ecuación.

Figura 4.1: Superficie de un coche f1. Imagen obtenida en motor.es/formula-1

47

La pregunta es, ¿cómo evaluaríamos los puntos de la geodésica si carecemos de unaecuación que defina dicha superficie?, Ya que como hemos mencionado, resolver lasecuaciones no lineales no es una opción.

Una posible idea, es recubrir la superficie con planos muy pequeños, y de esta forma,calcular la intersección de la recta ortogonal con el plano correspondiente a la horade proyectar el punto sobre la superficie. El recubrimiento funcionaría de la siguienteforma en dos dimensiones:

Figura 4.2: Sección de una esfera con planos aproximando la superficie

Imaginemos, que la esfera de la figura 4.2 es la sección resultante de cortar una rue-da de un coche por la mitad. Al recubrir la superficie con planos, podemos observarque cuanto más pequeños sean los planos, más se ajustan a la superficie haciendoque los resultados sean más fieles a la superficie original.

Esta idea del recubrimiento, es similar a cuando vemos una imagen en una pan-talla. En ella podemos ver curvas, pero si nos acercamos veremos que la imagen estáformada por pequeños píxeles cuadrados.

Propuesta 3:

Una posible continuación para este trabajo de fin de grado, sería estudiar los con-ceptos geométricos vistos, dándole una interpretación física, y de esta forma llegar apoder enunciar y demostrar el teorema de Hawking.

Algunos de estos conceptos son: Subvariedades totalmente geodésicas, interpreta-ción física de la curvatura media, que englobaría estudiar la curvatura media comomedida de expansión, la formulación geométrica de la expansión del universo, la leyde no repulsión y más conceptos relacionados con curvas geodésicas para poder lle-gar a dicho teorema, que de forma coloquial podríamos enunciarlo así:

Teorema de Hawking:

En cualquier modelo matemático físicamente razonable del Universo, el pasado de cual-quier partícula siempre es finito.[15]

48

Líneas futuras

Propuesta 4:

Realizar un estudio sobre geodésicas en variedades de Riemann.

49

Bibliografía

[1] Gonzalo Emmanuel Gamboa Can, La línea recta.Referencia: https://prezi.com/vpsh5obied2u/la-linea-recta/

[2] Espacio Euclídeo.Referencia: https://es.wikipedia.org/wiki/Espacio_euclídeo

[3] Javier Lafuente López, Geometría diferencial de curvas y superficies en el espacioeuclídeo.Referencia: http://www.mat.ucm.es/~jlafuent/own/Manuales/Variedades/cyslc.pdf

[4] Joaquín Pérez Muñoz, Curvas y Superficies.Referencia: http://wpd.ugr.es/~jperez/wordpress/wp-content/uploads/curvas-y-superficies.pdf

[5] Análisis matemático II. Funciones Vectoriales, Universidad Nacional de La Plata.Referencia: http://www.mate.unlp.edu.ar/practicas/54_2_31082015133134.pdf

[6] Curvatura, Universidad Nacional Autónoma de México.Referencia: http://sistemas.fciencias.unam.mx/~erhc/3_prueba.pdf

[7] Geometría diferencial, Superficies en el espacio, Departamento de matemáticaaplicada universidad de Málaga.Referencia: https://santoti.files.wordpress.com/2014/11/tema-1-superficies.pdf

[8] Rafael López Camino Curvas y Superficies, Universidad de Granada.Referencia: https://www.ugr.es/~rcamino/docencia/curvasysuperficies16-17/notastema4.pdf

[9] Ángel Montesdeoca Apuntes de Geometría Diferencial de Curvas y Superficies,La Laguna 2004.Referencia: https://amontes.webs.ull.es/apuntes/gth.pdf

Algoritmo Visualización de geodésicas:

[10] Ingrid Hotz y Hans Hagen Visualizing Geodesics, University of kaiserslautern.

Otras fuentes consultadas:

51

BIBLIOGRAFÍA

[11] Eduardo García Río Una introducción a la curvatura, Universidad Santiago deCompostela.Referencia: http://www.mat.ucm.es/~jlafuent/Docencia/cys/Garcia%20Rio.pdf

[12] Curvas en el plano y en el espacio.Referencia: https://webs.um.es/pherrero/Geo_dif/curvas2.pdf

[13] Víctor Cano Martínez La curvatura y su papel en la Geometría, Universidad deMurcia.Referencia: https://www.um.es/documents/118351/1884002/TFG_CANO+MARTINEZ.pdf/5859b2f2-7f7c-4ceb-8a19-0c7d87dcb117

[14] Método de Runge-kutta, Wikipedia.Referencia: https://es.wikipedia.org/wiki/M%C3%A9todo_de_Runge-Kutta

[15] Javier Lafuente López, El Teorema de Hawking, Universidad Complutense deMadrid.Referencia: http://www.mat.ucm.es/~jlafuent/own/Manuales/Fisica/Hawking.pdf

52

Anexo

.1. Código en python

Librerías adicionales importadas

1 import random

Declaración de variables

1 u,v = var(’u,v’)2 x,y,z = var(’x,y,z’)3 l = var(’l’)

.1.1. Primera implementación

Esta es la implementación del procedimiento del algoritmo que resuelve las ecuacio-nes no lineales.

Función que devuelve si dada una superficie, sus vectores −→ϕu y −→ϕv son linealmen-te independientes, para verificar si podemos considerar dicha superficie, como unasuperficie regular.

1 def superficieRegular(xp,yp,zp):2 Ou = [diff(xp,u),diff(yp,u),diff(zp,u)]3 Ov = [diff(xp,v),diff(yp,v),diff(zp,v)]4

5 MVect = Matrix([Ou,Ov,[x,y,z]])6 ProdVect = MVect.det()7 if(ProdVect == 0):8 return False9 return True

Función que dado un punto bidimensional y las ecuaciones paramétricas de unasuperficie, sustituye el punto en la superficie obteniendo un punto tridimensional.

1 def pntoS(S,P):2 try:3 x1 = S[0](u=P[0],v=P[1])4 except:5 x1 = S[0]6 try:7 x2 = S[1](u=P[0],v=P[1])8 except:9 x2 = S[1]

53

.1. Código en python

10 try:11 x3 = S[2](u=P[0],v=P[1])12 except:13 x3 = S[2]14 return [x1,x2,x3]

Función que dado un punto tridimensional y las ecuaciones paramétricas de unasuperficie, resuelve las ecuaciones y nos devuelve el punto bidimensional.

1 def pnto2d(Superficie,P):2 param = solve([Superficie[0] == P[0], Superficie[1] == P[1], Superficie[2] == P[2]], u,v,

solution_dict=True)3 pnto2S = [param[0][u],param[0][v]]4 return pnto2S

Función que dada una superficie y un punto P bidimensional, nos devuelve la ecua-ción del plano tangente, el valor independiente del plano tangente afín, la base dedicho plano y el producto vectorial de los vectores −→ϕu y −→ϕv en el punto P .

1 def Stang(xp,yp,zp,P):2 Ou = [diff(xp,u),diff(yp,u),diff(zp,u)]3 Ov = [diff(xp,v),diff(yp,v),diff(zp,v)]4

5 BaseT = [(Ou[0](u=P[0], v=P[1]),Ou[1](u=P[0], v=P[1]),Ou[2](u=P[0], v=P[1])),(Ov[0](v=P[1], u=P[0]),Ov[1](v=P[1], u=P[0]),Ov[2](v=P[1], u=P[0]))]

6 BaseTM = [[Ou[0](u=P[0], v=P[1]),Ou[1](u=P[0], v=P[1]),Ou[2](u=P[0], v=P[1])],[Ov[0](v=P[1], u=P[0]),Ov[1](v=P[1], u=P[0]),Ov[2](v=P[1], u=P[0])]]

7

8 MVect = Matrix([BaseTM[0],BaseTM[1],[x,y,z]])9 ProdVect = MVect.det()

10

11 planoTangente = ProdVect * (-1)12 try:13 VX = xp(u=P[0], v=P[1])14 except:15 VX = xp16 try:17 VY = yp(u=P[0], v=P[1])18 except:19 VY = yp20 try:21 VZ = zp(u=P[0], v=P[1])22 except:23 VZ = zp24 VTang = planoTangente(x=VX,y=VY,z=VZ)25 return [planoTangente, VTang, BaseTM,ProdVect]

Función que dado un punto un vector un paso y el plano tangente afín en dichopunto a la superficie, nos devuelve un punto de aproximación al punto definido auna distancia determinada por el paso, en la dirección definida y contenido en elplano tangente afín.

1 def pntoAprox(P,V,step,plano):2 if(V[0] == 0 and V[1] == 0):3 return "El vector debe ser distinto de [0,0]"4 mcd = V[0].gcd(V[1])5 V1 = [V[0]/mcd,V[1]/mcd]6 Paux = [V1[0]+P[0],V1[1]+P[1]]7 P1 = [Paux[0]/step,Paux[1]/step]8 mat = [[P[0],P[1],plano(x=P[0], y=P[1])],[P1[0],P1[1],plano(x=P1[0], y=P1[1])]]9 return mat

54

BIBLIOGRAFÍA

Función que dado un punto y una base de un plano, nos devuelve la ecuación para-métrica de la recta ortogonal a dicho plano que pasa por el punto definido.

1 def rOrt(P,Vs):2 MVect = Matrix([[x,y,z],Vs[0],Vs[1]])3 ProdVect = MVect.det()4 Vd = [ProdVect(x=1,y=0,z=0),ProdVect(x=0,y=1,z=0),ProdVect(x=0,y=0,z=1)]5 #Acotar 20digits6 recta = [numerical_approx(P[0],digits=10) + numerical_approx(Vd[0],digits=10)*l,

numerical_approx(P[1],digits=10) + numerical_approx(Vd[1],digits=10)*l,numerical_approx(P[2],digits=10) + numerical_approx(Vd[2],digits=10)*l]

7 return recta

Función que dada una recta y una superficie, calcula los puntos de intersección dela recta con la superficie.

1 def interseccionRS(recta,Superficie):2 IntPntos = solve([Superficie[0] == recta[0],Superficie[1] == recta[1],Superficie[2] ==

recta[2]],u,v,l,solution_dict=True)3 arrPntosInterseccion = []4 for i in range(len(IntPntos)):5 try:6 X1 = Superficie[0](u = IntPntos[i][u],v = IntPntos[i][v])7 except:8 X1 = Superficie[0]9 try:

10 X2 = Superficie[1](u = IntPntos[i][u],v = IntPntos[i][v])11 except:12 X2 = Superficie[1]13 try:14 X3 = Superficie[2](u = IntPntos[i][u],v = IntPntos[i][v])15 except:16 X3 = Superficie[2]17 arrPntosInterseccion.append([X1,X2,X3])18 return arrPntosInterseccion

Función que dado un punto Q y una lista de puntos, nos devuelve el punto de la listaque se encuentra más cerca, es decir menor distancia, del punto Q.

1 def menorDist(P,pntos):2 pntoMin = pntos[0]3 for i in range(len(pntos)):4 if(sqrt((pntoMin[0]-P[0])**2+(pntoMin[1]-P[1])**2+(pntoMin[2]-P[2])**2) > sqrt((pntos[

i][0]-P[0])**2+(pntos[i][1]-P[1])**2+(pntos[i][2]-P[2])**2)):5 pntoMin = pntos[i]6 return pntoMin

Función que dados los parámetros iniciales del algoritmo, menos la longitud de pun-tos de la curva geodésica, nos calcula el siguiente punto de la curva geodésica, esdecir, una iteración del algoritmo.

1 def iteracion(Superficie, pnto, direccion, step):2 pnto3d = pntoS(Superficie,pnto)3 #1.-Plano tangente a la superficie en el punto4 planoTangente = Stang(Superficie[0],Superficie[1],Superficie[2],pnto)5 print("planoTangente")6 print(planoTangente)7 #2.-Sacar aproximacion en el plano dada la direccion y el step8 pntoAproximacion = pntoAprox(pnto,direccion,step,planoTangente [0](z=0)-planoTangente [1])

[1]9 print("pntoAproximacion")

10 print(pntoAproximacion)

55

.1. Código en python

11 #3.-recta ortogonal al plano en el pntoAproximacion12 rectaOrtogonal = rOrt(pntoAproximacion,planoTangente[2])13 print("rectaOrtogonal")14 print(rectaOrtogonal)15 #4.-Interseccion recta-Superficie16 pntosSiguienteSuperficie = interseccionRS(rectaOrtogonal,Superficie)17 print("pntosSiguienteSuperficie")18 print(pntosSiguienteSuperficie)19 #5.-De los puntos obtenidos ver cual intersecta antes a la superficie20 pntoSiguienteSuperficie = menorDist(pntoAproximacion,pntosSiguienteSuperficie)21 print("pntosSiguienteSuperficie")22 print(pntoSiguienteSuperficie)23 #6.-Resolvemos las ecuaciones de la superficie con el nuevo punto para obtener [u,v]24 NP = pnto2d(Superficie,pntoSiguienteSuperficie)25 print("NP")26 print(NP)27 return [NP,pntoSiguienteSuperficie]

Función que dados todos los parámetros del algoritmo, empleando la función ante-rior, calcula n iteraciones, siendo n el límite definido para la curva geodésica (númerode puntos). Esta función nos devuelve la lista de puntos tanto bidimensional comotridimensional de los puntos de la curva geodésica.

1 def algoritmoFinal(Superficie,SP,SD,step,limit):2 SPS = pntoS(Superficie,SP)3 arr2dPntos = [SP]4 arr3dPntos = [SPS]5 for i in range(limit):6 pntoi = iteracion(Superficie, arr2dPntos[i], SD, step)7 print("FIN")8 FP = pntoi[0]9 FPS = pntoi[1]

10 arr2dPntos.append(FP)11 arr3dPntos.append(FPS)12 return [arr2dPntos,arr3dPntos]

.1.2. Segunda implementación

Se presentan, a continuación, las funciones que se han implementado para la solu-ción propuesta en el artículo.

Función para dibujar una superficie trigonométrica con dominio [0, 2π]

1 def plotSuperficie(x,y,z):2 return parametric_plot3d((x,y,z),(u,0,2*pi),(v,0,2*pi),color="white",opacity=.3, figsize

=[10, 2])

Función para dibujar el resto de superficies con un rango establecido.

1 def plotSuperficie2(x,y,z):2 return parametric_plot3d((x,y,z),(u,-7,7),(v,-7,7),color="white",opacity=.4, figsize=[10,

2])

Función para calcular un punto de aproximación a otro dada una dirección y unpaso.

1 def FPs(SP,step,SD):2 p1 = [step*SD[0],step*SD[1]]

56

BIBLIOGRAFÍA

3 FP = [SP[0] + p1[0], SP[1] + p1[1]]4 return FP

Función que calcula el punto medio de otros dos puntos.

1 def midPoint(A,B):2 return [(A[0]+B[0])/2, (A[1]+B[1])/2]

Función que nos devuelve el punto de intersección de una recta y un plano

1 def interseccionRP(recta, plano):2 lambd = solve([plano[0](x=recta[0],y=recta[1],z=recta[2])==plano[1]],l,solution_dict=True)3

4 try:5 X1 = recta[0](l=lambd[0][l])6 except:7 X1 = recta[0]8 try:9 X2 = recta[1](l=lambd[0][l])

10 except:11 X2 = recta[1]12 try:13 X3 = recta[2](l=lambd[0][l])14 except:15 X3 = recta[2]16

17

18 FTP = [X1,X2,X3]19 return FTP

Función que nos devuelve el nuevo vector de forma que la tangente se encuentreentre FTP y la aproximación de la nueva dirección.

1 def nuevoVector(SP,SD,FP):2 #Punto auxiliar en t3 Pt = [SD[0]+SP[0],SD[1]+SP[1]]4 SDN = [Pt[0]-FP[0],Pt[1]-FP[1]]5 Pnp = [SDN[0]+Pt[0],SDN[1]+Pt[1]]6 SD2 = [Pnp[0]-SP[0],Pnp[1]-SP[1]]7 return [SD2,Pt]

Función que calcula la primera iteración del algoritmo, que se diferencia de las de-más, de que al no existir una evaluación previa, el punto de aproximación que setoma es válido.

1 def iteracion1(Superficie,SP,SD,step):2 SSP = pntoS(Superficie,SP)3 FP = FPs(SP,step,SD)4 FSP = pntoS(Superficie,FP)5 return[SP,FP,SSP,FSP]

Función que calcula las demás iteraciones, devolviendo el siguiente punto de la geo-désica ya validado.

1 def iteracion2(Superficie,L2,LS3,SD,step):2 LP = L2[0]3 SP = L2[1]4 LSP = LS3[0]5 SSP = LS3[1] #STP

57

.1. Código en python

6

7 paramPlano = Stang(Superficie[0],Superficie[1],Superficie[2],SP)8 FP = FPs(SP,step,SD)9 FSP = pntoS(Superficie,FP)

10 rectaLTP = rOrt(LSP,paramPlano[2])11 rectaFTP = rOrt(FSP,paramPlano[2])12 LTP = interseccionRP(rectaLTP,paramPlano)13 FTP = interseccionRP(rectaFTP,paramPlano)14 #Comprobar que FTP esta en la tangente o procedemiento devuelve [NP,NSP] que son el mismo

FP o distinto15 Ns = comprobacion(LP,SP,FP,FSP,LTP,SSP,FTP,paramPlano,Superficie,step)16 return [Ns[0],Ns[1]]

Función que reajusta el punto obtenido en caso de no ser válido dependiendo de laregión en la que se encuentre.

1 def comprobacion(LP,SP,FP,FSP,LTP,SSP,FTP,paramPlano,Superficie,step):2 vect1 = [SSP[0]-LTP[0],SSP[1]-LTP[1],SSP[2]-LTP[2]]3 vect2 = [SSP[0]-FTP[0],SSP[1]-FTP[1],SSP[2]-FTP[2]]4 #Hacemos los vectores unitarios para ver si coinciden5 mod1 = sqrt(vect1[0]^2+vect1[1]^2+vect1[2]^2)6 mod2 = sqrt(vect2[0]^2+vect2[1]^2+vect2[2]^2)7 Uvect1 = [vect1[0]/mod1,vect1[1]/mod1,vect1[2]/mod1]8 Uvect2 = [vect2[0]/mod2,vect2[1]/mod2,vect2[2]/mod2]9

10 if(Uvect1[0] == Uvect2[0] and Uvect1[1] == Uvect2[1] and Uvect1[2] == Uvect2[2]):11 return [FP,FSP]12 else:13 FP = FP14 SD = [SP[0]-LP[0],SP[1]-LP[1]] #Vector de tangente15 SD2 = nuevoVector(SP,SD,FP)[0]16 Pt = nuevoVector(SP,SD,FP)[1]17 NP = FPs(SP,step,SD2)18 MP = midPoint(FP,NP)19 ruptura = false20 print("Entro en while para reajustar")21 i = 022 while(i < 6):23 rupt = comprobarPlano(SP,FP,NP,MP,Pt,paramPlano,Superficie)[0]24 region = comprobarPlano(SP,FP,NP,MP,Pt,paramPlano,Superficie)[1]25 if(region == 1):26 MP = MP27 if(region == 2):28 NP = MP29 MP = midPoint(NP,FP)30 if(region != 1 and region != 2):31 FP = MP32 MP = midPoint(NP,FP)33 i = i+134 return [MP,pntoS(Superficie,MP)]

Función que llevas los puntos al plano tangente, para verificar la situación del puntoMTP .

1 def comprobarPlano(SP,FP,NP,MP,Pt,paramPlano,Superficie): #Pt es LP2 condicion = false3 region = 14 #pasamos todo al plano5 STP = pntoS(Superficie,SP)6 FSP = pntoS(Superficie,FP)7 NSP = pntoS(Superficie,NP)8 MSP = pntoS(Superficie,MP)9 PSt = pntoS(Superficie,Pt)

10 rFSP = rOrt(FSP,paramPlano[2])11 rNSP = rOrt(NSP,paramPlano[2])12 rMSP = rOrt(MSP,paramPlano[2])

58

BIBLIOGRAFÍA

13 rPSt = rOrt(PSt,paramPlano[2])14 FTP = interseccionRP(rFSP,paramPlano)15 NTP = interseccionRP(rNSP,paramPlano)16 MTP = interseccionRP(rMSP,paramPlano)17 PTt = interseccionRP(rPSt,paramPlano)18 #Comprobamos si esta en la tangente MTP19 vectTang = [PTt[0]-STP[0],PTt[1]-STP[1],PTt[2]-STP[2]]20 vectMTP = [MTP[0]-STP[0],MTP[1]-STP[1],MTP[2]-STP[2]]21 mod1 = sqrt(vectTang[0]^2+vectTang[1]^2,vectTang[2]^2)22 mod2 = sqrt(vectMTP[0]^2+vectMTP[1]^2,vectMTP[2]^2)23 vectTangU = [vectTang[0]/mod1,vectTang[1]/mod1,vectTang[2]/mod1]24 vectMTPU = [vectMTP[0]/mod2,vectMTP[1]/mod2,vectMTP[2]/mod2]25 if(vectTangU[0] == vectMTPU[0] and vectTangU[1] == vectMTPU[1] and vectTangU[2] ==

vectMTPU[2]): #Si MTP esta en la tangente26 return [True,1]27 else:28 #Ver donde esta MTP29 #angulo de dos vectores30 vectFTP = [FTP[0]-STP[0],FTP[1]-STP[1],FTP[2]-STP[2]]31

32 aFTPt = (vectFTP[0]*vectTang[0]+vectFTP[1]*vectTang[1]+vectFTP[2]*vectTang[2])/(sqrt(vectFTP[0]^2+vectFTP[1]^2+vectFTP[2]^2)*mod1)

33 aMTPf = (vectFTP[0]*vectMTP[0]+vectFTP[1]*vectMTP[1]+vectFTP[2]*vectMTP[2])/(sqrt(vectFTP[0]^2+vectFTP[1]^2+vectFTP[2]^2)*mod2)

34

35 if(acos(aFTPt) < acos(aMTPf)):36 return [False,2]37 else:38 return [False,1]

Función final del algoritmo.

1 def algoritmoFinal2(Superficie,SP,SD,step,limit):2 listaPuntosF2 = [SP]3 listaPuntosF3 = []4 listaEvaluacion2 = [] #2indices5 listaEvaluacion3 = [] #2indices6 i1 = iteracion1(Superficie,SP,SD,step)7 limit = limit - 18 listaPuntosF2.append(i1[1])9 listaPuntosF3.append(i1[2])

10 listaPuntosF3.append(i1[3])11 listaEvaluacion2 = [i1[0],i1[1]]12 listaEvaluacion3 = [i1[2],i1[3]]13 for i in range(limit):14 ii = iteracion2(Superficie,listaEvaluacion2,listaEvaluacion3,SD,step)15 print(ii)16 listaEvaluacion2.pop(0)17 listaEvaluacion2.append(ii[0])18 listaEvaluacion3.pop(0)19 listaEvaluacion3.append(ii[1])20 listaPuntosF2.append(ii[0])21 listaPuntosF3.append(ii[1])22 return[listaPuntosF2,listaPuntosF3]

También se hace uso de la función Stang que calcula el plano tangente en un puntodefinida en la primera implementación.

59

Este documento esta firmado porFirmante CN=tfgm.fi.upm.es, OU=CCFI, O=Facultad de Informatica - UPM,

C=ES

Fecha/Hora Wed Jun 03 21:01:16 CEST 2020

Emisor delCertificado

[email protected], CN=CA Facultad deInformatica, O=Facultad de Informatica - UPM, C=ES

Numero de Serie 630

Metodo urn:adobe.com:Adobe.PPKLite:adbe.pkcs7.sha1 (AdobeSignature)