Dibujando curvas cerradas con epiciclos

1. Una introducción al concepto de epiciclos

Considera un punto que se mueve sobre la circunferencia de un círculo.


Si deseas expresar el movimiento de este punto en términos matemáticos, podemos decir que las coordenadas $x$ e $y$ del punto se pueden definir como: 
\[ \begin{aligned} x(t) & = R\cos(\omega t)\\ y(t) & = R\mbox{ sen}(\omega t).\\ \end{aligned} \]

Donde $R$ es el radio del disco y $\omega$ es la velocidad con la cual el punto está rotando. Este tipo de fórmula se denomina como ecuación paramétrica, si esta ecuación no te es familiar, valdrá la pena leer un como acerca de este tema antes de proseguir.

Ahora veamos algo un poco más complejo: agreguemos un segundo círculo con su propio punto rotando en su circunferencia. Si trazamos el lugar geométrico de este segundo punto, podemos observar una especie de flor o algo así:


No es difícil describir matemáticamente este trazo, o curva, un poco más complejo: la posición de este punto es solamente la suma de cada una de las partes anteriores. Más formalmente, el punto en un tiempo $t$ es la posición $(x_1(t), y_1(t))$ con respecto al primer círculo más la posición $(x_2(t), y_2(t))$ del segundo círculo:
\[ \begin{aligned} x(t) &= R_1\cos(\omega_1 t) + R_2\cos(\omega_2 t)\\ y(t) & = R_1\mbox{ sen}(\omega_1 t) + R_2\mbox{ sen}(\omega_2 t).\\ \end{aligned} \]
Aquí $R_1$ es el disco de radio del primer círculo y $R_2$ es el radio del segundo. Usaremos un subíndice en adelante para diferenciar entre los radios de los círculos ($R_i$) y la velocidad con la que están rotando ($\omega_i$).

Al agregar círculos y variando sus velocidades y tamaños, puedes incrementar el nivel de complejidad de la curva trazada, la cual se le conoce con el nombre de epiciclo.
    
Los epiciclos son curvas determinadas por las ecuaciones paramétricas:
\[ \begin{aligned} x(t) & = \sum_i R_i\cos(\omega_i t + \phi_i)\\ y(t) &= \sum_i R_i\mbox{ sen}(\omega_i t + \phi_i).\\ \end{aligned} \]
Este nuevo símbolo $\phi_i$ determina la rotation \(i\) inicial en un tiempo $t = 0$, la cual se denomina fase inicial. Si no especificamos esta fase inicial, podemos describir solo epiciclos donde los círculos comienzan alineados, lo cual es solamente una porción de un conjunto de epiciclos.

Vamos ahora a profundizar en las formas que pueden tomar estos epiciclos. ¿Todos los epiciclos tienen que ser "curvas"? Bueno, si tenemos dos círculos que giran en direcciones opuestas, podemos crear una línea recta:


En este caso, como los tamaños de los círculos son los mismos, las componentes $y$ se cancelan entre sí, y obtenemos:
\[ \begin{aligned} x(t) &= R\cos(\omega t) + R\cos(-\omega t) = R\cos(\omega t) + R\cos(\omega t) = 2R\cos(\omega t)\\ y(t) & = R\mbox{ sen}(\omega t) + R\mbox{ sen}(-\omega t) = R\mbox{ sen}(\omega t) - R\mbox{ sen}(\omega t) = 0.\\ \end{aligned} \]
En este caso $y(t)$ siempre es zero, lo cual significa que dibujamos una línea recta sobre el eje $x$. ¡Genial! Parece que podemos crear epiciclos que son curvas simples como un círculo, curvas complejas y locas que parecen quién sabe qué cosa y una simple línea recta. Además, parece que cuantos más círculos tengamos, más complejas serán las curvas. Dado esto, tal vez si tenemos suficientes círculos, elegimos los tamaños correctos para cada uno de ellos y los giramos a las velocidades adecuadas, podemos crear cualquier curva cerrada, como por ejemplo las siguientes:


Entonces, ¿todos los epiciclos tienen que ser "curvas cerradas"? Como habrás adivinado en este momento, ¡la respuesta es sí! Usando epiciclos, podemos dibujar cualquier curva cerrada, incluso un gato o un dinosaurio:


Sin embargo, todavía hay una pregunta sin responder: ¿exactamente cómo determinamos qué círculos usar y qué tan rápido giran? Para el dibujo del epiciclo de la letra griega $\pi$ mostrada anteriormente, ¿cómo calculamos los valores de los diversos $R_i$, $\omega_i$ y $\phi_i$ para que el dibujo sea el correcto? Vamos a tratar de responder a esta pregunta.

2. Calculando epiciclos para una curva en general

El primer paso es formalizar el problema. En lugar de decir, la letra griega $\pi$, presentemos una manera matemática de describir lo que queremos. En lugar de describir una curva que quiero trazar, digamos que en lugar de eso solo especifico algunos puntos y luego encuentro una fórmula para ''conectar los puntos'' a la forma que quiero. Esto significa que nuestra entrada es un conjunto de algunos puntos $(x_j, y_j)$, y queremos encontrar los epiciclos que mejor conecten a estos puntos, es decir, encontrar los valores $R_i, \omega_i$ y $\phi_i$ de tal manera que:
\[ \begin{aligned} x(t) & = \sum_i^N R_i\cos(\omega_i t + \phi_i)\\ y(t) & = \sum_i^N R_i\mbox{ sen}(\omega_i t + \phi_i)\\ \end{aligned} \]
se aproxima a los puntos tanto como sea posible. Luego, podemos elegir los puntos para dibujar la letra griega $\pi$, resolver las variables y ¡obtener nuestro epiciclo!

