Professional Documents
Culture Documents
Introducción al MatLab y
Simulink
Contenidos:
• Introducción al Curso.
• Fundamentos del MatLab.
• Gráficas con MatLab.
• Algebra Lineal.
• Integración y Diferenciación Numérica.
• Raíces de Ecuaciones no Lineales.
• Resolución de Ecuaciones Diferenciales.
• Simulink de MatLab.
Ejemplo:
x = -pi:pi/20:pi;
plot(x,cos(x),'-ro',x,sin(x),'-.b');
h = legend('cos_x','sin_x',2);
set(h,'Interpreter','none')
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')
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]);
Slow Decay
Fast Decay
title('Multiple Decay Rates'); 0 0
-150 -0.6
-200 -0.8
0 2 4 6 8 10 12 14 16 18 20
Time (sec)
loglog(X1,Y1,LineSpec,...)
loglog(...,'PropertyName',Value,...) 10 40
h = loglog(...)
hlines = loglog('v6',...) 30
10
Ejemplo: 10
20
x = logspace(-1,2);
loglog(x,exp(x),'-s'); 10
10
grid on
0
10
-1 0 1 2
10 10 10 10
Ejemplo:
x = 0:.1:10;
semilogy(x,10.^x)
0.6
line(X,Y)
line(X,Y,Z) 0.4
line(X,Y,Z,'PropertyName',value,...) 0.2
line('XData',x,'YData',y,'ZData',z,...) 0
h = line(...) -0.2
-0.4
Ejemplo: -0.6
-0.8
t = 0:pi/20:2*pi;
-1
hl1=plot(t,sin(t),'k'); 0 1 2 3 4 5 6 7
Ejemplo:
t = 0:.01:2*pi;
polar(t,sin(2*t).*cos(2*t),'--r');
Ctte. la
Z debe evaluarse en: Z = f(-2,1) f(-2,2) f(-2,3) variable x
f(-1,1) f(-1,2) f(-1,3)
f(0,1) f(0,2) f(0,3)
Ctte. la variable y
Introducción al MatLab y Simulink
Centro de Estudios Energéticos
Departamento de Ingeniería Mecánica
Dirección de Investigación y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz
Gráficas con MatLab.
Gráficas de Superficies.
Para evaluar los puntos que generan la matriz con los pares
coordenados se unas la función 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 opción pero genera una
matriz tridimensional.
La salida es:
Ejemplo: X= Y=
x=[-2 –1 0];
y=[1 2 3; -2 -1 0 1 1 1
[X,Y]=meshgrid(x,y); -2 -1 0 2 2 2
-2 -1 0 3 3 3
Introducción al MatLab y Simulink
Centro de Estudios Energéticos
Departamento de Ingeniería Mecánica
Dirección de Investigación y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz
Gráficas con MatLab.
Funciones mesh, meshc, meshz y ezmesh.
Las función mesh permite grafica una función z=f(x,y) en un sistema
coordenado 3D utilizado un modelo de alambre. Meshc, es similar, pero
en el plano xy gráfica las líneas de contorno. Meshz proyecta el borde del
dominio hacia el plano xy. La sintaxis es la siguiente:
mesh(X,Y,Z)
mesh(Z): La gráfica se realiza para X = 1:n, Y = 1:m, donde [m, n]=size(Z).
mesh(...,C)
mesh(...,'PropertyName',PropertyValue,...)
mesh(axes_handles,...)
meshc(...)
meshz(...)
h = mesh(...)
hsurface = mesh('v6',...)
hsurface = meshc('v6',...),
Z=sin(R)./R;
mesh(X,Y,Z); 0.5
title('Sombrero Mexicano');
0
-0.5
10
5 10
0 5
0
-5 -5
-10 -10
-0.5
10
5 10
0 5
0
-5 -5
-10 -10
-0.5
10
5 10
0 5
0
-5 -5
-10 -10
ezmesh(fh,40) 0
colormap([0 0 1])
-0.2
-0.4
2
1
2
0
-1 0
-2 -2
y x
Ejemplo:
x=-7.5:.5:7.5;y=x; -0.5
10
[X,Y]=meshgrid(x,y);
5 10
R=sqrt(X.^2+Y.^2)+eps; 0 5
0
Z=sin(R)./R; -5 -5
-10 -10
meshz(X,Y,Z);
title('Sombrero Mexicano');
Introducción al MatLab y Simulink
Centro de Estudios Energéticos
Departamento de Ingeniería Mecánica
Dirección de Investigación y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz
Gráficas con MatLab.
Funciones surf y surfc.
Similar a mesh y meshc pero el se usa contornos de colores. La sintaxis es:
surf(Z); surf(Z,C) Sombrero Mexicano
surf(X,Y,Z); surf(X,Y,Z,C)
surf(...,'PropertyName',Value)
surf(axes_handles,...) 1
surfc(...)
h = surf(...) 0.5
hsurface = surf('v6',...)
hsurface = surfc('v6',...) 0
Ejemplo:
x=-7.5:.5:7.5;y=x; -0.5
10
[X,Y]=meshgrid(x,y);
5 10
R=sqrt(X.^2+Y.^2)+eps; 0 5
0
Z=sin(R)./R; -5 -5
-10 -10
surf(X,Y,Z);
title('Sombrero Mexicano');
Introducción al MatLab y Simulink
Centro de Estudios Energéticos
Departamento de Ingeniería Mecánica
Dirección de Investigación y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz
Gráficas con MatLab.
Funciones surf y surfc.
Ejemplo: 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
Nota: Hay otras funciones 10
5 10
similares, como son: 0 5
0
surfl, ezsurf y ezsurfc -5
-10 -10
-5
contour(Z)
contour(Z,n): n es el número 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',...)
[C,h] = contour(peaks(20),10); 18
16
14
12
10
2 4 6 8 10 12 14 16 18 20
95 5
5
3.
25
76
8
1.2
text_handle = clabel(C,h);
2.4
6.
5.0
06
1. 29
30 4
-0 .0 2
478 30 .76 0 9
3
25
3
7 4 06
8
14
-1 .2
9 99 2. 4955
1.2
12
30
51
2.495 5
4
1.230
56
4
7
-1
-2 .
78
10 .2
99
34
9
.0
-0
-0 . 4
8 -0 .0 9 03 47 30
34 2.49 5 5
-1 .29 9 87 1.2
78 1.230 4
7
8 7 -3 .83 02
6 47
51
03
99
.
51
0
-2 .56
- 2
9 54 3 0
-1 .29
56
4 -5 .0 3 .8
87
-2 .
-1 . -
47
29
99
03
2
-0 .
2 4 6 8 10 12 14 16 18 20
[C,h] = contour(interp2(Z,4)); 6
2
4
600
4
8
text_handle = clabel(C,h); 0
6 4
set(text_handle,'BackgroundColor',…500 2
2
-2
400 0
-2 2
0
300 2
2 -2
0 -4 0
200 0
-6
-2
-4
-2
100
0
100 200 300 400 500 600 700
14
12
10
2 4 6 8 10 12 14 16 18 20
95 5
5
3.
25
76
8
1.2
16
2.4
6.
5.0
06
1. 29
30 4
2
-0 . 30 3.76 0 9
25
03 4 06
8
14
-1 .2 4787 2. 4955
9 99
1.2
12
30
51
2.495 5
4
1.230
56
-1 4
-2 .
10 .2
99
9 87
47 -0 . 4
8 .03
9 03 47 30
-0 2. 4 95 5
-1 .2 9 9 87 1.2
1.230 4 3 02
8 7 -3 .8
6 47
51
03
99
.
51
0
-2 .56
- 2
9 54 3 0
-1 .29
56
4 -5 .0 3 .8
87
-2 .
-1 . -
47
29
99
03
2
-0 .
2 4 6 8 10 12 14 16 18 20
95 5
3.
25 4
text_handle = clabel(C,h);
76
8
1.2
16
2. 4
6.
5.0
06
1. 29
30 4
-0 . 230 3.76 0 9
colorbar
25
03 4 06
8
14 4
-1 .2 787 2.4955 2
9 99
1.2
12
colorbar, se utiliza para activar
30
51
2. 495 5
4
1.230
56
-1 4 0
la barra de colores de
-2 .
10 .2
99
9 7
78
contorno que permite
4 -0 . 04
8 3 0
-0
.0
2. 4 95 5
1 .2 9 99 3 478 1.23 -2
1.230 4 - 7
visualizar los valores de cada 6 47
8 7 -3 .83 02
51
03
99
-0 .
51
-2 .56
contorno de color.
2
9 543 0
-1 .29
56
-4
4 -5 .0 3 .8
87
-2 .
-1 . -
47
29
99
03
2
-0 .
-6
2 4 6 8 10 12 14 16 18 20
contour3(Z) 0.2
contour3(Z,n)
contour3(Z,v) 0
contour3(X,Y,Z) -0.2
contour3(X,Y,Z,n)
contour3(X,Y,Z,v) -0.4
2
contour3(...,LineSpec) 1 2
0 1
contour3(axes_handle,...) -1
0
-1
[C,h] = contour3(...) -2 -2
Ejemplo:
[X,Y] = meshgrid([-2:.25:2]);
Z = X.*exp(-X.^2-Y.^2);
contour3(X,Y,Z,30)
Introducción al MatLab y Simulink
Centro de Estudios Energéticos
Departamento de Ingeniería Mecánica
Dirección de Investigación y Postgrado
UNEXPO Vicerrectorado de Puerto Ordaz
Gráficas con MatLab.
Función quiver. Ejemplo:
[X,Y] = meshgrid(-2:.2:2);
Se usa para grafica campo Z = X.*exp(-X.^2 - Y.^2);
de velocidad en forma [DX,DY] = gradient(Z,.2,.2);
vectorial: La sintaxis es: contour(X,Y,Z)
quiver(x,y,u,v) hold on
quiver(u,v) quiver(X,Y,DX,DY)
2
quiver(...,scale) 1.5
quiver(...,LineSpec)
1
quiver(...,LineSpec,'filled')
0.5
quiver(axes_handle,...)
h = quiver(...) 0
-1
-1.5
-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
[DX,DY] = gradient(Z,.2,.2); 1
contour(X,Y,Z)
0.5
hold on
quiver(X,Y,DX,DY); 0
colormap hsv
-0.5
hold off
-1
-1.5
-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
quiver3(x,y,z,u,v,w)
quiver3(z,u,v,w)
quiver3(...,scale)
quiver3(...,LineSpec)
quiver3(...,LineSpec,'filled')
quiver3(axes_handle,...)
h = quiver3(...)
[X,Y] = meshgrid(-2:0.25:2,-1:0.2:1);
Z = X.* exp(-X.^2 - Y.^2);
[U,V,W] = surfnorm(X,Y,Z); 0.6
0.4
quiver3(X,Y,Z,U,V,W,0.5); 0.2
hold on 0
surf(X,Y,Z); -0.2
-0.4
colormap hsv
view(-35,45) 1
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(...)
45
load wind 40
daspect([1 1 1]) 35
streamslice(x,y,z,u,v,w,[],[],[5])
30
axis tight
25
20
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(...)
load wind
[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);
h = streamline(x,y,z,u,v,w,sx,sy,sz);
set(h,'Color','red') 20
view(3) 15
10
-5
60
140
40
120
20 100
80
0 60