Triedro de Frenet - Serret de una curva $\gamma (t)$ en el espacio en MatLab

Bueno todos sabemos lo importante que es saber el triedro de Frenet - Serret de una curva en lo que respecta al movimiento de una partícula en el espacio como también saber si la curva es plana o espacial. Por lo tanto aqui se muestra un código de Matlab en el cual tiene la función de mostrar los vectores tangente unitario, normal unitario y binormal unitario de una curva $\gamma(t)$.

Triedro de Frenet - Serret de la Hélice Toroidal  


No obstante antes de eso tenemos que saber las ecuaciones de los vectores antes mencionado las cuales son las siguientes:

  • Curva Regular
$$\begin{equation*} \frac{d\gamma (t)}{dt} \not= \vec{0} \hspace{1cm},\hspace{0.2cm} \forall \hspace{0.2cm} t \hspace{0.1cm} \in \hspace{0.1cm} Dom \gamma (t)\end{equation*}$$

  • Vector Tangente Unitario
$$\begin{equation} T(t) = \frac{\gamma '(t)}{\| \gamma'(t) \|} \end{equation}$$
  • Vector Normal Unitario
$$\begin{equation} N(t) = \frac{T'(t) }{\| T'(t) \|} \end{equation}$$
  • Vector Binormal Unitario
$$\begin{equation} B(t) = T(t) \times N(t) \end{equation}$$

Código fuente del Triedro de Frenet - Serret en Matlab

syms t

clear all

clc

% Curva en el espacio 

disp(' ingrese una curva regular ')

t =  input('Ingrese el dominio de la curva regular: ');

x = input(' Ingrese la parte en x de la curva: ');

y = input(' Ingrese la parte en y de la curva: ');

z = input(' Ingrese la parte en z de la curva: ');

C = [x, y, z];

plot3(x, y, z, 'k','Linewidth', 3)

% Vector Tangente Unitario

dx = gradient(x);

dy = gradient(y);

dz = gradient(z);

dr = [dx, dy, dz];

Tx = dx./norm(dr);

Ty = dy./norm(dr);

Tz = dz./norm(dr);

T = [Tx, Ty, Tz];

% Vector Normal Unitario

dTx = gradient(Tx);

dTy = gradient(Ty);

dTz = gradient(Tz);

dTr = [dTx, dTy, dTz];

Nx = dTx./norm(dTr);

Ny = dTy./norm(dTr);

Nz = dTz./norm(dTr);

N = [Nx, Ny, Nz];

% Vector Binormal Unitario 

Bx = Ty.*Nz - Tz.*Ny;

By = Tz.*Nx - Tx.*Nz;

Bz = Tx.*Ny - Ty.*Nx;

B = [Bx, By, Bz];

% Adicionales de la Grafica de la curva $\gamma (t)$

hold on

vT = quiver3(x,y,z,Tx,Ty,Tz, 'b')

vN = quiver3(x,y,z,Nx,Ny,Nz, 'r')

vB = quiver3(x,y,z,Bx,By,Bz, 'g')

grid on

xlabel(" Eje X")

ylabel(" Eje Y")

zlabel(" Eje Z")

title(" Triedro de Frenet - Serret de la Curva $\gamma (t)$ ")

legend('$\gamma(t)$', 'vT', 'vN', 'vB' )


Aplicación del código fuente

Hélice circular de radio 1



Hélice cónica de $\tan{\varphi}$ = 3/4

Comentarios

Neo dijo…
Interesante aunque todavía no entiendo muchas cosas felicidades hermano
Anónimo dijo…
en 't','x','y','z', estos son numeros, vectores o funciones?
F dijo…
t es un vector numérico y las funciones 'x', 'y', 'z' son funciones simbólicas
Anónimo dijo…
Al correr el programa:

ingrese una curva que tenga esta propiedad r_(t)≠0
Ingrese el dominio de la curva regular: 0:0.001:1-0.001
Ingrese la parte en x de la curva: cos(2*pi*3*t)
Ingrese la parte en y de la curva: sin(2*pi*3*t)
Ingrese la parte en z de la curva: tan(2*pi*3*t)

o bien

Ingrese la parte en x de la curva: cos(2*pi*3*(0:0.001:1-0.001))
Ingrese la parte en y de la curva: sin(2*pi*3*(0:0.001:1-0.001))
Ingrese la parte en z de la curva: tan(2*pi*3*(0:0.001:1-0.001))

Los datos introducidos deberían ser numeros reales, o funciones?
F dijo…
De esta forma:

Ingrese el dominio de la curva regular: linspace(0, 2, 100)
Ingrese la parte en x de la curva: cos(t)
Ingrese la parte en y de la curva: sin(t)
Ingrese la parte en z de la curva: t
Anónimo dijo…
Excelente! Ya resultó.