Matlab Man - 01
Matlab Man - 01
Matlab Man - 01
SUDFWLFDSGI
PRACTICA
1
Vectores y MATLAB
Esta y todas las demas practicas estan pensadas para ser trabajadas delante de
un ordenador con MATLAB instalado, y no para ser ledas como una novela. En vez de
eso, cada vez que se presente un comando de MATLAB, se debe introducir el comando,
pulsar la tecla Enter para ejecutarlo y ver el resultado. Mas a
un, se desea que se
verifique el resultado. Aseg
urese de que se comprende perfectamente lo que se obtiene
antes de continuar con la lectura.
Aunque MATLAB es un entorno que trabaja con matrices, en esta practica se aprendera como introducir vectores por filas o por columnas y a manejar algunas operaciones con vectores.
Prerrequisitos: ninguno.
1.
Vectores fila
smbolo >> es el indicador de MATLAB. Se debe introducir lo que aparece tras el indicador.
Entonces se pulsa la tecla Enter para ejecutar el comando.
333
>> v
1.1.
Rangos.
Algunas veces es necesario introducir un vector con componentes a intervalos regulares. Esto se realiza facilmente con MATLAB con la estructura inicio:incremento:fin.
Si no se proporciona un incremento, MATLAB asume que es 1.
>> x1=0:10
Se puede seleccionar el propio incremento.
>> x2=0:2:10
Se puede ir incluso hacia atras.
>> x3=10:-2:1
O se le puede echar imaginacion.
>> x4=0:pi/2:2*pi
Hay veces, sobre todo cuando hay que pintar funciones, que se precisan un gran
n
umero de componentes en un vector.
>> x=0:.1:10
1.2.
Elimina la salida.
1.3.
2.
Vectores columna
Observe que los smbolos de punto y coma delimitan las filas de un vector columna.
Pruebense los siguientes comandos.
>>
>>
>>
>>
w
who
whos
size(w)
El resultado indica que el vector w tiene 3 filas y 1 columna. Aunque se puede ver
al vector w como una matriz de 3 filas y 1 columna, tambien es posible pensar en el
como un vector columna de longitud 3. Pruebese el siguiente comando.
>> length(w)
2.1.
Transposici
on.
2.2.
Indexado de vectores.
Una vez que se ha definido un vector, es posible acceder facilmente a cada una de
sus componentes con los comandos de MATLAB. Por ejemplo, introd
uzcase el siguiente
vector.
>> x=[10,13,19,23,27,31,39,43,51]
Ahora pruebense los siguientes comandos.
>> x(2)
>> x(7)
3.
Un gran n
umero de operaciones en las que intervienen vectores y escalares se
pueden ejecutar con MATLAB.
3.1.
Las operaciones entre escalares y vectores son directas. Desde el punto de vista
teorico, no se puede sumar un escalar a un vector. Sin embargo, MATLAB s lo permite.
Por ejemplo, si y es un vector, el comando y+2 a
nadira 2 a cada componente del
vector. Est
udiense las salidas de los siguientes comandos.
>>
>>
>>
>>
>>
y=1:5
y+2
y-2
2*y
y/2
Por supuesto, estas operaciones son igualmente validas para vectores columna.
>>
>>
>>
>>
>>
w=(1:3:20)
w+3
w-11
.1*w
w/10
3.2.
3.3.
>> a=(1:3),b=(4:6)
>> a,b,a.*b
El smbolo . es el operador de MATLAB para la multiplicacion elemento a elemento.
La salida se calcula multiplicando las primeras componentes de los vectores a y b, a
continuacion las segundas componentes, etc. El operador de MATLAB para la division
componente a componente es ./
>> a,b,a./b
Para elevar cada componente de un vector a una potencia, u
sese .^
>> a,a.^2
3.4.
Expresiones m
as complicadas.
3Escribiendo
Ejercicios de la pr
actica 1
Ejercicio 1. Escribe el comando MATLAB que genera cada uno de los siguientes
vectores.
1
1. 2 .
3
2. (1, 2, 1, 3).
3. Un vector columna que contenga los n
umeros impares entre 1 y 1000.
4. Un vector fila que contenga los n
umeros pares entre 2 y 1000.
Ejercicio 2. Si x=0:2:20, escribe el comando de MATLAB que eleva al cuadrado
cada componente de x.
Ejercicio 3. Si x=[0,1,4,9,16,25], escribe el comando MATLAB que calcula la
raz cuadrada de cada componente de x.
Ejercicio 4. Si x=0:.1:1, escribe el comando de MATLAB que eleva cada componente de x a 2/3.
Ejercicio 5. Si x=0:pi/2:2*pi, escribe el comando MATLAB que calcula el coseno
de cada componente de x.
Ejercicio 6. Si x=-1:.1:1, escribe el comando MATLAB que calcula el arcoseno
de cada componente de x.
Ejercicio 7. Si x=linspace(0,2*pi,1000), cual es la entrada 50 de x? Cual
es la longitud de x?
Ejercicio 8. Si k=0:100, cual es la entrada n
umero 12 de y=0.5.^k?
PRACTICA
2
Matrices y MATLAB
En esta practica se aprendera a introducir y editar matrices en MATLAB. Se experimentara con algunas funciones de construccion de matrices incorporadas en MATLAB.
Se aprendera a construir matrices a partir de vectores y bloques de matrices.
Prerrequisitos: ninguno.
1.
Entrada de matrices
1.1.
Matrices especiales.
MATLAB tiene una serie de rutinas incorporadas para crear matrices.1 Es posible
crear una matriz de ceros de cualquier tama
no.
>> A=zeros(5)
>> B=zeros(3,5)
Es facil crear una matriz de ceros con el mismo tama
no que una dada.
1Para
obtener una lista de todas las matrices elementales de MATLAB, escrbase help elmat en
el indicador de MATLAB; para obtener informaci
on detallada sobre una en concreto escrbase help
seguido del tipo de matriz, por ejemplo, help magic.
341
>> C=magic(5)
>> D=zeros(size(C))
Se pueden crear matrices de unos de manera analoga.
>>
>>
>>
>>
A=ones(6)
B=ones(2,10)
C=hilb(5)
D=ones(size(C))
D=floor(C)
D=ceil(C)
D=round(C)
D=fix(C)
>> G=diag(1:5,1)
1.2.
Trasposici
on.
1.3.
Elimina la salida.
1.4.
2.
Indexado de matrices
a11
A = a21
a31
a12 a13
a22 a23 ,
a32 a33
2.1.
Algo m
as sobre indexado.
Cuando se indexa una matriz, los subndices pueden ser vectores. Esta es una
herramienta de gran alcance que permite extraer facilmente una submatriz de una
matriz.
>> A=magic(6)
>> A([1,2],[3,4,5])
La notacion A([1,2],[3,4,5]) referencia a la submatriz formada por los elementos
que aparecen en las filas 1 y 2 y en las columnas 3, 4 y 5 de la matriz A.
El comando
>> A([1,3,5],[1,2,3,4,5,6])
produce una submatriz con las filas 1, 3 y 5 de la matriz A. Si se recuerda que la
notacion 1:6 representa al vector [1,2,3,4,5,6] y que la notacion 1:2:6 representa
al vector [1,3,5], de este modo se tiene que A([1:2:6],[1:6]) es equivalente a
A([1,3,5],[1,2,3,4,5,6]).
>> A([1:2:6],[1:6])
Si se usa el smbolo dos puntos en lugar de subndices, se indica todo el rango. As,
>> A(:,1)
produce la primera columna de la matriz A, y
>> A(3,:)
genera la tercera fila de la matriz A. En cierto sentido, la notacion A(3,:) se puede
leer como Tercera fila, todas las columnas. El comando
>> A(1:3,:)
produce una submatriz compuesta de las tres primeras filas de la matriz A. El comando
>> A(:,1:2:6)
produce una submatriz compuesta de las columnas 1, 3 y 5 de la matriz A.
3.
Construcci
on de matrices
Con MATLAB se pueden crear matrices mas complejas a partir de otras matrices y
vectores.
3.1.
Construcci
on de matrices con vectores.
>> N=[v1,v2,v3]
produce un resultado completamente diferente, pero con sentido.
Cambiense los vectores v1,v2,v3 en vectores columna con el operador de trasposicion.
>> v1=v1
>> v2=v2
>> v3=v3
El comando
>> P=[v1,v2,v3]
construye una matriz con los vectores v1,v2,v3 como columnas de la matriz P . Se
puede obtener el mismo resultado con la transpuesta de la matriz M .
>> P=M
Tengase en cuenta que las dimensiones deben coincidir: cuando se construyen
matrices, hay que asegurarse que cada fila y columna tengan el mismo n
umero de
elementos. Por ejemplo, la siguiente secuencia de comandos producira un error.
>> w1=1:3;w2=4:6;w3=7:10;
>> Q=[w1;w2;w3]
3.2.
Construcci
on de matrices con otras matrices.
Es una cuestion simple aumentar una matriz con un vector fila o columna. Por
ejemplo,
>> A=[1,2,3,4;5,6,7,8;9,10,11,12]
>> b=[1,1,1]
>> M=[A,b]
es valido, pero
>> M=[A;b]
no lo es; aunque s lo es
>> c=[1,1,1,1]
>> M=[A;c]
Se pueden concatenar dos o mas matrices. As,
>> A=magic(3),B=ones(3,4)
>> M=[A,B]
es valido, pero
>> N=[A;B]
no lo es; aunque s lo es
>> C=[1,2,3;4,5,6]
>> P=[A;C]
3.3.
La imaginaci
on es el lmite.
Ejercicios de la pr
actica 2
Ejercicio 1. Escribe los comandos de MATLAB que generan las siguientes matrices.
10
5 6
1
1 3
0
5 8 4
.
1.)
2.)
3 1 6
8
5 10
3
4
4 10 7
8
8 5
Ejercicio 2. Escribe un solo comando que cree una matriz 35 con cada entrada
igual a 3.
Ejercicio 3. Crea una matriz de Hilbert con los siguientes comandos.
%Format rat no funciona en Octave
>> format rat
>> H=hilb(5)
>> format
Escribe una formula para la posicion (i, j) de la matriz H.
Ejercicio 4. Explica la diferencia entre los comandos floor, ceil, round y
fix. Apoya tu explicacion con ejemplos en MATLAB.
Ejercicio 5. Escribe un comando MATLAB que genere una matriz 4 4 con valores
aleatorios enteros entre 5 y 5.
Ejercicio 6. El operador genera realmente la conjugada traspuesta de una matriz. Para verlo, introduzca la matriz A=[1,2+i,sqrt(2);3,3-i,sqrt(-1)], teclea
entonces A. Describe el resultado. Que ocurre si ponemos A.? Explica la diferencia
entre los operadores de trasposicion y ..
Ejercicio 7. Cual es la entrada en fila 5 y columna 7 de la matriz pascal(10)?
Ejercicio 8. Sea T=toeplitz(1:7). Escribe un comando de MATLAB que
1. coloca las filas pares de la matriz T en una matriz B.
2. coloca las filas impares de la matriz T en una matriz C.
3. coloca la u
ltima columna de la matriz T en un vector b.
Ejercicio 9. Sea x=[0,pi/2,2*pi]. Construye una matriz, con comandos de
MATLAB, cuya primera fila es x, la segunda fila esta formada por el seno cada entrada
de x, y la tercera fila es el coseno de cada entrada de x.