Você está na página 1de 3

Comunicación Técnica Comunicación Electrónica Algebra lineal con Matlab

Algebra lineal con MATLAB.


Para sistemas de ecuaciones lineales no muy grandes es muy fácil recurrir a su solución con
MATLAB, entonces conviene aprender algunas de las operaciones y funciones del manejo de
matrices y vectores con esta herramienta.

Esta práctica se va a orientar a usar las herramientas de MATLAB para:


• Resolver un sistema de ecuaciones lineales algebraicas (SEA).
• Calcular la inversa y el determinante de una matriz.

Ya aprendimos a escribir matrices y vectores en MATLAB.


Así la matriz:

1 2 3
A= 1 1 0
1 0 2

Se escribe como
>> A = [ 1 2 3 ; 1 1 0 ; 1 0 2 ]
o
>> A= [ 1 ,2 ,3 ; 1 ,1, 0 ; 1, 0 ,2 ]
A=
1 2 3
1 1 0
1 0 2

Y en el caso de un vector:
x = [ 1 2 3 ] este es un vector fila. (1)

Transpuesta de una matriz.


T
Recordemos que B es la transpuesta de A (B = A ). donde b j, i = a i,j
En MATLAB la transpuesta se evalúa con el operador apóstrofe ‘.
>> B = A’
B=
1 1 1
2 1 0
3 0 2

En un vector fila como x su transpuesto es el vector columna:


>> x’
ans =
1
2
3

Multiplicación de matrices.
Recordemos que para multiplicar las matrices A*B , el número de columnas de A debe ser igual al de
filas B. Y que en general el producto de matrices no es conmutativo.
Como a nosotros nos interesa para el cálculo de un SEA.
b = A*x'
b =
14
3
7

1 de 3
Comunicación Técnica Comunicación Electrónica Algebra lineal con Matlab

Matriz inversa.
Recordemos que la inversa de una matriz A es B tal que :
A*B = I o A*B = 1 I es la matriz identidad
-1
Es decir que A por su inversa B ( o A ) es la matriz identidad.
>> B= inv(A) La función inv() calcula la inversa de una matriz
B=
-0.4000 0.8000 0.6000
0.4000 0.2000 -0.6000
0.2000 -0.4000 0.2000
>> A*B
1.0000 0.0000 0.0000
0.0000 1.0000 0.0000
0.0000 0.0000 1.0000
o
>> B*A
1.0000 0.0000 0.0000
0.0000 1.0000 0.0000 Propiedad conmutativa de la multiplicación por la inversa.
0.0000 0.0000 1.0000
Solución de un SEA con MATLAB.
Al multiplicar la matriz A por el vector x transpuesto (A * x’) generamos un SEA:
A. x = b donde b es el vector de términos independientes de este sistema no homogéneo.
Sabemos que para hallar la soluciones x1 , x2 y x3 de este sistema, se multiplica la inversa por el
vector b, esto se puede deducir pues si multiplicamos el sistema por la inversa de A:
-1 -1 -1
A *Ax=A *b como A *A = I por lo tanto:
-1 -1
x = A * b en MATLAB se calcula A con la función inv(A), la matriz A no debe se singular.
x = inv(A) * b
x=
1.0000
2.0000
3.0000 Obtenemos así los valores de x, que coinciden con los establecidos en (1).
Nota: Internamente en MATLAB es más eficiente la operación ‘premultiplicación por la inversa’ que
se representa por el operador \ (barra invertida).
Así la solución del sistema Ax =b se obtiene con el comando:
>> x = A \ b
Con este operador el comando
>> A \ A Da como resultado una matriz unidad de 3x3.
Determinante.
Determinante de A = a11 a22 a33 + a12 a23 a31 + a13 a21 a32 - a11 a23 a32 - a12 a21 a33 - a13 a22 a31
Para calcular el determinante de una matriz en MATLAB se usa la función det(A).
>> det(A) La función det() calcula el determinante de una matriz
ans =
-5
La matriz debe ser cuadrada y no singular.
>> S = [ 1 2 3 ; 1 1 0 ; 2 4 6 ]
S=
1 2 3
1 1 0
2 4 6 Esta fila es la fila 1 * 2.00
>> det(S)
ans = 0
Al dar cero el determinante no podremos hallar la inversa.

Recordemos que la inversa es:


-1 T
A = 1 * [ Adj (A)]
det(A)

2 de 3
Comunicación Técnica Comunicación Electrónica Algebra lineal con Matlab

Funciones elementales para matrices y vectores


Las presentaremos con ejemplos. Los nombres de los vectores , matrices y usados a la izquierda del
signo igual, o como argumentos (v , ym , posimax, num_elem , etc.) son de libre elección.

Funciones para vectores.

Dado el vector: v:= [ 7 ; 3 ; 6 ; 4 ; 11 ; 9 ]

length(v) Devuelve el tamaño del vector (cantidad de elementos)


ans = 6

min(v) Busca el elemento con el valor mínimo


ans = 3

max(v) Busca el elemento con el valor máximo


ans = 11

[ymin,posimin] =min(y) Busca el mínimo (ymin) y su posición dentro del vector (posimin)
ym =3 posimin = 2

[ymax,posimax] =max(y) Busca el máximo (ymax) y su posición dentro del vector (posimax)
ymax= 11 posimax = 5

sum(v) Calcula la sumatoria de los elementos del vector


ans = 40

mean(v) Calcula el promedio de los elementos del vector


ans = 6.6667

[vord , posi] = sort(v) Ordena el vector y devuelve un vector (vord) ordenado


y otro vector (posi) con la posición de cada elemento en el original.
vord = 3 4 6 7 9 11
posi = 2 4 3 1 6 5

Funciones para matrices

M = magic(3) Genera una matriz al azar de nxn elementos en este caso 3x3.
8 1 6
3 5 7
4 9 2

IDEN = eye(3) Genera una matriz identidad de nxn (en este caso 3x3)
1 0 0
0 1 0
0 0 1

[m,n] = size(M) Devuelve la cantidad de filas (m) y columnas (n) de la matriz M


m=3 n = 3

nfilas = size(M,1) Devuelve la cantidad de filas o sea nfilas=3


ncolum = size(M,2) Devuelve la cantidad de columnas o sea ncolum=3
º
size (vector,1) se puede aplicar también para saber la cantidad de elementos de un vector:
num_ele = size(v,1) o sea num_ele = 6

3 de 3

Você também pode gostar