viernes, 28 de marzo de 2014

Gráficas en tres dimensiones en MATLAB (Superficies, Curvas en el espacio, Planos)


Superficies

Utilizando matrices

Una manera de graficar superficies es utilizar matrices y representarlas mediante funciones disponibles en MATLAB. Para ello debe definirse previamente una malla bidimensional utilizando el comando meshgrid, cuyos argumentos son los intervalos de las variables independientes, por ejemplo suponga que quiere graficarse la siguiente función:

$$f(x,y)=x^2+y^2$$

[X,Y]=meshgrid(-5:0.1:5);
Z=X.^2+Y.^2;
surf(X,Y,Z);


De forma simbólica

Otra forma de obtener el mismo resultado que el caso anterior, es proceder de manera simbólica. Una de las funciones que permite esto es ezsurf, cuya forma es la siguiente:

ezsurf('x^2+y^2',[-5 5]);


Como puede observarse, se necesitan menos líneas de código bajo este método.


Curvas en el espacio

Para graficar curvas en el espacio se dispone del comando plot3, cuyos argumentos son las ecuaciones paramétricas de la curva, tómese como ejemplo la siguiente curva (helice circular):

$$ x(t)=cos(t) \,\,\,\,\,\,\,\,\, y(t)=sin(t)  \,\,\,\,\,\,\,\,\, z(t)=t $$

t=linspace(0,10*pi,200);
x=cos(t);
y=sin(t);
z=t;
plot3(x,y,z,'linewidth',2);

Puede utilizar la forma simbólica para obtener un resultado similar al anterior con el comando ezplot3, tal como sigue:

ezplot3('cos(t)','sin(t)','t',[0 10*pi]);


Planos

El siguiente ejemplo muestra como graficar un plano $z=constante$, para ello se utiliza el comando fill3.

hold on
ezsurf('x^2+y^2',[-5 5]);
k=20;
A=[-5 -5 k];
B=[-5 5 k];
C=[5 5 k];
D=[5 -5 k];
X=[A(1) B(1) C(1) D(1)];
Y=[A(2) B(2) C(2) D(2)];
Z=[A(3) B(3) C(3) D(3)];
fill3(X,Y,Z,[0.7 0.7 0.7]);
view(3);




















No hay comentarios.:

Publicar un comentario