Animaciones de curvas

Esta entrada participa en la Edición 2.3 del Carnaval de Matemáticas
cuyo anfitrión es el blog Los Matemáticos no son Gente Seria 

En esta entrada os mostramos algunas animaciones de curvas que hemos realizado con el programa Mathematica. Las funciones que aparecen en los subtítulos son las correspondientes funciones de curvatura, que incluyen un parámetro u variable que da lugar a la animación.

El Teorema Fundamental de Curvas Planas  garantiza la existencia (y unicidad salvo movimientos Euclídeos) de una curva plana con una curvatura \kappa_2 dada. Por ejemplo, la curva que tiene \kappa_2=0 en todos sus puntos es una recta (o un tramo de ella). La curva que tiene curvatura constante c es un tramo de circunferencia de radio 1/c .

La curvatura de una curva unitaria \alpha, parametrizada por su longitud de arco s, es el producto escalar entre los vectores aceleración \alpha''(s) y el vector velocidad \alpha'(s) girado 90º,  que denotamos J\alpha'(s):

\kappa_2(s)=\alpha''(s) \cdot J \alpha'(s)

de modo que la aceleración es perpendicular al vector velocidad (no hay aceleración tangencial, porque la curva al ser unitaria tiene velocidad con módulo constante igual a 1):

\alpha''(s) = \kappa_2(s) J \alpha'(s).

Hay que observar que cuando \kappa_2 es positiva, la curva gira hacia la izquierda, y si es negativa hacia la derecha, y su módulo indica cuánto se dobla.

Por ejemplo, la curva que tiene \kappa_2(s)=s es la famosa clotoide, usada para empalmar tramos de ferrocarril o carreteras:

Fuente: http://es.wikipedia.org/wiki/Clotoide

Os dejamos los comandos del Mathematica para que podáis jugar con estas curvas. Solo tenéis que substituir la función en negrita por la que vosotros queráis  (# es el parámetro arco s).

intrinsic[f_, a_: 0, {c_: 0, d_: 0, e_: 0}, {min_: – 15, max_: 15}, opts___][t_] :=Module[{x, y, z, s}, eqic = {x'[s] == Cos[z[s]], y'[s] == Sin[z[s]], z'[s] == f[s], x[a] == c, y[a] == d, z[a] == e}; sol = NDSolve[eqic, {x, y, z}, {s, min, max}, opts]; {x[t], y[t]} /. sol[[1]]]

Animate[Show[ ParametricPlot[ Evaluate[ intrinsic[u # 3 Sin[#] Cos[#]  &, 0, {0, 0, 0}, {-15, 15}][s]], {s, -15, 15}, ImageSize -> 350, PlotRange -> {{-5, 5}, {-5, 5}}]], {u, -5, 5, .01}]

Podéis probar por ejemplo con las funciones

u # Cos[#], u #^2, Exp[u #], Exp[Cos[u #]], etc 

[OJO: Si probáis con una función que esté definida en un rango diferente a {u,-5,5}, o {s,-5,5}, tedréis que cambiar los extremos. ]

Este sistema de ecuaciones diferenciales nos da como solución  una curva con curvatura prefijada f(s) = \kappa_2(s). La parametrización explícita de la curva es

\alpha(s) = (\int_a^s Cos(\theta(s)) ds, \int_a^s Sin(\theta(s)) ds) + (c, d)

donde

\theta(s)= \int_a^s\kappa_2(s) ds +e

es el ángulo que forma el vector velocidad de la curva con el semieje x positivo, llamado ángulo de giro.

El punto (c,d) es por donde pasa la curva en \alpha(a), que en el sistema de ecuaciones es (0,0) por defecto. Y el ángulo de giro inicial es e, por defecto 0, es decir, sale la curva con vector velocidad (1,0), tangente al eje x.

Referencia: Notebook 5, del libro

Modern Differential Geometry of CURVES and SURFACES with Mathematica, by Alfred Gray, Elsa Abbena, Simon Salamon CRC Press, 2006.

One reply to “Animaciones de curvas

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto:
close-alt close collapse comment ellipsis expand gallery heart lock menu next pinned previous reply search share star