Documente Academic
Documente Profesional
Documente Cultură
Introduccin al MatLab y
Simulink
Contenidos:
Introduccin al Curso.
Fundamentos del MatLab.
Grficas con MatLab.
Algebra Lineal.
Integracin y Diferenciacin Numrica.
Races de Ecuaciones no Lineales.
Resolucin de Ecuaciones Diferenciales.
Simulink de MatLab.
Introduccin al MatLab y Simulink
Funcin Plot.
Grafica lineal simple, y la estructura es la siguiente:
plot(x,y)
grafica y vs x.
plot(y)
grafica la columna de y vs su subndice.
plot(x1,y1,S1,x2,y2,S2,x3,y3,S3,...)
Grafica en una sola
grfica las curvas x1 vs y1, x2 vs y2, x3 vs y3 y las identifica
con S1, S2, S3, El identificador es una cadena de tres
caracteres como mximo. Los caracteres del identificador son:
Funcin Plot.
Ejemplo:
x=linspace(0,2*pi,20);
y=sin(x);z=cos(x);
plot(x,y,b:,x,z,rv);
Ejemplo:
x = [0:.2:20];
y = sin(x)./sqrt(x+1);
y(2,:) = sin(x/2)./sqrt(x+1);
y(3,:) = sin(x/3)./sqrt(x+1);
plot(x,y)
plottools
Eje coordenado
Introduccin al MatLab y Simulink
Grficas
legend('string1','string2',...)
legend('string1','string2',...,'Location',location)
h = legend('string1','string2',...)
Especificador
Localizacin en el cuadro
North
Interior superior
South
Interior inferior
East
Interior derecho
West
Interior izquierdo
NorthEast
NorthWest
SouthEast
SouthWest
NorthOutside
Exterior superior
SouthOutside
Exterior inferior
EastOutside
Exterior derecho
WestOutside
Exterior izquierdo
NorthEastOutside
NorthWestOutside
SouthEastOutside
SouthWestOutside
Best
BestOutside
Comando Subplot
Crea varias grficas en una misma figura. Las estructura es la siguiente:
H=supplot(m,n,p): Crea varias
figuras en una ventana grfica
posicionada en forma matricial
mxn y p representa la ubicacin
de la figura
Ejemplo:
income = [3.2 4.1 5.0 5.6];
outgo = [2.5 4.0 3.35 4.9];
subplot(2,1,1); plot(income);
title('Income');
subplot(2,1,2); plot(outgo);
title('Outgo')
Comando Subplot
Comando Subplot
Comando Subplot
Comando Subplot
Ejemplo:
Figure
for i=1:12
subplot(12,1,i);
plot (sin(1:100)*10^(i-1));
set(gca,'xtick',[],'ytick',[]);
End
% Resetea los eje y se crea
% los datos del Subplot inferior.
set(gca,'xtickMode', 'auto')
Comando Axes
Funcin fplot.
Permite graficar una funcin definiendo los lmites del intervalo:
fplot(FUN,LIMS)
Donde FUN es la funcin a graficar y LIMS = [XMIN XMAX] es un
vector que define el dominio a graficar. Tambin se puede limitar el
rango definiendo LIMS = [XMIN XMAX YMIN YMAX].
Ejemplo:
fplot(@humps,[0 1]);
fplot(@(x)[tan(x),sin(x),cos(x)], 2*pi*[-1 1 -1 1]);
fplot(@(x) sin(1./x), [0.01 0.1], 1e-3);
f = @(x,n)abs(exp(-1j*x*(0:n-1))*ones(n,1));
fplot(@(x)f(x,10),[0 2*pi]);
Introduccin al MatLab y Simulink
Funcin plotyy.
Permite graficar con dos escalas en y, una en el eje izquierdo y
otra en el derecho. La sintaxis es la siguiente:
plotyy(X1,Y1,X2,Y2): Y1 con datos X1 en el eje izquierdo y Y2 con datos
X2 en eje derecho.
plotyy(X1,Y1,X2,Y2,FUN): Utiliza la funcin FUN para especificar el tipo de
grfico. FUN puede ser una funcin o un cadena que especifica el tipo de
grfica (semilogx, semilogy, loglog, stem, etc,) o cualquier funcin que
acepta la sintaxis H = FUN (X, Y). Por ejemplo:
plotyy(x1,y1,x2,y2,@loglog) % Control por funcin
plotyy(x1,y1,x2,y2,'loglog') % Control se especifica en una cadena
plotyy(X1,Y1,X2,Y2,'FUN1','FUN2'): Utiliza FUN1(X1, Y1) para representar
los datos en el eje izquierdo y FUN2(X2, Y2) para representar los datos en
el eje derecho.
[AX,H1,H2] = plotyy(...): AX es un vector que devuelve los controles de los
ejes creados, donde AX(1) es el eje izquierdo y AX(2) es el eje derecho. H1
y H2 devuelve los controles los objetos grficos.
Introduccin al MatLab y Simulink
Funcin plotyy.
Ejemplo:
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
200
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot');
150
set(get(AX(1),'Ylabel'),'String','Slow Decay');
set(get(AX(2),'Ylabel'),'String','Fast Decay'); 100
50
xlabel('Time (\musec)');
title('Multiple Decay Rates');
0
set(H1,'LineStyle','--');
-50
set(H2,'LineStyle',':');
-100
0
-0.2
-0.4
-150
-200
-0.6
10
12
Time (sec)
14
16
18
-0.8
20
Fast Decay
Slow Decay
0.2
Funcin loglog.
Grfica log-log. La sintaxis es:
loglog(Y)
loglog(X1,Y1,...)
10
loglog(X1,Y1,LineSpec,...)
loglog(...,'PropertyName',Value,...) 10
h = loglog(...)
hlines = loglog('v6',...)
50
40
30
10
Ejemplo:
x = logspace(-1,2);
loglog(x,exp(x),'-s');
grid on
20
10
10
10
10
-1
10
10
10
10
Funcin line.
0.8
0.6
0.4
0.2
0
-0.2
-0.4
Ejemplo:
-0.6
-0.8
t = 0:pi/20:2*pi;
-1
0
1
hl1=plot(t,sin(t),'k');
hl2= line(t+.06,sin(t),'LineWidth',4,'Color',[.8 .8 .8]);
Funcin polar.
Grfica en Coordenadas
polares. La sintaxis es:
polar(theta,rho)
polar(theta,rho,LineSpec)
h = polar(...)
Ejemplo:
t = 0:.01:2*pi;
polar(t,sin(2*t).*cos(2*t),'--r');
Funcin ezpolar.
Grfica en Coordenadas polares de
forma directa. La sintaxis es:
ezpolar(fun)
ezpolar(fun,[a,b])
h = ezpolar(...)
Ejemplo1:
ezpolar('1+cos(t)');
Ejemplo 2:
fh = @(t) t.^2.*cos(t);
ezpolar(fh);
Ejemplo 3:
Si se define la funcin:
function s = myfun(t,k1,k2)
s = sin(k1*t).*cos(k2*t);
Funcin plot3.
Grfica lineal en 3D. La sintaxis
es:
plot3(X1,Y1,Z1,...)
plot3(X1,Y1,Z1,LineSpec,...)
plot3(...,'PropertyName',Value,...)
h = plot3(...)
Ejemplo:
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
grid on
axis square
Grficas de Superficies.
Para graficas las superficies se debe siguiente procedimiento:
Ctte. la
variable x
Grficas de Superficies.
Para evaluar los puntos que generan la matriz con los pares
coordenados se unas la funcin meshgrid(x,y). La sintaxis es:
[X,Y] = meshgrid(x,y): Transforma el dominio dado por los vectores x,y
en matrices rectangulares X,Y.
[X,Y] = meshgrid(x): Similar que [X,Y] = meshgrid(x,x).
[X,Y,Z] = meshgrid(x,y,z): Similar a la primera opcin pero genera una
matriz tridimensional.
La salida es:
Ejemplo:
x=[-2 1 0];
y=[1 2 3;
[X,Y]=meshgrid(x,y);
X=
Y=
-2
-1
-2
-1
-2
-1
en (-7.5, 7.5)
Sombrero Mexicano
0.5
-0.5
10
5
10
5
-5
-5
-10
-10
Sombrero Mexicano
-0.5
10
5
10
5
-5
-5
-10
-10
x=-7.5:.5:7.5;y=x;
[X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps;
1
Z=sin(R)./R;
meshz(X,Y,Z);
0.5
title('Sombrero Mexicano');
0
-0.5
10
5
10
5
0
0
-5
-5
-10
-10
fh = @(x,y) x.*exp(-x.^2-y.^2);
ezmesh(fh,40)
colormap([0 0 1])
0.2
-0.2
-0.4
2
1
-1
-2
y
-2
x
Funcin waterfall.
Similar a meshz pero las lneas
de alambre se realizan slo en
una sola direccin, paralela a x
o y. La sintaxis es:
waterfall(Z)
waterfall(X,Y,Z)
waterfall(...,C)
waterfall(axes_handles,...)
h = waterfall(...)
Sombrero Mexicano
0.5
Ejemplo:
x=-7.5:.5:7.5;y=x;
-0.5
10
[X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;
meshz(X,Y,Z);
title('Sombrero Mexicano');
10
5
-5
-5
-10
-10
10
5
-5
-5
-10
-10
Sombrero Mexicano
x=-7.5:.5:7.5;y=x;
[X,Y]=meshgrid(x,y);
1
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;
0.5
surfs(X,Y,Z);
title('Sombrero Mexicano'); 0
-0.5
10
5
10
5
-5
-5
-10
-10
Funcin contour.
Grafica las lneas de contornos (isocurvas) de una funcin. La
sintaxis es:
contour(Z)
contour(Z,n): n es el nmero de contornos
contour(Z,v): v es un vector que almacena los valores de contornos.
contour(X,Y,Z)
contour(X,Y,Z,n)
contour(X,Y,Z,v)
contour(...,LineSpec)
contour(axes_handle,...)
[C,h] = contour(...)
[C,h] = contour('v6',...)
Introduccin al MatLab y Simulink
Funcin contour.
Ejemplo:
20
[C,h] = contour(peaks(20),10);
18
16
14
12
10
8
6
4
2
2
10
12
14
16
18
20
Funcin contour.
20
1.230 4
-2 .56
4
2
2
10
12
14
4
30
1.2
-0 .
03
47
87
-0 .
9 03 47
5
9
5
2.49
87
1 .29
1.230 4
83 02
7
.
3
8
47
03
.
0
2
9 54 3 0
-5 .0 3 .8
-1 .
29
99
51
8 -0 .0
34
78
7
6
-2 .
56
51
-1 .29
99
10
1.230
4
2.495 5
-1
.2
99
9
2. 4955
4
30
1.2
12
30 4
1.2
14
6.
29
1.
2
3
478 30 .76 0 9
7 4
06
-1 .2
9 99
2.4
95
5.0
5
25
8
06
76
3.
-0 .0
3
8
25
5.0
[C,h] = contour(peaks(20),10); 16
text_handle = clabel(C,h);
2.4
95 5
18
-2 .
56
-0
51
.0
34
78
7
Ejemplo:
16
18
20
Funcin contour.
Ejemplo:
700
Z = peaks;
[C,h] = contour(interp2(Z,4));
600
text_handle = clabel(C,h);
set(text_handle,'BackgroundColor',500
[1 1 .6], 'Edgecolor',[.7 .7 .7])
400
6
2
-2
-2
300
2
2
-4
-2
-6
-2
100
-4
-2
200
100
200
300
400
500
600
700
Funcin contourf.
Similar a contour pero hora la isocurvas son contornos de
20
colores.
18
Ejemplo:
[C,h] = contourf(peaks(20),10);
16
14
12
10
8
6
4
2
2
10
12
14
16
18
20
Funcin contourf.
Ejemplo:
20
[C,h] = contourf(peaks(20),10);
text_handle = clabel(C,h);
18
87
-0 .
47
3
.0
9 03 47
5
9
5
9
0
9
4
.
2
87
1 .2
1.230 4
02
3
7
.8
3
8
47
03
.
0
2
9 54 3 0
-5 .0 3 .8
-1 .
29
99
-2 .56
-2 .
56
51
-1 .29
99
51
1.230
4
4
2
2
2.495 5
-1
.2
99
9
10
4
30
1.2
12
2. 4955
10
12
14
4
30
1.2
-0 .
03
47
87
14
-2 .
56
51
8
25
5.0
6.
29
1.
2
-0 . 30 3.76 0 9
03 4
06
-1 .2 4787
9 99
30 4
1.2
16
2.4
95
5.0
5
25
8
06
76
3.
2.4
95 5
1.230 4
16
18
20
Funcin contourf.
20
Ejemplo:
-1
.2
99
9
10
-2 .
56
51
8
25
5.0
14
1.230
4
2.4955
2. 495 5
7
78
-0 .
4
04
3
0
0
.
5
99 3 478 1.23
5
9
9
2
-0
.
2. 4
1
7
1.230 4
7 -3 .83 02
8
47
03
2
-0 .
9 543 0
-5 .0 3 .8
-1 .
29
99
51
-2 .56
4
2
2
10
12
14
-2
-4
-0 .
03
47
87
-2 .
56
51
-1 .29
99
12
6.
29
1.
-0 . 230 3.76 0 9
03 4
06
4
-1 .2 787
9 99
30 4
1.2
16
2.4
5. 0 95 5
25
8
4
30
1.2
18
06
76
3.
[C,h] = contourf(peaks(20),10);
text_handle = clabel(C,h);
colorbar
2. 4
95 5
1.230 4
16
18
-6
20
Funcin contour3.
Similar a contour pero en
3D: La sintaxis es:
contour3(Z)
contour3(Z,n)
contour3(Z,v)
contour3(X,Y,Z)
contour3(X,Y,Z,n)
contour3(X,Y,Z,v)
contour3(...,LineSpec)
contour3(axes_handle,...)
[C,h] = contour3(...)
0.4
0.2
-0.2
-0.4
2
1
2
1
-1
Ejemplo:
[X,Y] = meshgrid([-2:.25:2]);
Z = X.*exp(-X.^2-Y.^2);
contour3(X,Y,Z,30)
Introduccin al MatLab y Simulink
-1
-2
-2
Funcin quiver.
Se usa para grafica campo
de velocidad en forma
vectorial: La sintaxis es:
quiver(x,y,u,v)
quiver(u,v)
quiver(...,scale)
quiver(...,LineSpec)
quiver(...,LineSpec,'filled')
quiver(axes_handle,...)
h = quiver(...)
hlines = quiver('v6',...)
Ejemplo:
[X,Y] = meshgrid(-2:.2:2);
Z = X.*exp(-X.^2 - Y.^2);
[DX,DY] = gradient(Z,.2,.2);
contour(X,Y,Z)
hold on
quiver(X,Y,DX,DY)
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2
-1.5
-1
-0.5
0.5
1.5
Funcin quiver.
Ejemplo:
[X,Y] = meshgrid(-2:.2:2);
Z = X.*exp(-X.^2 - Y.^2);
[DX,DY] = gradient(Z,.2,.2);
contour(X,Y,Z)
hold on
quiver(X,Y,DX,DY);
colormap hsv
hold off
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2
-1.5
-1
-0.5
0.5
1.5
Funcin quiver3.
Similar a quiver pero en 3D: La sintaxis es:
quiver3(x,y,z,u,v,w)
quiver3(z,u,v,w)
quiver3(...,scale)
quiver3(...,LineSpec)
quiver3(...,LineSpec,'filled')
quiver3(axes_handle,...)
h = quiver3(...)
Funcin quiver3.
Ejemplo:
[X,Y] = meshgrid(-2:0.25:2,-1:0.2:1);
Z = X.* exp(-X.^2 - Y.^2);
0.6
[U,V,W] = surfnorm(X,Y,Z);
0.4
quiver3(X,Y,Z,U,V,W,0.5);
0.2
hold on
0
-0.2
surf(X,Y,Z);
-0.4
colormap hsv
view(-35,45)
1
axis ([-2 2 -1 1 -.6 .6])
0.5
hold off
2
0
1
0
-0.5
-1
-1
-2
Funcin streamlice.
Dibuja las lneas de corriente en el plano: La sintaxis es:
streamslice(X,Y,Z,U,V,W,startx,starty,startz)
streamslice(U,V,W,startx,starty,startz)
streamslice(X,Y,U,V)
streamslice(U,V)
streamslice(...,density)
streamslice(...,'arrowsmode')
streamslice(...,'method')
streamslice(axes_handle,...)
h = streamslice(...)
[vertices arrowvertices] = streamslice(...)
Funcin streamlice.
Ejemplo: Grafique las lneas
de corriente de la data del
viento existente.
55
50
45
load wind
daspect([1 1 1])
streamslice(x,y,z,u,v,w,[],[],[5])
axis tight
40
35
30
25
20
80
90
100
110
120
130
Funcin streamline.
Grafica lneas de corriente desde una data en 2D o 3D. La
sintaxis es:
streamline(X,Y,Z,U,V,W,startx,starty,startz)
streamline(U,V,W,startx,starty,startz)
streamline(XYZ)
streamline(X,Y,U,V,startx,starty)
streamline(U,V,startx,starty)
streamline(XY)
streamline(...,options)
streamline(axes_handle,...)
h = streamline(...)
Funcin streamline.
Ejemplo:
load wind
[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);
h = streamline(x,y,z,u,v,w,sx,sy,sz);
20
set(h,'Color','red')
15
view(3)
10
5
0
-5
60
140
40
120
100
20
80
0
60