Vous êtes sur la page 1sur 29

05 GRAFICOS EN 2D Lic.

Amado Malca Villalobos


1
05 GRAFICOS CON MATLAB

Como la mayor parte de las ecuaciones matemticas expresa
relaciones complicadas en una, dos, tres o mas
dimensiones, tratar de entenderlas sin grficas es algo
imposible. El empleo de grficas es importante desde la
educacin primaria hasta la superior, as como para
Ingenieros y Cientficos profesionales. En las presentaciones
profesionales, casi todos los anlisis matemticos, cientficos
y de ingeniera se presentan con grficos.
Los grficos son ahora una parte natural del entorno de
computacin con MATLAB, y la graficacin de los resultados
de los clculos puede efectuarse con algunos comandos.
Tratar de entender las ecuaciones matemticas con graficas es
una forma agradable y muy eficiente de aprender
matemticas. Por lo que el objetivo de esta unidad es ayudar a
los estudiantes a efectuar graficas en dos dimensiones de
diversas funciones.
1.- GRAFICAS EN DOS DIMENSIONES
Graficar: suponga que desea graficar (plotear) un conjunto de
datos (pares ordenados)
( )
, ; 1,
i i i
p x y i n = =
Donde se tiene que:
1 2 3 1 n n
x x x x x

< < < < <


05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
2
Los datos se grafican con plot.
La grafica es bastante sencilla, lo nico que hace Matlab es
unir los diferentes puntos con lneas rectas. Obviamente en el
orden establecido.
Sean los siguientes datos tomados en un da de la temperatura
ambiente. En la estacin meteorolgica de la FACFYM-
UNPRG.

Trabajando en la ventana de comandos de Matlab, tenemos:

>> x=[2 4 6 8 10 12 14 16 18 20 22 24];
>> y=[21 22.4 27 28 30 32 31 30 27 26 24 20];
>> plot(x,y)


Ahora tambin se le puede agregar una malla al grafico con
grid.
>> x=[2 4 6 8 10 12 14 16 18 20 22 24];
N Orden 01 02 03 04 05 06 07 08 09 10 11 12
X x
(horas)
02 04 06 08 10 12 14 16 18 20 22 24
Y y ( C) 21 22.4 27 28 30 32 31 30 27 26 24 20
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
3
>> y=[21 22.4 27 28 30 32 31 30 27 26 24 20];
>> plot(x,y)
>> grid



Luego se pueden agregar indicaciones adicionales, como titulo del cuadro,
nombres a los ejes x e y. Con los comandos: title, x label, ylabel.

