Você está na página 1de 15

Aplicacin de MAXIMA al Algebra lineal o

Javier Alvarez Osuna 5 de marzo de 2013

Indice
1. Espacio Vectorial 1.1. Sistemas generadores y bases . . . . . . . . . . . . . . . . . . . . . 1.2. Matriz de cambio de base . . . . . . . . . . . . . . . . . . . . . . 2. Aplicaciones lineales 2.1. Cambio de base. Matrices semejantes . . . . . . . . . . . . . . . . 2.2. Endomorsmos: Autovalores y Autovectores . . . . . . . . . . . . 2.3. Diagonalizacin de matrices . . . . . . . . . . . . . . . . . . . . . o 3 3 3 7 8 10 14

1.
1.1.

Espacio Vectorial
Sistemas generadores y bases

Denicin 1 (Sistema generador). Sea V un espacio vectorial. Diremos que o un sistema de vectores S = {v1 , ..., vn } es un sistema generador de V si todo vector de V puede ponerse como combinacin lineal de los vectores de S. o Denicin 2 (Base). Sea V un espacio vectorial nito. Diremos que un sistema o de vectores S V es una base de V si cumple: S es un sistema generador de V. S es linealmente independiente. En otras palabras, una base es un sistema de generadores de un espacio vectorial en el que no sobra ningn vector, ya que, al ser linealmente independiente, ninguno u de ellos puede escribirse como combinacin lineal de los dems. o a Denicin 3 (Coordenadas de un vector). Sea V un espacio vectorial de o dimensin n sobre un cuerpo K. Dada una base B = (u1 , ..., un ) sabemos que, o para todo vector v V , existe una unica combinacin lineal o v = 1 u1 + + n un Los escalares 1 , ..., n denen por lo tanto al vector v y se denominan coordenadas de v respecto a B. Escribiremos: vB = (1 , ..., n ) Cuando la base B est clara en el contexto (p.e. base canonica o unitaria) se a escribe: v = (1 , ..., n )

1.2.

Matriz de cambio de base

Las coordenadas de un vector de V dependen de la base B que hayamos elegido. Si tenemos otra base B las coordenadas del mismo vector ser diferentes. Vamos an a ver como estn relacionados estos dos conjuntos de coordenadas. a Supongamos que tenemos un espacio vectorial V de dimensin n, y sean B = o (u1 , ..., un ) y B = (u1 , ..., un ) dos bases de V . Como B es base podemos escribir cada vector de B como una combinacin lineal de B. o u1 = 11 u1 + 21 u2 + + n1 un u2 = 12 u1 + 22 u2 + + n2 un . . . un = 1n u1 + 2n u2 + + nn un 3

Si las coordenadas de v respecto a B son vB = (x1 , ..., xn ) y respecto a B son vB = (x1 , ..., xn ) entonces:
n

v = x1 u1 + + xn un = xi ui = xi ui
i=1 n

v = x1 u1 + + xn un = xi ui = xi uui
i=1

Por un lado tenemos v = x1 u1 + +xn un . Y por otro lado v = x1 u1 + +xn un . Si sustituimos cada ui por 1i ui +2i u2 + +ni un y agrupamos los coecientes obtenemos: v = (11 x1 + + 1n xn )u1 + + (n1 x1 + + nn xn )un O sea que xi = i1 x1 + + in xn , o lo que es lo mismo: A la matriz AB ,B = 11 12 21 22 . . . . . . n1 n2 1n 2n . . . nn x1 x2 . . . xn 11 12 21 22 . . . . . . n1 n2 1n 2n . . . nn x1 x2 . . . xn

se le denomina matriz de cambio de base y est formada por los vectores columa na de la base B . As si X y X son los vectores columna que representan las coordenadas de un vector respecto de B y B , la matriz AB ,B transforma las coordenadas respecto de B en coordenadas en B. X = AB ,B X (1)

De forma semejante, existe otra matriz de cambio de base AB,B que trasforma las coordenadas de X en X. X = AB,B X Si en la ecuacin 2 sustituimos X por su valor en 1 tenemos que: o X = AB ,B X = AB ,B AB,B X 4 (2)

