Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matlab
Matlab
ndice
1.
2.
Directorios ............................................................................................................... 3
3.
4.
3.1
3.2
3.3
Matrices Especiales....................................................................................... 5
3.4
M-Files ..................................................................................................................... 6
4.1
4.2
a)
For .................................................................................................................... 8
b)
If ........................................................................................................................ 8
4.3
Grficos ........................................................................................................... 9
5.
6.
1.
2.
Directorios
Antes de comenzar, debemos indicarle al programa en qu directorio
vamos a trabajar. Para esto vamos a File > Set Path y hacemos clic sobre el
botn Add Folder. Una vez que hayamos seleccionado la carpeta de trabajo,
cerramos la ventana haciendo clic en Close.
3.
>> x=15
x=
15
B = [1,2,3]
C = [1;4;9]
1 2 3
A = 4 5 6
7 8 9
B = [1 2 3]
1
C = 4
9
Tambin
se
pueden
crear
vectores
en
forma
rpida
utilizando
V=inicio:paso:fin
A(i,j) :
A(i,:) :
Muestra la fila i.
A(:,j) :
Muestra la columna j.
A([1 3],j) :
A(i,[1 4]) :
A(:,j)=17 :
A :
Matriz Transpuesta de A
eye(n) :
eye(m,n) :
diag(V):
diag(V,n):
diag(A):
A* B :
Multiplicacin matricial de A y B
A .* B :
A/B:
A\B:
A./B:
A+B:
A-B:
dot(U,V) :
cross(U,V) :
4.
u v ).
i
M-Files
En Matlab se programa en M-Files, que son archivos de texto con una
>> [a,b]=sumaResta(3,23)
a=
26
b=
-20
%Suma
r=a-b;
%Resta
En Command Window:
For
Genera ciclos con incrementos de una variable, por ejemplo:
for i=1:10
a(i)=2*i;
end
crea el vector a = [2 4 6 L 20]
b)
If
La secuencia de instrucciones bajo el If se ejecutar slo si se cumple la
Significado
>
Mayor que
<
Menor que
>=
Mayor o igual
<=
Menor o igual
&
Y (and)
O (or)
4.3 Grficos
Matlab permite graficar los resultados obtenidos. Para esto utilizamos el
comando plot. Adems, existen una serie de funciones que aportan
informacin adicional al grfico:
Da el ttulo al grfico.
grid on
hold on
figure
Ejemplos:
i)
donde
A [m] : Amplitud
: Coeficiente de amortiguamiento
: Tiempo
%Frecuencia
b=0.05;
%Amortiguamiento
A=3;
%Amplitud
%Graficamos:
plot(t,y)
title('Decaimiento Libre')
xlabel('tiempo [s]')
ylabel('Amplitud [cm]')
legend('Ampliad')
grid on
10
Amplitud [cm]
-1
-2
-3
5
6
tiempo [s]
10
y=zeros(length(t));
11
%Frecuencia
b=0.05;
%Amortiguamiento
A=3;
%Amplitud uno
B=1.5;
%Amplitud dos
12
hold on
plot(t,y2,'Red')
legend('Amplitud=3','Amplitud=1.5');
Resultando:
Decaimiento Libre
3
Amplitud=3
Amplitud=1.5
2
Amplitud [cm]
-1
-2
-3
5
6
tiempo [s]
10
%Graficamos:
subplot(2,1,1)
plot(t,y1)
title('Decaimiento Libre')
xlabel('tiempo [s]')
ylabel('Amplitud [cm]')
legend('Amplitud=3')
grid on
subplot(2,1,2)
13
plot(t,y2,'Red')
title('Decaimiento Libre')
xlabel('tiempo [s]')
ylabel('Amplitud [cm]')
legend('Amplitud=1.5')
grid on
Tenemos:
Decaimiento Libre
4
Amplitud [cm]
Amplitud=3
2
0
-2
-4
5
6
tiempo [s]
Decaimiento Libre
10
2
Amplitud [cm]
Amplitud=1.5
1
0
-1
-2
5
6
tiempo [s]
10
14
5.
15
k1 = t g v 2 n
M
v& = g
c
k 2 = t g
M
v n +1
f (t , v) = g
c 2
v (t )
M
1
c 2
v n + t g v n
2
M
c
= v n + t g
M
1
c 2
v n + t g v n
2
M
con v0 = 0
Finalmente
x n = t v n
%x0:
Posicion inicial
%v0:
Velocidad inicial
%dt:
Paso de tiempo
%tf:
Tiempo final
16
%Parametros base
g=9.8;
v=zeros(1,length(t));
v(1)=v0;
Con esto ya tenemos una funcin que resuelve la ecuacin diferencial. Ahora
debemos crear un programa que la utilice de forma interactiva con el usuario.
Para esto guardamos caidaTurbulenta y creamos un nuevo M-File.
En este nuevo programa, primero limpiamos la pantalla y cerramos los grficos
que estn abiertos:
17
%Limpiamos la pantalla:
close all
clc
Luego le pedimos al usuario que ingrese los datos del problema y calculamos
la solucin con la funcin que creamos anteriormente:
%INICIO CALCULOS:
disp('Calculando...')
disp(' ')
[x,v,t] = caidaTurbulenta(m,c,v0,x0,dt,tf);
Con esto ya tenemos los resultados para los datos del usuario, a continuacin
graficaremos estos resultados y compararemos la cada con roce a una cada
sin roce con el aire (es decir c=0).
18
%Calculamos h(t):altura
h=h0-x;
hs=h0-xs;
end
if hs(i)<0
hs(i)=0;
end
end
figure
%Graficamos velocidades por separado, misma ventana:
subplot(2,1,1)
plot(t,v,'blue')
title('Velocidad vs Tiempo')
xlabel('Tiempo [s]')
ylabel('Velocidad [m/s]')
legend('Velocidad con roce')
grid on
subplot(2,1,2)
plot(t,vs,'red')
title('Velocidad vs Tiempo')
xlabel('Tiempo [s]')
ylabel('Velocidad [m/s]')
legend('Velocidad sin roce')
grid on
19
figure
%Graficamos Velocidades Juntas
plot(t,v,'blue')
title('Velocidad vs Tiempo')
xlabel('Tiempo [s]')
ylabel('Velocidad [m/s]')
grid on
hold on
plot(t,vs,'red')
legend('Caida con roce','Caida sin roce')
figure
%Graficamos caidas juntas
plot(t,h,'blue')
title('Altura vs Tiempo')
xlabel('Tiempo [s]')
ylabel('Altura [m]')
grid on
hold on
plot(t,hs,'red')
legend('Caida con roce','Caida sin roce')
%Terminamos
disp('Listo')
20
Velocidad vs Tiempo
0.4
Velocidad [m/s]
5
6
Tiempo [s]
Velocidad vs Tiempo
10
100
Velocidad [m/s]
50
5
6
Tiempo [s]
10
Velocidad vs Tiempo
100
Caida con roce
Caida sin roce
90
80
Velocidad [m/s]
70
60
50
40
30
20
10
0
5
6
Tiempo [s]
10
21
Altura vs Tiempo
1
Caida con roce
Caida sin roce
0.9
0.8
0.7
Altura [m]
0.6
0.5
0.4
0.3
0.2
0.1
0
5
6
Tiempo [s]
10
6.
22
A continuacin hay una lista de funciones que les pueden ser tiles en
su vida estudiantil, busquen para qu sirven en la ayuda.
cla
clc
cumsum
cumtrapz
disp
eig
fft
getframe
guide
input
length
max
min
movie2avi
nargin
nargout
plot
plot3
roots
size
sort
sparse
sum
23