GRAFICAS CON MATLAB
GRAFICAS 2D
Funciones de la forma y = f(x)
Para hacer graficas de funciones de una variable con MatLab, primero tenemos que crear una
tabla de valores de la variable para después dibujar la función. Por ejemplo, queremos dibujar
la gráfica de la función y = sen(x):
Primero creamos una tabla de valores para x
>>x=0: pi/100:2*pi;
Con este comando hemos formado una tabla (el vector x) con 200 valores entre 0 y 2 *pi.
Otra forma de conseguir el mismo resultado sería utilizar el comando:
>>x=linspace (0,2*pi, 200);
Ahora calculamos los valores de y
>> y = sin(x);
Y por último la dibujamos (ver figura 1)
>>plot(x,y)
Realmente lo que hemos hecho es dibujar 200
puntos de la función en el intervalo [0; 2pi], y
posteriormente el programa los ha unido
mediante segmentos. Si el número de puntos es
lo suficientemente grande, como en este caso,
no se aprecian los vértices.
Ejemplo algo más complicado:
Queremos dibujar ahora
2
La grafica de la función y=xe− x
Definimos los valores para los que queremos
hacer la grafica
>>x=-3:.01:3;
Es decir, que vamos a dibujar la gráfica en el
intervalo [-3; 3] con un
Paso de longitud 0.01.
Definimos la función
>>y=x.*exp (-x. ^2);
¿Por qué hay que poner los puntos antes de las
operaciones?)
Y por último, se escribe el comando para que
ejecute el dibujo (figura 2.)
>>plot(x,y)
- Cuadricula: Si queremos que aparezca una
cuadricula sobre el dibujo, utilizaremos el
comando >>grid on.
El aspecto del dibujo será ahora como el de
la figura 3. Para desactivar la cuadricula
habría queescribir >>grid off.
- Color y trazo: El comando plot ofrece
múltiples posibilidades de color y forma de
trazo de la gráfica. Por ejemplo, el comando
>>plot(x,y,'r*'), nos dibujara la gráfica en
color rojo y con asteriscos. Para consultar
todas las posibilidades, hacer >>help plot.
- Ejes. Los ejes que aparecen por defecto en
una gráfica también se
Pueden modificar. Con el comando >>axis
([-2 2 -1 1]), conseguiremos que la gráfica
aparezca en la región −2 ≤ x ≤2 ;
−1 ≤ x ≤1
Con >>axis square, conseguiremos que la ¯gura aparezca en un cuadrado, sin cambiar el
rango de los ejes. Con el comando >>axis equal,
Conseguiremos que los rangos de los ejes sean iguales.
- Zoom: Utilizando el comando >>zoom on. Se puede agrandar la figura o alguna zona
seleccionada de la figura. Hay que abrir la figura y utilizar los botones izquierdos y derecho
del ratón. Para desactivarlo, habrá que escribir >>zoom off.
- Varias graficas en la misma figura: Se pueden dibujar tantas graficas como se quieran en
una misma ¯gura. Si ya tenemos dibujada una, y generamos una nueva gráfica, en principio
la ¯gura anterior es sustituida por la nueva. Sin embargo, utilizando el comando >>hold on,
se mantendrá la anterior, con todas sus propiedades, y se podra dibujar encima una nueva.
Para desactivar el comando anterior: >>hold off.
Otra forma de hacerlo es dibujar desde el principio dos grafica juntas,
Por ejemplo, vamos a dibujar las gráficas de las funciones
y = sen(x) e
y = sen(x +¼/3) en la misma figura (4):
Generamos las tablas,
>>x=linspace(0,2*pi,300);
>>y=sin(x);
>>z=sin(x+pi/3);
Y ahora las dibujamos
>>plot(x,y,'r-',x,z,'g--'),grid on
CURVAS EN PARAMÉTRICAS:
Veamos ahora como se pueden representar curvas en el plano dadas en forma paramétrica, es
decir, de la forma:
Empecemos con un ejemplo: queremos dibujar la gráfica de la curva
En primer lugar generamos los valores de t en el intervalo indicado,
>>t=linspace(-5,5,1000);
Y ahora lo podemos dibujar de dos formas distintas:
>>plot((t.*(t.^2-1))./(t.^2+1),(2*(t.^2-1))./(t.^2+1))
Obtendremos la gráfica de la figura 7.
Y otra forma de hacerlo es utilizar el comando
>>comet((t.*(t.^2-1))./(t.^2+1),(2*(t.^2-1))./
(t.^2+1))
Los dos comandos producen el mismo resultado,
sin embargo, la forma de ejecución es diferente, la
segunda es más divertida, aparece un
Circulito (el cometa) que va dibujando la curva. La
velocidad de ejecución depende del número de
puntos que hayamos generado con el comando
linspace.
Dibujada una curva en paramétricas existe la
posibilidad de dibujar sobre la misma los vectores
velocidad, utilizando el comando quiver.
Por ejemplo, para dibujar los vectores velocidad sobre la curva
>>t=linspace(0,2*pi,20);
>>quiver(cos(t),sin(t),-sin(t),cos(t)),axis square
Produce la gr¶a¯ca de la ¯gura 8.
La sintaxis del comando es >>quiver(r(t),r'(t)).
El número de vectores que aparecen en este
caso es 20. Si el número de puntos que se
indica con el comando linspace es demasiado
grande, puede que no se aprecie con claridad la gráfica, ya que este será el número de
vectores que se dibujen.
GRAFICAS 3D:
En esta sección vamos a ver cómo se pueden dibujar con MatLab gráficos de curvas en el
espacio en forma paramétrica, graficas de funciones de dos variables z = f(x; y), y algunos
ejemplos de superficies parame trizadas.
3.1. Curvas en el espacio
Se generan de una manera similar a las curvas en el plano, con la diferencia de que aquí se
utilizan los comandos plot3 o comet3, también existe un comando quiver3 para dibujar
vectores velocidad sobre las curvas.
Por ejemplo, queremos dibujar la hélice
Y sobre ella los vectores velocidad.
Generamos los valores de t:
>>t=linspace(0,8*pi,2000);
Y ahora podemos utilizar dos comandos:
plot3 lo que nos da el dibujo completo
>>plot3(sin(t),cos(t),t),grid on
Con lo que obtendremos la gráfica de la figura 10.
O también comet3, que funciona de manera análoga a
como lo hacía el comando comet en las curvas en el plano.
>>comet3(sin(t),cos(t),t)
Para dibujar algunos vectores velocidad sobre la curva hay que utilizar el comando quiver3
(vector posición, vector velocidad). Al igual que con el comando quiver, también conviene
volver a generar los valores de t de manera que no sean demasiados para que se pueda
apreciar mejor la gráfica. Por ejemplo,
>>t=linspace(0,8*pi,30);
>>quiver3(sin(t),cos(t),t,cos(t),-sin(t),1)
Funciones de la forma z = f(x; y)
Para dibujar gráficos de funciones de dos variables z = f(x; y), al igual que para funciones de
una variable, en primer lugar hay que generar tablas de valores para las variables x e y, en
realidad, ahora lo que tenemos que hacer es generar un mallado sobre un rectángulo del plano
XY. Para eso se utiliza el comando meshgrid.
Por ejemplo, si queremos dibujar la gráfica de la función
En la región del plano
habría que
Efectuar los pasos siguientes:
Generamos el mallado
>>[x,y]=meshgrid(-2:.5:2);
Sustituimos en la función para calcular los
valores de z
>>z=exp(-x.^2-y.^2);
Y ahora podemos dibujar el grafico con alguno de los siguientes comandos que producen los
dibujos mostrados en la figura 11:
>>plot3(x,y,z)
>>mesh(x,y,z)
>>surf(x,y,z)
>>surf(x,y,z),shading flat %efecto de sombreado distinto
CILINDRO:
El comando >>cylinder(R,n) genera
automáticamente un cilindro de revolución de radio
R, donde n es el número de puntos de la
circunferencia de la base del cilindro. Como en el
caso de la esfera, si usamos solo >>cylinder(R), el
número n es, por defecto, 20.
Lo realmente interesante de este comando es que
también admite radios variables R(t), con t 2 [a; b].
De esta forma, puede ser utilizado para obtener las
gráficas de diferentes tipos de supervise de
revolución, donde la generatriz es una función
definida por R(t). Por ejemplo, si queremos dibujar
un paraboloide de revolución, podemos utilizar
como generatriz la función r (t) = pt, con t 2 [0; 2]
>>t=linspace (0, 2, 20); r=sqrt (t); cylinder(r)
Y obtendremos la gráfica de la ¯gura 17. (No conviene poner demasiados puntos en linspace
para que se pueda apreciar bien el dibujo
>>t=linspace (0, 2, 20 ); r=sqrt(t);cylinder(r)
Y obtendremos la gráfica de la ¯gura 17. (No conviene poner demasiados puntos en linspace
para que se pueda apreciar bien el dibujo.)