Algebra Lineal Con MATLAB
description
Transcript of Algebra Lineal Con MATLAB
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 3A = 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.
Recordemos que B es la transpuesta de A (B = AT). 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
Es decir que A por su inversa B ( o A-1) es la matriz identidad.>> B= inv(A) La función inv() calcula la inversa de una matrizB = -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.0000o>> 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:
A-1 * A x = A-1 * b como A-1*A = I por lo tanto:
x = A-1 * b en MATLAB se calcula A-1 con la función inv(A), la matriz A no debe se singular.x = inv(A) * bx = 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 \ bCon 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 matrizans = -5La 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 = 0Al dar cero el determinante no podremos hallar la inversa.
Recordemos que la inversa es:
A-1 = 1 * [ Adj (A)]T
det(A)
2 de 3
Comunicación Técnica Comunicación Electrónica Algebra lineal con Matlab
Funciones elementales para matrices y vectoresLas 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ínimoans = 3
max(v) Busca el elemento con el valor máximoans = 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 vectorans = 40
mean(v) Calcula el promedio de los elementos del vectorans = 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 11posi = 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 Mm = 3 n = 3
nfilas = size(M,1) Devuelve la cantidad de filas o sea nfilas=3ncolum = 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