Lo cual nos indica que el producto AB ,B AB,B = I y por lo tanto que: AB,B = A1,B B El siguiente cdigo en MAXIMA resuelve el cambio de base de las coordenadas o de un vector en la base cannica a otra cualquiera. o (%i1) vector: [1,2,-1];

( %o1) [1, 2, 1] (%i2) /* Matriz con los vectores de la nueva base */ B: matrix([1,0,1],[0,-1,1],[2,3,-5]); 1 0 1 ( %o2) 0 1 1 2 3 5 (%i3) B: transpose(B); 1 0 2 ( %o3) 0 1 3 1 1 5 (%i4) B: invert(B); 1 1 1
2 2 2

3 ( %o4) 3 7 4 4 4 1 1 1 4 4 4

solucion : B.vector; 1 2 ( %o5) 0 (%i5) (%i6) ( %o6) transpose(solucion); 1 2 0

Para comprobar que los resultados obtenidos son los correctos, podemos usar el siguiente cdigo, que tiene en cuenta que v = B X siendo X las coordenadas o del vector v en la base B . (%i1) new_vector : [1,-2,0];

( %o1) [1, 2, 0]

(%i2)

B : 1 0 ( %o2) 2 (%i3) BT: 1 0 ( %o3) 1 (%i5) ( %o5)

matrix([1,0,1],[0,-1,1],[2,3,-5]); 0 1 1 1 3 5 transpose(B); 0 2 1 3 1 5

transpose((BT.new_vector)); 1 2 1

Ambos cdigos se han recogido en forma de dos funciones denominadas chano ge basis vector y calcule vector dentro de la libreria matrixutils.mac. En ambos casos, estas funciones esperan un listado (no una matriz) con los vectores que denen la base. Estas librer resuelven los ejercicios del tema 3 de los apuntes as ociales de la asignatura. Tal y como se sugieren en los apuntes de la asignatura, invertir una matriz es computacionalmente costoso si la dimensin es alta, por tanto ambas funciones o admiten una coleccin de vectores, mostrando como output un listado con los o nuevos vectores.

2.

Aplicaciones lineales

Denicin 4 (Aplicacin lineal). Sean V y V dos espacios vectoriales sobre o o un mismo cuerpo K. Sea f una aplicacin de V en V , que escribiremos: o f : V V Esto quiere decir que a cada elemento de v V le hacemos corresponder un elemento f (v) V . Diremos entonces que f es una aplicacin lineal o un o homomorsmo si se cumplen las siguientes condiciones: f (u + v) = f (u) + f (v) u, v V f (v) = f (v) K, v V

Denicin 5. Sean V y V dos espacios vectoriales, sobre un mismo cuerpo K o de dimensiones n y m respectivamente. Sea B una base de V , B una base de V y cosideraremos una aplicacin lineal f : V V . o Sea A Mmxn la matriz cyas columnas representan los vectores de f (B) (es decir, sus coordenadas respecto de la base B ). Entonces un vector cualquiera v V , con coordenadas vB = (x1 , ..., xn ), las coordenadas de f (v) que denominaremos f (v)B = (y1 , ..., ym ) estn determinadas por: a y1 y2 . . . ym es decir: f (v)B = AvB . Lgicamente, si B = (v1 , ..., vn ) y B = (v 1 , ..., v m ) sabemos, por construco cin, que f (vi ) = 1i v 1 + + mi v m . Entonces, dado un vector v V , con o coordenadas vB = (x1 , , xn ) se tiene v = x1 v1 + + xn vn . Por tanto, 11 21 . . . 12 22 . . . 1n 2n . . . mn x1 x2 . . . xm

m1 n2

