Beruflich Dokumente
Kultur Dokumente
El MATLAB al vuelo
1. Consideraciones previas ___________________________________________ 1
2. El entorno de trabajo______________________________________________ 2
3. Funciones básicas ________________________________________________ 3
4. Vectores y matrices _______________________________________________ 5
5. Operaciones con vectores y matrices. ________________________________ 10
6. Variables lógicas.________________________________________________ 12
7. Polinomios _____________________________________________________ 13
8. Gráficas de funciones ____________________________________________ 14
9. Programación con MATLAB ______________________________________ 17
9.1. La condiciones “if” y “switch” ___________________________________________ 17
9.2. Los bucles for y while __________________________________________________ 19
9.3. Funciones ____________________________________________________________ 20
10. Referencias_____________________________________________________ 21
11. Apéndice A. Principales funciones de MATLAB. ______________________ 22
1. Consideraciones previas
En lo que sigue, se supone que el usuario teclea lo que aparece en
cursiva y precedido del símbolo >>, que hace el papel del prompt de
la máquina (de hecho, lo óptimo sería que el aprendiz de MATLAB
reprodujera éstos y parecidos ejemplos por sí mismo). En normal
aparecerá la respuesta de MATLAB a la instrucción tecleada. Los
comentarios aparecerán precedidos del símbolo %.
Antes de comenzar, hagamos algunas consideraciones generales:
• MATLAB distingue entre mayúsculas y minúsculas.
• La comilla ' es la que, en un teclado estándar, se encuentra
en la tecla de la interrogación.
• Los comentarios deben ir precedidos por % o, lo que es lo
mismo, MATLAB ignora todo lo que vaya precedido por el
símbolo %.
La ayuda de MATLAB es bastante útil; para acceder a la misma
basta teclear help o utilizar el menú del mismo nombre en la ventana
de trabajo. Es recomendable usarlo para obtener una información
más precisa sobre la sintaxis y diversas posibilidades de uso de los
comandos. Al final de cada sección se presenta un EJERCICIO que el
aprendiz debería realizar para poner a prueba los conocimientos
adquiridos.
noviembre de 2004 1 de 22
El MATLAB al vuelo
2. El entorno de trabajo
Una vez invocamos al MATLAB aparece la ventana de mostrada en
la figura inferior.
noviembre de 2004 2 de 22
El MATLAB al vuelo
3. Funciones básicas
Al invocar el MATLAB aparecerá la pantalla de comandos, algunas
sugerencias y el símbolo >> , el cual indica donde se ha de realizar la
entrada de instrucciones para ser evaluadas.
ans =
10
>>2+3
ans =
5
>>x=2+3
x =
5
>>x
x =
5
>>y=5*4;
>>y
noviembre de 2004 3 de 22
El MATLAB al vuelo
y =
20
>>2/4*3
ans =
1.5000
>>2/(4*3)
ans =
0.1667
ans =
-1
ans =
2.7183
o la función exponente ay
ans =
1.2599
>>sqrt(-4)
1
La unidad imaginaria por defecto es i ó j, siempre que no se haya asignado alguna de esta variables a
otro valor. Por ejemplo, el MATLAB admite la instrucción >> j = 5, con lo que j dejaría de ser la
unidad imaginaria y pasaría a valer 5.
noviembre de 2004 4 de 22
El MATLAB al vuelo
ans =
0+ 2.0000i
>>a = 1+j*3
a =
1.0000 + 3.0000i
>>clear y
EJERCICIO ii.
Definir dos variables x cuyo valor es 2 e y que es el número
complejo imaginario puro de módulo 5. Realizar la operación:
z =x × y × sen ( x − y ) + x y × cos ( x − y )
2
4. Vectores y matrices
Para definir un vector fila, basta introducir sus elementos
separados por espacios entre los corchetes cuadrados “[” y “]”:
v=
1 2 3
>>w=[4 5 6];
>>w'
ans =
4
5
6
noviembre de 2004 5 de 22
El MATLAB al vuelo
>>vect1=[0:2:20]
vect1 =
0 2 4 6 8 10 12 14 16 18 20
>>vect2=linspace(0,20,11)
vect2 =
0 2 4 6 8 10 12 14 16 18 20
>>vect2(3)
ans =
4
>>vect2(2:5)
ans=
2 4 6 8
>>vect1(:)
ans=
0
2
4
6
8
10
12
14
16
18
20
noviembre de 2004 6 de 22
El MATLAB al vuelo
M =
1 2 3
4 5 6
7 8 9
ans =
1 4 7
2 5 8
3 6 9
mat =
1 2 3
4 5 6
0 0 1
ans =
3
ans =
2
5
0
ans =
4 5 6
noviembre de 2004 7 de 22
El MATLAB al vuelo
ans =
4
7
2
5
8
3
ans =
4 6
0 1
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
la matriz nula,
>>zeros(3)
ans =
0 0 0
0 0 0
0 0 0
>>ones(4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
noviembre de 2004 8 de 22
El MATLAB al vuelo
ans =
3 3
>>size(v)
ans =
1 3
ans =
3
ans =
1 0 0
0 2 0
0 0 3
ans =
1 0 0
0 5 0
0 0 9
ans =
0 1 0 0 0
1 0 1 0 0
0 1 0 1 0
0 0 1 0 1
0 0 0 1 0
noviembre de 2004 9 de 22
El MATLAB al vuelo
>>log(v)
ans =
0 0.6931 1.0986
p =
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
>>x=sin(p)
x =
Columns 1 through 7
0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
Columns 8 through 11
0.8090 0.5878 0.3090 0.0000
v =
1 2 3
w =
4 5 6
z =
32
noviembre de 2004 10 de 22
El MATLAB al vuelo
Z =
4 8 12
5 10 15
6 12 18
mat =
1 2 3
4 5 6
0 0 1
ans =
9 12 18
24 33 48
0 0 1
ans =
4 10 18
ans =
4.0000 2.5000 2.0000
ans =
1 4 9
16 25 36
0 0 1
>>det(mat)
noviembre de 2004 11 de 22
El MATLAB al vuelo
ans =
-3
>>mat\v'
ans =
2.6667
-5.3333
3.000
EJERCICIO iv.
Crear una matriz compleja LRc cuya parte real sea la matriz LR del
ejemplo anterior y su parte imaginaria los elementos al cuadrado de
dicha matriz.
Obtener una matriz LR2 que sea resultado del producto matricial de
LRc y la transpuesta-conjugada de LR.
Calcular la matriz inversa de LR2 y llamarle LRi. Comprobar el
resultado haciendo el producto matricial de LR2 y LRi.
6. Variables lógicas.
También existen variables lógicas que toman los valores 0 (falso) o
1 (verdadero). Los caracteres más empleados en las condiciones
lógicas son:
• “>” mayor que ...
• “<” menor que ...
• “==” igual a ...
• “>=” mayor o igual que ...
• “<=” menor o igual que ...
• “~=” distinto de ...
• “&&” condición “AND” ó “Y”
• “||” condición “OR” ó “O”
Por ejemplo:
ans =
0 1 1
noviembre de 2004 12 de 22
El MATLAB al vuelo
vector =
2 3
>>v2=[3 2 1]
v2 =
3 2 1
logica =
0 1 0
logic2 =
1 0 1
EJERCICIO v.
Obtener el número de elementos de LR mayores que tres y
menores que diez empleando para ellos las operaciones lógicas “<” y
“>” además del comando “sum”.
(Consultar la ayuda Help para obtener el funcionamiento del comando
sum)
7. Polinomios
Se puede trabajar con polinomios: basta tener en cuenta que un
polinomio no es más que un vector. El orden de los coeficientes es de
mayor a menor grado, por ejemplo:
p =
1 0 2 0 3
q =
2 1 0
ans =
6
noviembre de 2004 13 de 22
El MATLAB al vuelo
pro =
2 1 4 2 6 3 0
ans =
2 1 0
ans =
0
0.6050+1.1688i
0.6050-1.1688i
-0.6050+1.1688i
-0.6050-1.1688i
-0.5000
>>poly([i -i 1/2 pi]) % Polinomio mónico que tiene por raíces a los
% números i, -i, 0.5 y pi
ans =
1.0000 -3.6416 2.5708 -3.6416 1.5708
EJERCICIO vi.
Crear un polinomio “p” de forma que sus coeficientes sean la
segunda fila de la matriz LR (utilizar los caracteres “=” y “:”).
Calcular las raíces de dicho polinomio.
8. Gráficas de funciones
MATLAB tiene un gran potencial de herramientas gráficas. Se
pueden dibujar los valores de un vector frente a otro (de la misma
longitud):
>>x=pi*(-1:0.1:1);
>>y=x.*sin(x);
>>plot(x,y) % Por defecto une los puntos (x(i),y(i)) mediante
% una poligonal
noviembre de 2004 14 de 22
El MATLAB al vuelo
>>x=pi*(-1:0.01:1);
>>y=x.*sin(x);
>>plot(x,y)
1.5
0.5
-0.5
-1
-4 -3 -2 -1 0 1 2 3 4
>>plot(x,cos(x),x,y)
noviembre de 2004 15 de 22
El MATLAB al vuelo
>> plot(x,cos(x),'ro-',x,y,'bp:')
>> xlabel('tiempo')
>> ylabel('valor')
>> legend('coseno','y')
>> title('grafico de ejemplo')
grafico de ejemplo
2
coseno
y
1.5
1
valor
0.5
-0.5
-1
-4 -3 -2 -1 0 1 2 3 4
tiempo
noviembre de 2004 16 de 22
El MATLAB al vuelo
if condición
comandos
end
if condicion
comandos
elseif condicion
comandos
elseif condicion
comandos
else
comandos
end
noviembre de 2004 17 de 22
El MATLAB al vuelo
A = 1; B = 2;
if A + B == 3
disp('el resultado es 3')
elseif A+B > 5
disp('el resultado es mayor que 5 ')
else
disp('el resultado ni es 3 ni mayor que 5 ')
end
>>prueba_condicion
el resultado es 3
switch expresion
case case_expr1
comandos
case case_expr2
comandos
...
otherwise % opción por defecto
comandos
end
A = 1; B = 2;
switch A + B
case 3
disp('el resultado es 3')
case 5
disp('el resultado es 5 ')
otherwise
disp('el resultado ni es tres ni cinco')
end
noviembre de 2004 18 de 22
El MATLAB al vuelo
EJERCICIO ix.
Probar el código de ejemplo mostrado arriba para distintos valores
de A y B.
suma = 0
for k = 1:2:11
suma = suma + k^2;
end
suma
EJERCICIO x.
Crear un fichero llamado “primos.m” (FILE>NEW>M-FILE) para
calcular la suma de los 100 primeros términos de la sucesión 1, 2x,
3x2, 4x3, ...
WHILE...END
A diferencia del comando for, el comando while se utiliza cuando
el número de veces que se ejecuta un determinado conjunto de
sentencias depende de una determinada condición lógica. Su
utilización genérica es la que sigue:
while condicion
comandos
end
noviembre de 2004 19 de 22
El MATLAB al vuelo
suma = 0; num = 2;
while suma < 500
suma = suma + num^2;
num = num + 2;
end
suma
suma = 0; num = 2;
while suma < 500
suma = suma + num^2;
num = num + 2;
if suma == 100
break
end
end
suma
EJERCICIO xi.
Dada la función y = e-x calcular el valor x que haga que se cumpla
la igualdad x = e-x con un error de 10-6. Tomar como valor inicial 0.5.
Poner una condición que limite a 10 el número de iteraciones para
llegar a la solución (utilizar break).
Además, probar el programa realizado suponiendo como condición
inicial x=10.
9.3. Funciones
Por último, también pueden programarse funciones, esto es,
programas que devuelven una variable o conjunto de variables. La
primera instrucción de un fichero que contenga una función de
nombre mifuncion debe ser:
function m=euclides(a,b)
% Cálculo del máximo común divisor de dos números naturales
% mediante el algoritmo de Euclides
if a<b
c=b;
noviembre de 2004 20 de 22
El MATLAB al vuelo
b=a;
a=c;
end
while b>0
c=rem(a,b);
a=b;
b=c;
end
m=a;
mcd=euclides(33,121)
>>x=15;
>>mcd=euclides(x,3);
>>x
x =
15
10. Referencias
• “Tutorial de MATLAB”, Ender José López Méndez, (web:
http://www.monografias.com/trabajos13/tumatlab/tumatlab.shtml)
• “Aprenda Matlab 6.1 como si estuviera en primero” Javier García de
Jalón, José Ignacio Rodríguez y Alfonso Brazález, Escuela Técnica
Superior de Ingenieros Industriales, Universidad Politécnica de Madrid,
2001 (web: http://mat21.etsii.upm.es/ayudainf/aprendainf/varios.htm)
• “Introducción a MATLAB”, Juan-Antonio Infante y José María Rey, (web:
http://www.mat.ucm.es/~infante/matlab/notas.htm)
noviembre de 2004 21 de 22
El MATLAB al vuelo
noviembre de 2004 22 de 22