Al observar las ecuaciones, verás que introdujimos una nueva variable $N$: como has notado anteriormente, cuanto más círculos tengamos, más nos acercaremos a la curva deseada, así que seremos específicos y estableceremos el problema de la siguiente manera: ''Si solo tenemos $N$ círculos, ¿cuál es la mejor aproximación que podemos hacer?''

Nota: en matemáticas hay muchas maneras de decir ''lo más cerca posible de los puntos''. Usaremos una de las medidas más comunes, llamada error cuadrático medio (como resultado, esta es una gran elección y hace nuestra vida mucho más fácil).

Perfecto, hemos especificado el problema, ¿y ahora qué? Bueno, para ser honesto, este es el momento en que los matemáticos se golpean la cabeza contra la pared por un tiempo y esperan poder realizar algo creativo. En lo personal, a este autor le ha tomado un par de años de exploración para comprender cómo funciona. Después de una ardua investigación, comprendí que hay que usar algo llamado fórmula de Euler y una técnica llamada Transformada de Fourier Discreta para resolver este problema de manera no solo elegante, sino también muy fácil de realizar para las computadoras. Advertencia, las cosas se van a poner técnicas muy rápidamente de aquí en adelante.

Así es como funciona: notarás que en las ecuaciones anteriores parece haber muchas similitudes entre cómo calculamos $x (t)$ e $y (t)$. De hecho, la única diferencia es que uno usamos $\cos $ y en el otro $\mbox{sen}$. Así que tal vez haya alguna manera de que podamos ''sumar'' las dos ecuaciones para simplificar nuestra vida y solo tenemos que lidiar con una ecuación en lugar de dos. No podemos simplemente agregarlos directamente, porque necesitamos mantener separados los términos $x (t)$ e $y (t)$. 

¿Qué pasaría si, en lugar de pensar en nuestros puntos a lo largo de los ejes $x$ e $y$, pensemos en esos puntos como números complejos a lo largo de los ejes real e imaginario? Parece una locura, pero nos permite avanzar:
\[ p_j = x_j + iy_j \\ x(t) + iy(t) = \sum_i^N R_i(\cos(\omega_i t + \phi_i) + i\mbox{ sen}(\omega_i t + \phi_i)). \]
¡Genial! Tenemos una fórmula y no hemos perdido nada: aún podemos obtener $x$ como la parte real e $y$ como la parte imaginaria de la función. Aquí podemos hacer uso de la fórmula de Euler, y veremos que estamos buscando las variables tales que:
\[ \sum_j^N R_j\exp\bigg(i\left( \omega_j t+ \phi_j\right)\bigg) \]
se aproximen tanto como sea posible a los puntos complejos $p_j$. Mejor aún, si definimos $X_j=R_j\exp\left(i\, \phi_j\right)$, entonces la fórmula anterior se puede escribir de la siguiente manera:
\[ \sum_j^N X_j\exp\left( i\,\omega_j t\right) \]
Haremos una suposición final para simplificar las cosas: en lugar de elegir $N$ velocidades arbitrarias, haremos que las velocidades sean $$0 \text{(estacionarias)}, 1, -1, 2, -2, 3, -3, \ldots, N / 2, -N / 2.$$ Con esta simplificación, podemos expresar nuestro problema como:

Encontrar los números complejos $X_i$ para minimizar el error cuadrático medio entre los puntos complejos $p_j$ y la curva
\[ p(t) = \sum_{j=0}^N X_j \exp\left( i\,\frac{2\pi j}{N}  t\right). \]
Tomó mucho trabajo llegar aquí, pero valió la pena. Resulta que la expresión anterior coincide casi idénticamente con la fórmula conocida como la Transformada de Fourier Discreta. Esto significa que podemos usar esta herramienta en los puntos que tenemos (los que dibujaron la letra griega $\pi$, ¿recuerdas?) y obtener los valores $X_j$ y con base en estos, podemos obtener los $R_j$ y $\phi_j$, sabiendo que $\omega_j = i\,\frac{2 \pi  j}{N}$. ¡Voila!

Ok, entonces, ¿cómo supimos que debemos usar la transformada de Fourier? Bueno, Fourier transforma fórmulas con muchas funciones $\mbox{sen}$ y $\cos$ en conjuntos de puntos complejos y viceversa. En otras palabras, la transformada de Fourier es una forma de dividir algo, en este caso una curva compleja, en un montón de ondas sinusoidales. Para dar una una explicación detallada acerca de este tema, necesitaremos escribir una entrada nueva de este blog en el futuro. 

Así que ahí lo tienen: si especificamos un número de puntos, podemos usar un epiciclo para dibujar una curva que conecta los puntos, y podemos usar la Transformada Discreta de Fourier para descubrir qué es ese epiciclo.



Gracias por llegar al final de esta entrada.

Todas las animaciones fueron creadas usando GeoGebra. En el siguiente enlace puedes acceder a los applets usados: Fourier



Comentarios

  1. Hola, espectacular. Espero esa explicación con ansias.

    ResponderEliminar
    Respuestas
    1. Gracias. Por supuesto. Es solo que ahora estamos de vacaciones.

      Felices fiestas.

      Eliminar
    2. ¡Felices fiestas! Y gracias por el blog, es una joya.

      Eliminar
    3. Muchas gracias. Es un gusto para nosotros saber que es de utilidad.

      Eliminar
    4. Hola, ya está la explicación acerca de los epiciclos. Saludos.

      Eliminar

Publicar un comentario

Entradas populares

Galileo Galilei y su ley de caída libre

Breve historia del Cálculo

Una historia de la Teoría de Conjuntos