ÁLGEBRA LINEAL Y
MATRICES
Matrices
Recordemos que los arrays pueden tener
una fila y múltiples columnas (vector fila) o una columna y múltiples
filas (vector columna), parece por tanto claro que MATLAB debe permitir
trabajar con arrays de múltiples filas y columnas. Efectivamente
esto es posible siempre y cuando todas las filas tengan el mismo número
de columnas, se obtiene así una configuración rectángular
que denominamos matriz.
La creación de matrices sigue
la misma estructura que los vectores fila y columna. Se utilizan comas
o espacios para separar elementos de una fila y puntos y comas o pulsando
ENTER para separar filas.
EDU» A=[1 2 3;4 5 6;7
8 9]
A =
1 2 3
4 5 6
7 8 9
EDU» A=[1 3 5
7 9 11
2 4 6]
A =
1 3 5
7 9 11
2 4 6
EDU» fila1=[1 3 5]
fila1 =
1 3 5
EDU» B=[fila1;3 4 5;fila1]
B =
1 3 5
3 4 5
1 3 5
EDU» B=[ fila1
3 4 5;1 3 5]
B =
1 3 5
3 4 5
1 3 5 |
Todas las operaciones y conceptos analizados para arrays
se aplican a matrices, siempre que las dimensiones sean coherentes, en
particular podemos sumar matrices de igual dimensión, multiplicar
una matriz por un escalar, multiplicar o dividir elemento a elemento dos
matrices de igual dimensión usando las operaciones con punto, transponer,
... Observemos que los arrays son casos particulares de matrices.
Además, podemos realizar otras operaciones propias
de matrices como la multiplicación, calculo de inversas, determinantes,
rangos, ... (estos conceptos se estudian en cualquier curso básico
de Álgebra Lineal)
EDU» A=[1+i 2 i; -i 1-i
2-3i]
A =
1.0000 + 1.0000i
2.0000
0 + 1.0000i
0 - 1.0000i 1.0000 - 1.0000i 2.0000 - 3.0000i
EDU» A.' %Transpuesta
ans =
1.0000 + 1.0000i
0 - 1.0000i
2.0000
1.0000 - 1.0000i
0 + 1.0000i 2.0000 - 3.0000i
EDU» A' %Transpuesta conjugada
ans =
1.0000 - 1.0000i
0 + 1.0000i
2.0000
1.0000 + 1.0000i
0 - 1.0000i 2.0000 + 3.0000i
EDU» B=[1 2 3; 4 5 6;
7 8 0]
B =
1
2 3
4
5 6
7
8 0
EDU» A*B
ans =
9.0000 + 8.0000i
12.0000 +10.0000i 15.0000 + 3.0000i
18.0000 -26.0000i
21.0000 -31.0000i 6.0000 - 9.0000i
EDU» det(A) % Determinante
??? Error using ==> det
Matrix must be square.
EDU» det(B) % Determinante
ans =
27
EDU» inv(B) %Inversa
ans =
-1.7778
0.8889 -0.1111
1.5556
-0.7778 0.2222
-0.1111
0.2222 -0.1111
EDU» rank(B) %rango
ans =
3
EDU» trace(B) %traza
ans =
6
EDU» [f,c]=size(B) %dimension
f =
3
c =
3
EDU» B^3
ans =
279
360 306
684
873 684
738
900 441 |
Podemos encontrar gran número de operadores matriciales
consultando la ayuda para matfun.
Manipulación
matricial
MATLAB cuenta con numerosas y
potentes maneras de manipular matrices, así, por ejemplo, podremos
insertar y extraer subconjuntos de ellas identificando los subíndices
de interés.
EDU» A=[1 2 3;4 5 6;7 8 9]
A =
1 2
3
4 5
6
7 8
9
EDU» A(3,2) %Elemento de la tercera fila y segunda columna
ans =
8
EDU» A(3,2)=0 %Cambia el elemento anterior a 0
A =
1 2
3
4 5
6
7 0
9
EDU» A(2,5)=7 %Cambia el elemento de la segunda fila y quinta
columna a 7
A =
1 2
3 0 0
4 5
6 0 7
7 0
9 0 0
EDU» %Al no tener 5 columnas, la matriz se completa adecuadamente
introduciendo ceros
EDU» B=A(3:-1:1,1:3) %Tomamos las filas de A en orden inverso
B =
7 0
9
4 5
6
1 2
3
EDU» B=A(3:-1:1,:) %Igual que antes, aqui : significa tomar todas
las columnas
B =
7 0
9 0 0
4 5
6 0 7
1 2
3 0 0
EDU» C=[A B(:,[1 3])] %Añadimos a A todas las filas en
la primera y tercera columna de B
C =
1 2
3 7 9
4 5
6 4 6
7 8
9 1 3
EDU» C=[A B(:,1:2:3)] %Igual que antes
C =
1 2
3 7 9
4 5
6 4 6
7 8
9 1 3
EDU» B=[1:2,3:-1:2]
B =
1 2
3 2
EDU» B=A(1:2,3:-1:2)
B =
3 2
6 5
EDU» B=A(:)
B =
1
4
7
2
5
8
3
6
9
EDU» B=A;
EDU» B(:,2)=[1 2 3]'
B =
1 1
3
4 2
6
7 3
9
EDU» B(:,2)=[1 2 3]' %Sustituimos la segunda columna en B
B =
1 1
3
4 2
6
7 3
9
EDU» B(:,2)=[] %Eliminamos la segunda columna en B
B =
1 3
4 6
7 9
EDU» C=B(:,[2 2 2 2]) %Duplicamos 4 veces la segunda columna
de B
C =
3 3
3 3
6 6
6 6
9 9
9 9 |
Matrices especiales
MATLAB dispone de una serie de
matrices especiales, unas de utilidad general y otras de interés
en problemas especializados. Entre las matrices de interés general
caben destacar
Matrices nulas
EDU» zeros(3)
ans =
0
0 0
0
0 0
0
0 0
EDU» zeros(2,3)
ans =
0
0 0
0
0 0 |
Matrices de unos
EDU» ones(4)
ans =
1
1 1 1
1
1 1 1
1
1 1 1
1
1 1 1
EDU» ones(1,4)
ans =
1
1 1 1 |
Matrices aleatorias
EDU» rand(2,3) %Número
uniformemente distribuidos entre 0 y 1
ans =
0.9501
0.6068 0.8913
0.2311
0.4860 0.7621
EDU» randn(2,3) %Números
normalmente distribuidos
ans =
-0.4326
0.1253 -1.1465
-1.6656
0.2877 1.1909 |
Matrices identidad
EDU» eye(4)
ans =
1
0 0 0
0
1 0 0
0
0 1 0
0
0 0 1
EDU» eye(3,2)
ans =
1
0
0
1
0
0 |
|