Professional Documents
Culture Documents
PARA INGENIEROS
Lima PER
NDICE GENERAL
Pagina
1. INTRODUCCIN .......................................................................................................................................................6
1.1 ESCRITORIO DE MATLAB......................................................................................................................................6
1.2 PROGRAMA EJEMPLO ..............................................................................................................................................7
1.3 DESKTOP DE MATLAB ........................................................................................................................................15
2. FUNDAMENTOS DE MATLAB .............................................................................................................................18
2.1 VARIABLES ...........................................................................................................................................................18
2.2 ARRAYS: VECTORES Y MATRICES ..........................................................................................................................19
2.3 MOVIMIENTO VERTICAL BAJO GRAVEDAD ............................................................................................................23
2.4 OPERADORES ........................................................................................................................................................24
2.4.1. Operadores matriciales de MATLAB son los siguientes:.............................................................................24
2.4.2. Operadores relacionales ..............................................................................................................................24
2.4.3. Operadores lgicos ......................................................................................................................................25
2.4.4. Funciones matemticas elementales que operar a modo de escalar............................................................26
2.5 NMEROS COMPLEJOS ..........................................................................................................................................27
3. PROGRAMACIN EN MATLAB ..........................................................................................................................28
3.1 BIFURCACIONES Y BUCLES ....................................................................................................................................28
3.1.1. Sentencia IF .................................................................................................................................................29
3.1.2. Sentencia SWITCH.......................................................................................................................................30
3.1.3. Sentencia FOR .............................................................................................................................................30
3.1.4. Sentencia WHILE .........................................................................................................................................31
3.1.5. Sentencia break ............................................................................................................................................31
3.1.6. Sentencia continue .......................................................................................................................................32
3.1.7. Sentencias TRY..CATCH..:END...................................................................................................................32
3.2 LECTURA Y ESCRITURA INTERACTIVA DE VARIABLES ...........................................................................................33
3.2.1. Funcin INPUT ............................................................................................................................................33
3.2.2. Funcin DISP...............................................................................................................................................35
4. DISEO DE UN PROGRAMA Y DESARROLLO DE UN ALGORITMO.......................................................36
4.1 PROCESO DE DISEO DE UN PROGRAMA COMPUTACIONAL ....................................................................................36
5. MATRICES DE NMEROS ....................................................................................................................................42
5.1 MATRICES .............................................................................................................................................................42
5.2 OPERACIONES CON MATRICES ...............................................................................................................................43
5.3 OTRAS FUNCIONES CON MATRICES........................................................................................................................45
6. GRFICOS ................................................................................................................................................................46
6.1 MLTIPLES GRFICOS ...........................................................................................................................................46
6.2 VISUALIZACIN DE MATRICES ..............................................................................................................................48
6.3 GRFICOS INTERESANTES .....................................................................................................................................49
7. REFERENCIAS .........................................................................................................................................................61
MATLAB PARA INGENIEROS
r_vilcahuaman@iansa.com.pe
______________________________________________________________________________________ 3
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
______________________________________________________________________________________ 4
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
______________________________________________________________________________________ 5
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
1. INTRODUCCIN
______________________________________________________________________________________ 6
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
1.2 Programa ejemplo
En el prompt escriba:
>> 1 / 2 <Enter>
______________________________________________________________________________________ 7
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
>> 2.*3
>> 1./2
>> 2.^2
______________________________________________________________________________________ 8
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
>> pi
>> sqrt(pi)
>> whos
>> x=0:10
>> size(x)
>> x=0:10;
>> size(x)
______________________________________________________________________________________ 9
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
>> x = 0 : 0.1 : 10; <Enter>
>> z = sin(x); <Enter>
>> plot(x,z), grid <Enter>
______________________________________________________________________________________ 10
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Solucionar las siguientes ecuaciones lineales
x + 2y = 4,
2x y = 3.
Mtodo Matricial
El resultado ser:
x =
2
1
i.e. x = 2, y = 1.
______________________________________________________________________________________ 11
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Algo de grficos:
______________________________________________________________________________________ 12
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Luego escriba el comando:
>>surf(z), shading flat
______________________________________________________________________________________ 13
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Probando los sonidos
why
why
______________________________________________________________________________________ 14
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
1.3 Desktop de MATLAB
______________________________________________________________________________________ 15
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
En el editor de MATLAB escribo lo siguiente:
x = 0 : pi/20 : 6*pi;
plot(x, exp(-0.2*x) .* sin(x), 'r'),grid
______________________________________________________________________________________ 16
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Luego que corre el programa ejemplo1 bien haciendo click en el triangulo verde con
lao el comando run que esta en el men debug:
______________________________________________________________________________________ 17
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
2. FUNDAMENTOS DE MATLAB
2.1 Variables
Las variables
r2d2 pay_day
______________________________________________________________________________________ 18
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
2.2 Arrays: vectores y matrices
Un vector
>> x = [1 3 0 -1 5]
Un vector transpuesto x
______________________________________________________________________________________ 19
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Matrices
>> a = [1 2 3; 4 5 6]
Una matriz puede ser construida por dos vectores columna de la misma longitud
>> x = 0:30:180;
>> tabla = [x' sin(x*pi/180)']
______________________________________________________________________________________ 20
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Matrices predefinidas en MATLAB
______________________________________________________________________________________ 21
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Algunas funciones
______________________________________________________________________________________ 22
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
2.3 Movimiento vertical bajo gravedad
______________________________________________________________________________________ 23
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
2.4 Operadores
+ Adicin o suma
sustraccin o resta
* Multiplicacin
' traspuesta
^ Potenciacin
\ divisin-izquierda
/ divisin-derecha
.* Producto elemento a elemento
./ y .\ divisin elemento a elemento
.^ Elevar a una potencia elemento a elemento
== igual que
~= distinto que
______________________________________________________________________________________ 24
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
2.4.3. Operadores lgicos
______________________________________________________________________________________ 25
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
2.4.4. Funciones matemticas elementales que operar a modo de escalar
______________________________________________________________________________________ 26
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
2.5 Nmeros complejos
Ejemplo:
>> a=1;b=4;c=13;
>> x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x1 =
-2.0000 + 3.0000i
>> x2=(-b-sqrt(b^2-4*a*c))/(2*a)
x2 =
-2.0000 - 3.0000i
>> %comprobando
>> a*x1^2+b*x1+c
______________________________________________________________________________________ 27
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
3. PROGRAMACIN EN MATLAB
Los bucles permiten repetir las mismas o anlogas operaciones sobre datos distintos. Mientras que
en C/C++/Java el "cuerpo" de estas sentencias se determinaba mediante llaves {...}, en MATLAB
se utiliza la palabra end con anloga finalidad. Existen tambin algunas otras diferencias de sintaxis.
______________________________________________________________________________________ 28
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
3.1.1. Sentencia IF
if condicion
sentencias
end
if condicion1
bloque1
elseif condicion2
bloque2
elseif condicion3
bloque3
else % opcin por defecto para
% cuando no se cumplan las
% condiciones 1,2,3
bloque4
end
donde la opcin por defecto else puede ser omitida: si no est presente no
se hace nada en caso de que no se cumpla ninguna de las condiciones
que se han chequeado.
______________________________________________________________________________________ 29
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
3.1.2. Sentencia SWITCH
switch switch_expresion
case case_expr1,
bloque1
case {case_expr2, case_expr3, case_expr4,...}
bloque2
...
otherwise, % opcin por defecto
bloque3
end
for i=1:n
sentencias
end
o bien,
for i=vectorValores
sentencias
end
______________________________________________________________________________________ 30
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
En el siguiente ejemplo se presenta una estructura correspondiente a
dos bucles anidados. La variablej es la que vara ms rpidamente
(por cada valor de i, j toma todos sus posibles valores):
for i=1:m
for j=1:n
sentencias
end
end
while condicion
sentencias
end
______________________________________________________________________________________ 31
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
3.1.6. Sentencia continue
try
sentencias1
catch
sentencias2
end
______________________________________________________________________________________ 32
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
3.2 Lectura y escritura interactiva de variables
______________________________________________________________________________________ 33
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Otra posible forma de esta funcin es la siguiente (obsrvese el parmetro 's'):
En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo
que se almacena en la cadena nombre.
______________________________________________________________________________________ 34
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
3.2.2. Funcin DISP
Ejectense las sentencias anteriores en MATLAB y obsrvese la diferencia entre las dos formas de
imprimir la matriz A.
______________________________________________________________________________________ 35
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
4. DISEO DE UN PROGRAMA Y DESARROLLO DE UN ALGORITMO
______________________________________________________________________________________ 36
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Caso ejemplo:
Se desea calcular el vuelo de un proyectil (i.e. una pelota de golf) lanzada a una
velocidad y ngulo pre establecido. Se desea determinar la trayectoria del vuelo y la
distancia horizontal que el objeto vuela antes de tocar tierra. Asuma que la resistencia
del aire es cero y que la constante de fuerza a gravitacional acta sobre el objeto en
direccin opuesta de la distancia vertical a la tierra.
Se desea determinar el tiempo que toma desde el inicio del movimiento hasta que toca
tierra, la distancia horizontal que viaja, y la forma de la trayectoria. Adicionalmente
grafique la velocidad del proyectil versus la direccin de su vector (las ecuaciones
detalladas las encuentra en libros de FSICA de I y II de pregrado).
______________________________________________________________________________________ 37
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Solucin va MATLAB
clear
clc
dt = txmax/100;
t = 0:dt:txmax;
______________________________________________________________________________________ 38
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
% 4. Calculo de la trayectoria
x = (vo * cos(tho)) .* t;
y = (vo * sin(tho)) .* t - (g/2) .* t.^2;
vx = vo * cos(tho);
vy = vo * sin(tho) - g.* t;
v = sqrt(vx.*vx + vy.*vy);
th = (180/pi) .* atan2(vy,vx);
% 7. Mostrar resultados.
disp(' ')
plot(x,y,'k',xmax,y(size(t)),'o',xmax/2,ymax,'o')
title(['Trayectoria de vuelo del Proyectil vo
=',num2str(vo),' \theta =',num2str(180*tho/pi)])
______________________________________________________________________________________ 39
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
\
______________________________________________________________________________________ 40
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
______________________________________________________________________________________ 41
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
5. MATRICES DE NMEROS
5.1 Matrices
>>x = [4 0 0; 6 6 0; 0 3 5];
>> c
c=
3 12 10
17 18 35
7 10 24
>> x
x=
4 0 0
6 6 0
0 3 5
______________________________________________________________________________________ 42
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
5.2 Operaciones con matrices
Multiplicacin
>> m=c*x
m=
84 102 50
176 213 175
88 132 120
Suma
>> suma=c+x
suma =
7 12 10
23 24 35
7 13 29
Resta:
>> res=c-x
res =
-1 12 10
11 12 35
7 7 19
______________________________________________________________________________________ 43
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Transpuesta:
>> c
c=
3 12 10
17 18 35
7 10 24
>> c'
ans =
3 17 7
12 18 10
10 35 24
Inversa
inversa=inv(c)
inversa =
______________________________________________________________________________________ 44
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
5.3 Otras funciones con matrices
det determinante
eig valores propios (descomposcion eigenvalue)
expm matriz exponential, i.e. eA, donde A es una matriz.
inv inversa.
lu Facorizacion LU factorization (en matrices triangulares lower y upper).
qr factorization ortogonal.
svd descomposicin de valor singular (singular value decomposition)
______________________________________________________________________________________ 45
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
6. GRFICOS
disp('Mltiples grafios')
disp('-----------------')
[x, y] = meshgrid(-3:0.3:3);
z = x .* exp(-x.^2 - y.^2);
subplot(2,2,1)
mesh(z),title('subplot(2,2,1)')
subplot(2,2,2)
mesh(z)
view(-37.5,70),title('subplot(2,2,2)')
subplot(2,2,3)
mesh(z)
view(37.5,-10),title('subplot(2,2,3)')
subplot(2,2,4)
mesh(z)
view(0,0),title('subplot(2,2,4)')
______________________________________________________________________________________ 46
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
>> [x y] = meshgrid(-2:.2:2);
>> z = x .* exp(-x.^2 - y.^2);
>> meshc(z)
>>
______________________________________________________________________________________ 47
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
6.2 Visualizacin de matrices
a = zeros(30,30);
a(:,15) = 0.2*ones(30,1);
a(7,:) = 0.1*ones(1,30);
a(15,15) = 1;
mesh(a)
______________________________________________________________________________________ 48
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
6.3 Grficos interesantes
______________________________________________________________________________________ 49
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
clc
clear
disp('===================================== ')
disp(' GRFICOS INTERESANTES ')
disp(' ')
disp(' Ral Vilcahuamn Sanabria ')
disp(' Menu_graf.m ')
disp('===================================== ')
k = 0;
while k ~= 21
if k==1
m=0;
while m~=5
if m==1
[x, y] = meshgrid(-3:0.3:3);
z = x .* exp(-x.^2 - y.^2);
mesh(z),title('plot(2,2,1)')
elseif m==2
[x, y] = meshgrid(-3:0.3:3);
z = x .* exp(-x.^2 - y.^2);
mesh(z)
view(-37.5,70),title('plot(2,2,2)')
elseif m==3
[x, y] = meshgrid(-3:0.3:3);
z = x .* exp(-x.^2 - y.^2);
mesh(z)
view(37.5,-10),title('plot(2,2,3)')
______________________________________________________________________________________ 50
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
elseif m==4
[x, y] = meshgrid(-3:0.3:3);
z = x .* exp(-x.^2 - y.^2);
mesh(z)
view(0,0),title('plot(2,2,4)')
end
end
elseif k == 2
x = 0:.01:4;
semilogy(x, exp(x)), grid
elseif k == 3
x = 0:pi/40:2*pi;
polar(x, sin(2*x)),grid
elseif k == 4
elseif k == 5
a = zeros(30,30);
a(:,15) = 0.2*ones(30,1);
a(7,:) = 0.1*ones(1,30);
a(15,15) = 1;
mesh(a)
elseif k == 6
x = 0:0.1:1.5;
area(x', [x.^2' ...
exp(x)' exp(x.^2)'])
elseif k == 7
x = 0:pi/20:pi;
bar(x,sin(x))
elseif k == 8
z = eig(randn(10));
compass(z)
______________________________________________________________________________________ 51
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
elseif k == 9
x = 0:0.1:1;
errorbar(x,exp(-x), 0.5*rand(1,length(x)),'d')
elseif k == 10
ezcontourf('x^2-y^2')
elseif k == 11
th = 0:pi/16:pi;
z = exp((-0.5+2*i)*th);
feather(z)
elseif k == 12
t = 0:pi/20:2*pi;
fill(cos(t),sin(t),'k', 0.9*cos(t),0.9*sin(t),'y'),
axis square
clear
elseif k == 13
t = 0:pi/20:4*pi;
fill(t,sin(t),'b')
elseif k == 14
x = -20:120;
y = 50+20*randn(1,100000);
hist(y,x)
elseif k == 15
[x y] = meshgrid(-3:0.1:3);
z = peaks(x,y);
meshz(z)
elseif k == 16
pie(rand(1,10))
elseif k == 17
[x y] = meshgrid(-8 : 1 : 8);
r = sqrt(x.^2 + y.^2) + eps;
z = sin(r) ./ r;
ribbon(z)
elseif k == 18
t = 0:pi/40:4*pi;
y1 = sin(t);
y2 = exp(-0.2*t).*sin(2*t);
______________________________________________________________________________________ 52
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
y = [y1; y2];
ribbon(t', y', 0.1)
elseif k == 19
x = 0:pi/40:pi;
stairs(x,sin(x))
elseif k == 20
t = 0:pi/50:2*pi;
r = exp(-0.05*t);
stem3(r.*sin(t), r.*cos(t),t)
elseif k == 21
[x y] = meshgrid(-2:0.1:2);
z = x.*exp(-x.^2-y.^2);
waterfall(z)
end
end
______________________________________________________________________________________ 53
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
Algunos reportes graficos
______________________________________________________________________________________ 54
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
______________________________________________________________________________________ 55
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
______________________________________________________________________________________ 56
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
______________________________________________________________________________________ 57
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
______________________________________________________________________________________ 58
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
______________________________________________________________________________________ 59
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
______________________________________________________________________________________ 60
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria
7. REFERENCIAS
______________________________________________________________________________________ 61
MATLAB para Ingenieros. Ral Vilcahuamn Sanabria