f (v) = x1 f (v1 )+ +xn f (vn ) = x1 (11 v 1 + +m1 v m )+ +xn (1n v 1 + +mn v m ) Agrupando los coecientes de cada v i , tenemos: f (v) = (11 x1 + + 1n xn )v 1 + + (m1 x1 + + mn xn )v 1m Por lo tanto, si f (vB = (y1 , , yn ) tendremos que: yi = i1 x1 + + in xn 7

Que se puede expresar en forma de matriz se indic anteriormente. o Esta denicin nos indica que una aplicacin lineal, entre un espacio de dimensin o o o n y un espacio de dimensin m (sobre un mismo cuerpo), est completamente o a determinada por una matriz m x n. Y a la inversa: toda matriz m x n determina una aplicacin lineal. o La relacin entre las aplicaciones lineales y las matrices va ms all de la mera o a a frmula para describir coordenadas. La mayor de las propiedades que conocemos o a sobre las matrices tienen sentido al hablar de las aplicaciones lineales.

2.1.

Cambio de base. Matrices semejantes

Un caso particular de aplicaciones lineales se da cuando f : V V es decir cuando una aplicacin tome vectores de V respecto de una base, y los env a veco a tores de V respecto de otra base. Este tipo de aplicaciones lineales se denominan endomorsmos de V . Denicin 6. Sea V un espacio vectorial de dimensin n. Sea f : V V . Si o o B1 y B2 son dos bases de V , y la matrices de f con respecto a estas bases son, respectivamente M(f )B1 y M(f )B2 entonces se tiene: M(f )B2 = CB1 ,B2 M(f )B1 CB2 ,B1
1 Como CB1 ,B2 = CB2 ,B1 podemos concluir que:

B = P 1 AP Siendo B = M(f )B2 , A = M(f )B1 y P la matriz de cambio de base. Veamos ahora un ejemplo de este concepto resuelto con MAXIMA. Ejemplo. Sea la aplicacin lineal f : R3 R3 donde f (x, y, z) = (6x + 6y + o 2x, x y + z, 7x + 3y + z) Cal es la nueva base de R3 determinada por los u vectores V = (1, 1, 2), (0, 1, 3), (1, 0, 1)? Denimos una lista con las ecuaciones de f (x, y, z)

(%i1)

f(x,y,z):= ([6*x-6*y+2*z,-x-y+z,7*x+3*y+z]);

( %o1) f (x, y, z) := [6 x 6 y + 2 z, x y + z, 7 x + 3 y + z] Calculamos la matriz M(f )B1 que dene f (x, y, z) para una base cannica o

(%i2)

A : matrix(f(1,0,0),f(0,1,0),f(0,0,1)); 6 1 7 ( %o2) 6 1 3 2 1 1 La matriz obtenida hay que transponerla para transformar en una matriz de vectores columnas.

(%i3)

A: transpose(A); 6 6 2 ( %o3) 1 1 1 7 3 1 Denimos la matriz M(f )B2 a partir de los vectores de la base que nos ofrece el enunciado.

(%i4)

N : 1 0 ( %o4) 1

matrix([1,1,-2],[0,1,3],[1,0,1]); 1 2 1 3 0 1

Calculamos su transpuesta

(%i5)

P : transpose(N); 1 0 1 ( %o5) 1 1 0 2 3 1 Calculamos la inversa de P que denominamos Pi

(%i6)

Pi : invert(P); 1 1 1 6 2 6 1 ( %o6) 1 1 6 2 6 5 1 2 1 6 6 Aplicamos la ecuacin B = P 1 (AP ) o 9

(%i7)

Pi.(A.P); 4 0 0 ( %o7) 0 2 0 0 0 8 En la librer de funciones matrixutils.mac hay denida una funcin chana o ge base matrix que realiza el cambio de base de una matriz denida por una aplicacin lineal y una base de partida. o

2.2.

Endomorsmos: Autovalores y Autovectores

Denicin 7. Un vector propio de A es un vector x distinto de cero tal que o Ax = x para algn R. A se le llama valor propio asociado a A. u Cmo encontramos x y ? Despejando en la expresin R tenemos o o (A I)x = 0 Como x = 0 necesitamos que el sistema tenga soluciones no triviales; es decir det(A I) = 0 (4) (3)

La solucin al clculo de los valores propios de una matriz en MAXIMA se podr o a a resolver del siguiente modo: (%i1) A: matrix([1,3,3],[3,-5,-3],[3,3,1]); 1 3 3 ( %o1) 3 5 3 3 3 1 (%i2) polinomio_propio : determinant(A - %lambda * ident(length(A)));

( %o2) (( 5) (1 ) + 9) (1 ) 3 (3 (1 ) + 9) + 3 (9 3 ( 5)) (%i3) polinomio_propio: expand(polinomio_propio);

( %o3) 3 3 2 + 18 + 40 (%i4) valores_propios: solve(polinomio_propio=0, %lambda);

( %o4) [ = 2, = 4, = 5] Comprobamos que todos los R, y al ser distintos de cero, no existe degeneracin. o 10

Para calcular los autovectores recordemos que para cada autovalor , el autovector correspondiente debe satisfacer (1). En MAXIMA este proceso se puede realizar del siguiente modo: Desarrollamos la ecuacin (A I)x = 0 con x = (x, y, z) o (%i5) ecuacion: (A - %lambda * ident(length(A))).transpose(matrix([x,y,z])); 3 z + 3 y + (1 ) x ( %o5) 3 z + ( 5) y + 3 x (1 ) z + 3 y + 3 x Sustituimos por el primero de los autovalores, = 2 para obtener el un sistema de ecuaciones. (%i6) ecuacion1 : subst(-2,%lambda,ecuacion); 3z + 3y + 3x ( %o6) 3 z 3 y + 3 x 3z + 3y + 3x Resolvemos el sistema de ecuaciones (%i7) vector1: linsolve([ecuacion1[1,1],ecuacion1[2,1],ecuacion1[3,1]], [x,y,z]);

solve : dependentequationseliminated : (3) ( %o7) [x = 0, y = %r1, z = %r1] El resultado obtenido Dependent equations eliminated : (3)( %o7) [x = 0, y = %r1, z = %r1] nos est diciendo que el sistema es compatible indeterminado y a que tiene innitas soluciones dependientes de 1 parmetro que llama %r1. a Tomando como valor arbitrario %r1 = 1 obtenemos que: = 2 x = (0, 1, 1) Aplicando el mismo procedimiento para el resto de los valores de obtenemos los siguientes autovectores. (%i8) ecuacion2 : ecuacion2 : subst(4,%lambda,ecuacion); 3z + 3y 3x ( %o8) 3 z 9 y + 3 x 3 z + 3 y + 3 x 11

(%i9)

vector2 : linsolve([ecuacion2[1,1],ecuacion2[2,1],ecuacion2[3,1]], [x,y,z]);

solve : dependentequationseliminated : (3) ( %o9) [x = %r5, y = 0, z = %r5] (%i10) ecuacion3 : ecuacion3 : subst(-5,%lambda,ecuacion); 3z + 3y + 6x ( %o10) 3 x 3 z 6z + 3y + 3x (%i11) vector3 : linsolve([ecuacion3[1,1],ecuacion3[2,1],ecuacion3[3,1]], [x,y,z]); solve : dependentequationseliminated : (3) ( %o11) [x = %r6, y = 3 %r6, z = %r6] Por lo tanto los autovectores de la matriz A del ejemplo son (0, 1, 1), (1, 0, 1), (1, 3, 1). Estos vectores propios forman una base de la matriz A. El clculo de autovalores y autovectores es una operacin muy frecuente en f a o sica. MAXIMA proporciona un comando espec co para obtener, de forma sencilla, ambos valores. As el comando eigenvalues() proporciona los autovalores de una matriz, mientras que los autovectores se obtienen con el correspondiente comando eigenvectors(). Respecto a este ultimo comando eigenvectors() el output obtenido nos ofrece una lista completa compuesta por dos items. El primero de ellos contiene los autovalores y sus multiplicidades y el segundo de ellos los autovectores. (%i12) autovectores: eigenvectors(A); ( %o12) [[[2, 4, 5], [1, 1, 1]], [[[0, 1, 1]], [[1, 0, 1]], [[1, 3, 1]]]] El siguiente cdigo en MAXIMA es una funcin que devuelve de forma ordenada o o una matriz con los autovectores de otra pasada como parmetro. Esta funcin a o es muy similar al problema resuelto 1 de la UD-Cp3 (Seccin 3.2.2 - pag. 3.5) o salvo que produce una matriz de autovectores en vez de una lista. Esta matriz de autovectores es util para solucionar cuestiones relativas a la diagonalizacin de o una matriz.

12

/*

FUNCION "eigenvectors_to_matrix" Proporciona una matriz con los autovectores de otra matriz dada Input: "M" = matriz para obtener autovectores Output: "EM" = matriz con los autovectores

*/ eigenvectors_to_matrix(M):= block([autovectores, number_vectors, EM], /* obtenemos los autovectores. Para ello solo guardamos en la variable vectors los valores del segundo item [2] que nos proporciona el comando eigenvectors */

autovectores: eigenvectors(M)[2], /* Construimos una lista plana con las coordenadas de todos vectores almacenados en vectors */

autovectores: flatten(autovectores), /* Calculamos el numero de vectores que tenemos. Para ello hay que tener en cuenta que para que una matriz sea diagonizable es necesario que existan tantos autovectores como la dimensionalidad del espacio */

number_vectors: length(autovectores)/length(M), /* Creamos una lista con los length(M) primeros componentes y la incluimos en nuestra matriz output */ EM: matrix(makelist(autovectores[j],j,1,length(M))), /* Creamos las siguientes listas (number_vectors -1) de length(M) componentes */ for i:1 thru number_vectors-1 do ( EM: addrow(EM, makelist(autovectores[length(M)*i+j],j,1,length(M))) ), EM )$ /* FIN */

13

2.3.

Diagonalizacin de matrices o

Denicin 8. Llamamos matriz diagonal a una matriz cuadrada de n x n trmio e nos que tiene nulos todos los elementos que no estn en la diagonal principal. a Denicin 9. Diremos que una matriz cuadrada A es una matriz diagonizable o si existe una matriz inversible P tal que la matriz D = P 1 AP (5) es una matriz diagonal. En esta situacin diremos que la matriz P diagonaliza o a la matriz A o que es una matriz de paso en la diagonalizacin de A. o Cmo se diagonaliza una matriz A? o Hay que tener en cuenta que si A es diagonizable existe una base de Rn formada por vectores propios de A. Atendiendo al concepto anterior, los autovectores de A forman una matriz P de vectores columna que cumple la ecuacin 5 y por lo tanto nos permite calcular la o matriz diagonal de A. /* Cargamos la funcion eigenvectors que nos permite obtener la matriz de vectores propios de otra matriz dada */

batchload("/Users/jalosu/Documents/FuncionesMaxima/matrixutils.mac")$ (%i3) A: matrix([1,3,3],[3,-5,-3],[3,3,1]); 1 3 3 ( %o3) 3 5 3 3 3 1 (%i9) P: eigenvectors_to_matrix(A); 0 1 1 1 ( %o9) 1 0 1 3 1 (%i10) /* La matriz P obtenida tenemos que realizar una transposicion para trasformarla en una matriz de vectores columnas */ P: transpose(P); 0 1 1 ( %o10) 1 0 3 1 1 1 (%i11) D: invert(P).A.P; 2 0 0 ( %o11) 0 4 0 0 0 5 14

Si nos jamos, la matriz diagonal D obtenida est formada por los autovalores de a A colocados en la diagonal principal y en el orden en que aparecen los vectores propios que los caracterizan. Podemos ahora comprobar fcilmente en MAXIMA que A = P DP 1 , o lo que es a 1 lo mismo que AA = 1. (%i12) /* Comprobacion de que D es la matriz diagonal de A */ A.invert(P.D.invert(P)); 1 0 0 ( %o12) 0 1 0 0 0 1 En la librer de MAXIMA matrixutils.mac se ha desarrollado una funcin a o o espec ca diagonalize matrix() para diagonalizar matrices. Esta funcin hace a uso de size matrix() para comprobar que la matriz, pasada como parmetro, es cuadrada. Si la matriz no es cuadrada, visualiza un mensaje de error. Si por el contrario es cuadrada aplica el cdigo descrito anteriormente. o

15

Você também pode gostar