>> x=[2 4 6 8 10 12 14 16 18 20 22 24];
>> y=[21 22.4 27 28 30 32 31 30 27 26 24 20];
>> plot(x,y)
>> grid
>> title('Registro diario de la temperatura en la
estacin
meteorolgica de la FACFYM-UNPRG')
>> xlabel('horas')
>> ylabel('temperatura')

05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
4


GRAFICAS SIMPLES
Explicaremos el procedimiento para la creacin de los
grficos de una funcin
( ) | |
, , y f x x a b = e en dos
dimensiones; identificando cada uno de los comandos de los
programas en MATLAB con lo siguiente:

Se define el rango de una de las coordenadas.
Indicamos la funcin que se desea graficar.
Grafica la funcin(con el comando plot)
Imprime los rtulos de los ejes (xlabel, ylabel)
Puede agregar una malla con grid.
Tambin se tiene el comando title para agregar ttulos
al grafico.

GRAFICA DE UNA FUNCIN

Para graficar
( ) ( )
0.4x
y f x e sen x

= = en el intervalo [0,10].
Se ingresa en Matlab, tecleando:

>> x=0:0.05:10;
>> y=sin(x).*exp(-0.4*x);
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
5
>> plot(x,y)
Donde la primera lnea indica el intervalo dividido en partes
iguales , cada una de longitud 0.005. La segunda nos da las
imgenes de la funcin, para los valores de x obtenidos en la
primera lnea. Y la tercera plotea la funcin trazando lneas
rectas entra cada par de puntos (x,f(x)).

Se puede agregar un comando adicional: grid
Se utiliza para crear una malla en la presentacin de la grafica
Se ingresa en Matlab, tecleando:
>> x=0:0.005:10;
>> y=sin(x).*exp(-0.4*x);
>> plot(x,y)
>> grid
Lo que se agrego es el comando grid que crea una malla en el
plano.
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
6


Ahora agregaremos rtulos en las graficas de la siguiente
forma:
Para el rotulo del cuadro
El comando: title.
Para el rotulo del eje de las abscisas
El comando: xlabel
Para el rotulo del eje de las ordenadas
El comando: ylabel

Se ingresa en Matlab, tecleando:
>> x=0:0.005:10;
>> y=sin(x).*exp(-0.4*x);
>> plot(x,y)
>> grid
>> title('grafico de ejemplo')
>> xlabel('eje x')
>> ylabel('eje y')
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
7


Tambin se pueden graficar dos funciones en un solo plano
coordenado.

>> x=0:0.005:10;
>> y=sin(x).*exp(-0.4*x);
>> x=0:0.005:10;
>> y=sin(x);
>> plot(x,y)
>> hold on
>> z=cos(x);
>> plot(x,z,'--')
>> grid
>> xlabel('eje x')
>> ylabel('y( ___ ) z( --- )')
>> title('Grafico de y=Seno(x) y z=Coseno(x) en
[0,10]')

05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
8


El comando hold on es para permitir que se pueda
sobrescribir otra grafica encima de la del seno.
En la funcion plot: plot(x,z,'--')

se esta cambiando el formato para la linea que corresponde a
la grafica de coseno por el de linea discontinua.
Luego se agrega grid, para la malla de la grafica, y los
respectivos titulos y leyendas de los ejes.

Respecto de la funcion plot, las diferentes formas de
escribirla, son:

( )
, plot x y
( )
1, 1, 2, 2, 3, 3, plot x y x y x y
( )
, , plot x y s
( )
1, 1, 1, 2, 2, 2, 3, 3, 3, plot x y s x y s x y s
( )
, , ' ' plot x y abc
donde: s, s1, s2, s3, . Toman dos valores que van entre
comillas: ab
a: indica el color de la lnea ( por defecto azul).
b: indica la forma de la lnea ( por defecto son lneas rectas
que unen dos puntos de la grafica).

05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
9
COLOR DE LINEA ESTILO DE LINEA
Rojo r Solida (por defecto) __
Verde g Discontinua --
Azul b Punteada :
Cian c Rayas y puntos -.
Magenta m
Amarillo y
Negro k
Blanco w

TIPO DE MARCADOR
Signo mas + Crculo o
asterisco * punto .
cuadrado s diamante d
Estrella de cinco
puntas
p Estrella de seis
puntas
h

Ejemplos de plot
( , ) plot x y
( , , ' ') plot x y r
( , , ' ') plot x y y
( , , ' *') plot x y
( , , ' : ') plot x y g d

Propiedades y valores

Forman parte de la sintaxis de plot y son opcionales, se usan
para modificar el:
- Grueso de la lnea
- El tamao de los marcadores
- Los colores de relleno
- Los colores del borde del marcador


05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
10
Propiedad Descripcion Posible valor de
la propiedad
LineWidth o
linewidth
Indica el grosor de
la lnea
Un numero
representado en
unidades de
puntos (por
defecto 0,5)
MarkerSize o
markersize
Especifica el
tamao de las
marcas
Un numero
representado en
unidades de
puntos
MarkerEdgeColor
o markeredgecolor
Especifica el color
del marcador, o el
color del borde de
la lnea para
marcadores con
relleno
Especificadores de
color, introducidos
en forma de
cadena
MarkerFaceColor
o markerfacecolor
Especifica el color
del relleno de los
marcadores
Especificadores de
color, introducidos
en forma de
cadena

Ejemplo:
Plot(x,y,-
mo,linewidth,2,markersize,12,arkeredgecolor,g,mark
erfacecolor,y)









05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
11

Ejemplo:
>> x=[1:0.4:5]
x = 1.0000 1.4000 1.8000 2.2000 2.6000 3.0000
3.4000 3.8000 4.2000 4.6000 5.0000
>> y=x.^3-9*x.^2+26*x-24
y = -6.0000 -2.4960 -0.5280 0.2880 0.3360 0 -
0.3360 -0.2880 0.5280 2.4960 6.0000
>> plot(x,y,'-
mo','linewidth',2,'markersize',12,'markeredgecolor','g','markerf
acecolor','y')
>>

Crea un grafico en la cual una lnea solida de color magenta
une puntos que se representan mediante marcadores en forma
de crculo. El grosor de lnea es de dos puntos, y el tamao de
los crculos utilizados como marcadores es de 12 puntos.
Adems los marcadores (crculos) tienen bordes de color
verde, y amarillo como color de relleno.

1 1.5 2 2.5 3 3.5 4 4.5 5
-6
-4
-2
0
2
4
6
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
12
En cuanto a la grafica en un intervalo determinado [a,b], el
cual se divide en 1
b a
n
h

= partes iguales. Esta matriz de


puntos x se obtiene de la forma siguiente:
( , , ) x linspace a b n =
tambin con: : : x a h b =

Ejemplo:
>> x=linspace(2,5,11)
>> x=2:0.3:5

Veamos otros ejemplos

>> x=-20:1:20;
>> y=x.^3+6*x-7;
>> plot(x,y,'g*')
>> grid
>> title('grafico con linea verde, en vez de lnea va **')

El cambio esta en el color (verde), y el tipo de linea
(********** )

05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
13


Obs: El comando clf borra la figura actual de la pantalla de
graficos.
>> clf
>>

Observacin: Con respecto al conjunto de ordenes en Matlab,
vamos a describirlas un poco
>> clf
>> x=pi:0.3:6*pi;
>> y=sin(x).*exp(-0.4*x);
>> plot(x,y)
>>
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
14
La primera lnea lo que hace es crear una matriz fila de orden
6
1 53
0.3
t t
+ =




:
x = [3.1416 3.4416 3.7416 . . . 18.4416 18.7416]

La segunda lnea da una formula para calcular y ,
obviamente esta formula debe ser entendible por Matlab. De
donde se obtiene la matriz y, dada por:
y =[0.0000 -0.0746 -0.1264 . . . -0.0002 -0.0001]

Solo hay que tener cuidado en efectuar las operaciones de:
Multiplicacin ( * , y .* ), divisin ( / , \ , ./ , y .\ ) y
potenciacin ( ^ y .^ ) . Pues estas no tienen problemas
cuando se trabajan con nmeros simples (constantes). Pero
cuando se trabaja con matrices hay que tener cuidado.

La tercera linea lo que hace es ubicar los puntos dados en el
plano coordenado, y luego trazar lineas rectas entre dos
puntos consecutivos. De lo cual se obtiene una grafica.


05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
15

GRAFICAS CON ASINTOTAS

Uno de los problemas que se tiene en las graficas es cuando
aparecen las asintotas verticales.
Por ejemplo si queremos graficar
>> x=-10:0.01:10;
>> y=(x.^3+2)./x;
Warning: Divide by zero.
>> plot(x,y)
>> grid
>>


Para que esta grafica se vea mucho mejor podemos acotar el
eje y, dndole limites con la funcion axis.

Formato: axis ( [ xmin xmax ymin ymax ] )

>> x=-10:0.01:10;
>> y=(x.^3+2)./x;
Warning: Divide by zero.
>> plot(x,y)
>> grid
>> axis([-10 10 -40 40])
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
16
>>


Otro ejemplo tenemos en la funcion tangente:
>> x=-3*pi:0.001:3*pi;
>> y=tan(x);
>> plot(x,y)
>> grid
>> title('f(x)=tan(x)')
>>


Pero si agregamos una linea adicional con el comando axis,
tenemos:
>> x=-3*pi:0.001:3*pi;
>> y=tan(x);
>> plot(x,y)
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
17
>> grid
>> title('f(x)=tan(x)')
>> axis([-3*pi 3*pi -10 10])
>>


GRAFICAS PARAMETRICAS
Explicaremos el procedimiento para la creacin de las
graficas paramtricas en dos dimensiones, de la forma:
z = (x(t),y(t)), t en [a,b]
Identificando cada uno de los comandos de los programas en
MATLAB con lo siguiente:

>> t=0:0.01:8*pi;
>> x=sin(3*t)+t/(20*pi);

>> y=sin(2*t);
>> plot(x,y)
>> title('x(t)=sin(3t)+t/(20pi) y(t)=sin(2t), t en
[0,8pi]')
>> xlabel('x=x(t)')
>> ylabel('y=y(t)')
>>
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
18


>> t=0:pi/20:2*pi;
>> x=(cos(t)).^3;y=(sin(t)).^3;
>> plot(x,y)
>> grid
>> title('x^2/3 + y^2/3 =1');
>>





>> t=0:pi/1000:2*pi;
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
19
>> x=15*cos(t)-3*cos(5*t);
>> y=15*sin(t)-3*sin(5*t);
>> x1=12*cos(t);
>> y1=12*sin(t);
>> plot(x,y,x1,y1)
>> grid
>> title('Epicicloide')
>>



GRAFICAS EN DOS DIMENSIONES CON
COORDENADAS POLARES

Podemos graficar una funcin en coordenadas polares con
el comando polar. Explicaremos el procedimiento para la
creacin de los graficas polares en dos dimensiones;
identificando cada uno de los comandos en los programas
en MATLAB con lo siguiente:

Indica el rango del parmetro u
Indica la funcin que se desea graficar ) ( r r u =
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
20
Grafica la funcin predefinida con la funcin polar, que
reemplaza a plot.
Indica el titulo de la grafica con title.
Activa y desactiva la retcula alternadamente con grid.
>> t=0:0.05:pi+0.01;
>> r=6*cos(5*t);
>> polar(t,r)
>> title('Grafica en Coord. Polares')
>> grid
>>




>> t=0:pi/1000:4*pi;
>> r=20*cos(t)+12;
>> polar(t,r)
>> grid
>> title('r=20cos t +12')
>>
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
21



MXIMOS Y MINIMOS DE UNA FUNCION

Para hallar el mnimo:
[x,fval] = fminbnd(f,a,b)
Para hallar el mximo de y=f(x)
Se halla el mnimo de y= - f(x)

Sea la funcin f(x)=x^4-2*x^3-23*x^2-2*x-24, con x en [-
10, 10]
Graficando con Matlab,
>> x=-10:0.001:10;
>> f=x.^4-2*x.^3-23*x.^2-2*x-24;
>> plot(x,f)
>> grid
>> x=-6:0.001:8;
>> f=x.^4-2*x.^3-23*x.^2-2*x-24;
>> plot(x,f)
>> grid
>>
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
22



Para la funcin anterior tenemos mnimo en: [-6,0] y en
[0,6]
Y un mximo en: [-2,2] . Usando ahora la funcin:
fminbnd
Se ingresa en Matlab, tecleando:
>> f='x^4-2*x^3-23*x^2-2*x+24';
>> [x,fval] = fminbnd(f,-6,0)
x = -2.6963
fval = -45.7604
>>

05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
23
>> f='x^4-2*x^3-23*x^2-2*x+24';
>> [x,fval] = fminbnd(f,0,6)
x = 4.2400
fval = -227.2207
>>
Y para hallar el mximo, se debe hallar el minimo de la
funcion -f(x)
Se ingresa en Matlab, tecleando:
>> f='-x^4+2*x^3+23*x^2+2*x-24';
>> [x,fval] = fminbnd(f,-2,2)
x = -0.0437
fval = -24.0436
>>

Veamos algunos ejemplos:
>> x=-20:0.01:20;
>> y=(10*x)./(x.^2+1);
>> plot(x,y)
>> axis([-20 20 -10 10])
>> grid
>>

Donde la grafica tiene un mximo en [ 0 , 5 ], y un mnimo
en [ -5 , 0 ]
>> f='(10*x)/(x^2+1)';
>> [x,fval] = fminbnd(f,-5,0)
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
24
x = -1.0000
fval = -5.0000
>>

>> g='-(10*x)/(x^2+1)';
>> [x,fval] = fminbnd(g,0,5)
x = 1.0000
fval = -5.0000

COMENTARIOS EN UNA GRAFICA
Se logra con el comando:
gtext(comentario)
luego aparece en la grafica un cursor . Con el mouse, se elige
una posicin en la grafica y una vez elegida se hace un clic
con el botn izquierdo y aparece el comentario en la posicin
elegida.
Ejemplo:
>> clf
>> x=-20:0.01:20;
>> y=(10*x)./(x.^2+1);
>> plot(x,y)
>> axis([-20 20 -10 10])
>> grid
>> gtext('Maximo')
>> gtext('Minimo')
>>
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
25


COMANDO SUBPLOT
Este comando lo que hace es dividir la pantalla de graficos en
m x n , sectores para graficar. Su sintaxis es como sigue:
subplot(m,n,p)
Donde p varia desde 1 hasta m x n, y nos indica donde
ira la siguiente grafica.
>> x=0:0.01:10;
>> y=2*x;
>> z=9-x;
>> w=x.^2;
>> m=3./(x.^2+1);
>> subplot(2,2,1)
>> plot(x,y)
>> title('y=2x')
>> grid
>> subplot(2,2,2)
>> plot(x,z)
>> title('z=9-x')
>> grid
>> subplot(2,2,3)
>> plot(x,w)
>> title('w=x^2')
>> grid
>> subplot(2,2,4)
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
26
>> plot(x,m)
>> title('m=3/(x^2+1)')
>> grid




GRFICAS MTIPLES
En un primer plano se utilizar el comando hold on.
Este comando permite la captura del primer diagrama que fue
resultado de algn comando plot. Posteriormente se puede
agregar otros grficos a este diagrama sin modificar el
anterior.
Por ejemplo:
t = -pi:0.0001:pi;
x = sin(t);
plot(t,x)

al agregar el siguiente comando
hold on
capturamos la imagen del diagrama anterior sin modificarse.
Al introducir las siguientes lneas de comando, obtenemos
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
27
t1 = -pi:0.0001:pi;
y = cos(t1);
plot(t1,y)
que como se v, es la grfica de la funcin sen y cos
simultneamente.

t=-pi:0.001:pi;
x=sin(t);
plot(t,x)
hold on
z=cos(t);
plot(t,z,t,x)
grid


Representar una funcin y sus derivadas.









-4 -3 -2 -1 0 1 2 3 4
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
28

PLOTEANDO FUNCIONES CON fplot

Este comando se usa para graficar funciones en un intervalo
determinado
, , y f x x a b
La sintaxis es:
(' ', lim , _ _ ) fplot funcion ites especificadores de linea
Los limites tienen el formato siguiente:
min, max x x min, max, min, max x x y y
Los especificadores de lnea son iguales que plot.

Graficando la function:
y = f(x) = sin(x)*exp(-x), en [-3, 10]x[-8, 1]

>> fplot('sin(x)*exp(-x)',[-3 10 -8 1])
>> grid
>> xlabel('eje de las x')
>> ylabel('eje de las y')
>> title('montaa rusa')
>>

05 GRAFICOS EN 2D Lic. Amado Malca Villalobos
29