Algebra Lineal Con MATLAB

5
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. Recordemos que B es la transpuesta de A (B = A T ). donde b j, i = a i,j En MATLAB la transpuesta se evalúa con el operador apóstrofe . >> B = AB = 1 1 1 2 1 0 3 0 2 En un vector fila como x su transpuesto es el vector columna: >> xans = 1 2 3 Multiplicación de matrices. 1 de 5

description

Algebra Lineal Con MATLAB

Transcript of Algebra Lineal Con MATLAB

Page 1: 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

Page 2: Algebra Lineal Con MATLAB

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

Page 3: Algebra Lineal Con MATLAB

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