Álgebra - Guia Máxima - Guia máxima, asignatura algebra Guia máxima, asignatura algebra Guia máxima, PDF

Title Álgebra - Guia Máxima - Guia máxima, asignatura algebra Guia máxima, asignatura algebra Guia máxima,
Author Anonymous User
Course Algebra
Institution UNED
Pages 20
File Size 253.9 KB
File Type PDF
Total Downloads 50
Total Views 183

Summary

Guia máxima, asignatura algebra
Guia máxima, asignatura algebra
Guia máxima, asignatura algebra...


Description

Algebra lineal con wxMaxima

Introducci´ on Este documento presupone que se tiene un conocimiento elemental de Maxima y wxMaxima, es decir, se sabe c´ omo introducir una expresi´ on matem´atica y realizar operaciones b´ asicas. Aqu´ı nos interesa exclusivamente lo referente a operaciones con vectores y matrices, resoluci´on de sistemas de ecuaciones lineales, subespacios vectoriales y aplicaciones lineales. He unificado lo que aparece sobre el tema en los siguientes documentos: Primeros pasos en Maxima Mario Rodr´ıguez Riotorto Pr´ acticas con Maxima Mar´ıa Mu˜ noz Guillermo Maxima con wxMaxima: software libre en el aula de matem´ aticas J. Rafael Rodr´ıguez Galv´ an ´ lineal con Maxima Ap´endice. Algebra J. Rafael Rodr´ıguez Galv´ an ´ Algebra lineal con wxMaxima Gustavo Garrigos Pr´ acticas de Matem´aticas 1 con Maxima. Jos´e Salvador C´anovas Pe˜ na. Todos est´ an disponibles en Internet. La forma m´ as f´ acil de encontrar estos documentos es justamente escribir el t´ıtulo en el buscador. Como estos documentos est´an redactados en diferentes ´epocas y con diferentes versiones de Maxima y wxMaxima, no siempre es literalmente aplicable todo lo que indican. A veces, comentan que tal cosa no puede realizarse, pero versiones posteriores s´ı permiten hacerlo. La versi´ on que he utilizado para los ejemplos y ejercicios del documento es wxMaxima 19.05.7. En cada ejemplo o ejercicio he reiniciado la numeraci´ on. Si se trabaja en una misma sesi´ on con diferentes ejemplos, la numeraci´on de las entradas y salidas ser´a diferente y habr´ a que tener cuidado al utilizar en alg´ un paso otra expresi´ on anterior. Por u ´ltimo, conviene recordar que tras introducir una expresi´ on, para que se ejecute hay que pulsar simult´aneamente las teclas Shift+Enter.

1

1.

Vectores y matrices

Para escribir vectores de Kn debemos de introducir cada una de las componentes del mismo entre corchetes, separ´ andolas por comas. As´ı, el vector v = (1, 2, 3, −1) de R4 se teclear´ a ( % i1) v : [1, 2, 3, -1]; ( % o1)

v : [1, 2, 3, 4]

Las matrices se introducir´ an por filas como un vector de vectores, ayudados de la sentencia matrix. La matriz   1 2 −1 M= 0 3 1 se escribir´ a como ( % i1) M : matrix ([1, 2, -1], [0, 3, 1]); ( % o1)



1 2 −1 0 3 1



Para la matriz identidad de Mn×n (K) tenemos asignado el nombre ident(n) ( % i1) ident[4];

( % o1)

 1 0  0 0

0 1 0 0

0 0 1 0

 0 0  0 1

Con diagmatrix(n, x) introducimos una matriz diagonal de tama˜ no n × n con el valor x en cada elemento de la diagonal principal. ( % i1) diagmatrix(3,x); ( % o1)

 x 0 0 0 x 0  0 0 x



Si queremos introducir una matriz con todos los coeficientes iguales, por ejemplo, -2, usaremos la instrucci´ on genmatrix con el siguiente formato: ( % i1) M: genmatrix(lambda([i,j], -2), 2, 4);   −2 −2 −2 −2 (M) −2 −2 −2 −2 En el caso particular de que todos los coeficientes nulos, podemos usar la instrucci´ on zeromatrix(m,n) ( % i1) zeromatrix(3,3); ( % o1)



0 0 0

0 0 0 2

 0 0 0

Otra instrucci´ on interesante es entermatrix(m, n) que nos permite introducir de forma interactiva una matriz m×n. Si m = n (matriz cuadrada), la funci´on pregunta primero si la matriz que se va a introducir es diagonal, sim´etrica, antisim´etrica o general, y una vez contestado se van introduciendo los valores de la misma. ( % i1) entermatrix(3,3); Is the matrix 1. Diagonal 2. Symmetric 3. Antisymmetric 4. General Answer 1, 2, 3 or 4 : 2; Row 1 Column 1: 3; Row 1 Column 2: -1; Row 1 Column 3: 0; Row 2 Column 2: 4; Row 2 Column 3: 1; Row 3 Column 3: -2; Matrix entered.

( % o1)

 0 1 −2



3 −1 −1 4 0 1

Dada la matriz M , la instrucci´on row(M, i) devuelve la fila i-esima (con formato de matriz), mientras que col(M, i) devuelve la columna i-esima. Por ejemplo: ( % i1) M : matrix([-1, 3, 0], [0, -2, 1]); ( % o1)



−1 0

3 0 −2 1



( % i2) col(M, 2); ( % o2)



3 −2



( % i3) row(M, 1); ( % o3)

[−1 3 0]

Si queremos la primera fila como vector no como vector fila, hacemos ( % i4) M[1]; ( % o4)

[−1, 3, 0]

Esto tambi´en permite extraer coeficientes individuales de una matriz ( % i5) M[1,2]; ( % o5)

3 3

( % i6) M[2,1]; ( % o6)

1.1.

0

Operaciones con vectores

Dados dos vectores v1 y v2 y un n´ umero real λ, se definen las siguientes operaciones: v1 + v2 λ ∗ v1 v1 .v2 v1 ∼ v2

suma de vectores producto de un escalar por un vector producto escalar de vectores producto vectorial de vectores

Ejemplo 1: Dados los vectores de R3 , u = (4, 0, −2) y v = (−1, 3, 1), podemos hacer varias operaciones con ellos del modo siguiente: ( % i1) u:[4,0,-2]; v:[-1,3,1]; (u)

[4, 0, −2]

(v)

[−1, 2, 1]

( % i3) u+v; ( % o3)

[3, 3, −1]

( % i4) 3*v; ( % o4)

[−3, 9, 3]

( % i1) u.v; ( % o1)

−6

Para poder calcular el producto vectorial hay que cargar primero el paquete vect. El s´ımbolo ∼ se introduce a trav´es del teclado num´erico pulsando simult´ aneamente Alt+126. Adelant´ andonos un poco, utilizaremos las sentencias determinant y rank, que se volver´ an a ver en la subsecci´on operaciones con matrices. Ejemplo 2: ( % i1) load(vect); ( % o1) C:/maxima-5.43.0/share/maxima/5.43.0/share/vector/vect.mac ( % i2) [3,2,0]∼[2,0,-1]; ( % o2)

−[2, 0, −1]∼ [3, 2, 0] 4

Aparentemente, no ha hecho nada. Necesitamos la sentencia express. ( % i3) v:express( %i2); (v)

[−2, 3, −4]

Podemos calcular el producto vectorial de tres vectores. Lo har´ a por pasos seg´ un vayamos incluyendo la orden express. ( % i4) [4,0,1]∼([3,2,0]∼[2,0,-1]); ( % o4)

[4, 0, 1]∼ (−[2, 0, −1]∼ [3, 2, 0])

( % i5) express( %o4); ( % o5)

−[−2, 3, −4]∼ [4, 0, 1]

( % i6) express( %o5); ( % o6)

[−3, 14, 12]

Vamos a expresar el producto vectorial (−2, 3, −4) como combinaci´ on lineal de los vectores de una base B = {i, j, k }. ( % i7) u:[i,j,k]; v1:[3,2,0]; v2:[2,0,-1]; (u)

[i, j, k ]

(v1)

[3, 2, 0]

(v2)

[2, 0, −1]

( % i8) M:matrix(u,v1,v2); (M)



 k 0 −1

i j 3 2 2 0

( % i9) determinant(M); ( % o9)

−4k + 3j − 2i

Vemos que es el mismo vector (−2, 3, −4), escrito de forma distinta. Tambi´en pod´ıamos haberlo obtenido a trav´ es del producto mixto. ( % i10) u.([3,2,0]∼[2,0,-1]); ( % o10)

−[i, j, k].[2, 0, −1]∼ [3, 2, 0]

( % i11) express( %o13); ( % o11)

−4k + 3j − 2i 5

Por u ´ltimo, veamos que el vector (−3, 14, 12) pertenece al plano que contiene a los vectores v1 y v2. ( % i12) N:matrix( %o6,v1,v2);  −3 3 2

(N)

 14 12 2 0  0 −1

( % i13) rank(N); ( % o13)

2

Ejercicio 1. En el ejemplo anterior, hemos visto que el vector obtenido a partir de v ∼ (v1 ∼ v2), pertenece al plano que contiene a v1 y v2. Por tanto, se puede escribir como combinaci´ on lineal de ellos. En este ejercicio vamos a calcular los coeficientes de esa combinaci´ on lineal en funci´ on de los coeficientes de v1 y v2. Empezamos iniciando una nueva sesi´ on de Maxima, y cargamos el paquete vect. ( % i1) load(vect)$ ( % i2) v1:[a,b,c]; v2:[m,n,p]; (v1)

[a, b, c ]

(v2)

[m, n, p]

( % i3) w:express(v1∼v2); (w)

[bp − cn, cm − ap, an − bm]

( % i4) v:[ %lambda, %mu, %nu]; (v)

[λ, µ, ν ]

( % i5) u:expand(express(v∼w)); (u)

[νap + µan − νcm − µbm, νbp − νcn − λan + λbm, −µbp − λap + µcn + λcm]

Hemos utilizado las sentencias expand y express para ahorrarnos pasos intermedios. ( % i6) M:matrix(u,v1,v2);  νap + µan − νcm − µbm  (M) a m

 νbp − νcn − λan + λbm −µbp − λap + µcn + λcm  b c n p

( % i7) rank(M); ( % o7)

2 6

Lo que nos confirma que solamente hay dos vectores linealmente independientes. Introducimos el vector x escrito como combinaci´on lineal de v1 y v2. ( % i8) x:s*v1+t*v2; (x)

[mt + as, nt + bs, pt + cs]

Ahora igualamos las coordenadas de los vectores u y x y obtenemos el siguiente sistema. ( % i9) eq1: u[1]-x[1]=0; eq2: u[2]-x[2]=0; eq3: u[3]-x[3]=0; (eq1)

−mt − as + νap + µan − νcm − µbm = 0

(eq2)

−nt − bs + νbp − νcn − λan + λbm = 0

(eq3)

−pt − cs − µbp − λap + µcn + λcm = 0

Por u ´ltimo, resolvemos el sistema para las variables s y t. ( % i10) linsolve([eq1,eq2,eq3],[s,t]); solve: dependent equations eliminated: (2)

( % o10)

1.2.

[s = νp + µn + λm, t = −νc − µb − λa]

Operaciones y manipulaciones con matrices

Se pueden hacer con matrices y escalares las operaciones siguientes, siempre que sean posibles. Para poder efectuar columnvector hay que cargar el paquete “eigen”. A+B λ∗A A.B Aˆˆn columnvector([v1 , . . . , vn ]) addcol(A, lista1 , . . . , listan ) addrow(A, lista1 , . . . , listan ) adj oint(A) minor(A, i, j) determinant(A) transpose(A) invert(A) rank(A) triangularize(A)

suma de matrices producto de un escalar por una matriz producto de matrices n-esima potencia de una matriz Devuelve un vector columna con los datos introducidos en la lista A˜ nade las columnas dadas por las listas a la matriz A A˜ nade las filas dadas por las listas a la matriz A Devuelve la matriz de adjuntos de la matriz A Devuelve el menor (i, j ) de la matriz A Calcula el determinante de A Traspuesta de A Matriz inversa de A. Otra forma es Aˆˆ(−1) Calcula el rango de la matriz A Proporciona una matriz triangular superior

Ejemplo 3:

7

( %i1)

A: matrix( [2,-1,0,3], [1,0,-4,3], [2,0,1,5], [-3,-2,0,4]);

( %o1)

2 −1 0 1 0 −4  2 0 1 −3 −2 0 

 3 3  5 4

( % i2) adjoint(A); 

46 −2 −8 −105 17 68   −2 −31 19 −18 7 28

( % o2)

 −23 −19  1  9

( % i3) minor(A,2,3);  −1 3 0 5 −2 4



2 2 −3

( % o3)

( % i4) determinant(A); ( % o4)

143

( % i5) transpose(A);  2 −3 0 −2  1 0  5 4



2 1 −1 0   0 −4 3 3

( % o5)

( % i6) Aˆˆ(-1);  ( % o6)

46 143

  105 −  143   2 −  143  18 − 143

2 − 143

8 − 143

17 143

68 143

31 − 143

19 143

7 143

28 143

2 − 143

8 − 143

17 143

68 143

31 − 143

19 143

7 143

28 143

23 − 143



  19  − 143    1  143   9 143

( % i7) invert(A);  ( % o7)

46 143

  105 −  143   2 −  143  18 − 143

( % i8) rank(A); ( % o8)

4 8

23 − 143

  

19  − 143  1 143

9 143

    

( % i9) addrow(A,[0,1,2,3]);  2 −1 0 1 0 −4  2 0 1  −3 −2 0 0 1 2

( % o9)

 3 3  5  4 3

( % i10) addcol(A,[1,-1,1,-1]); 

2 1  2 −3

( % o10)

−1 0 0 −2

 0 3 1 −4 3 −1  1 5 1 0 4 −1

( % i11) u:columnvector([1,0,2,-1,3]); 

 1  0    2   −1 3

( %o11)

( % i12) %o10.u;  2  −13    2  −10 

( % o12)

( % i13) triangularize(A) 

2 0  0 0

( % o13)

−1 0 −7 0 0 −7 0 0

 3 17   −31  −143

Ejercicio 2. Queremos calcular el determinante de las matrices de orden n de la forma: 

x 1  1  · · · 1

1 x 1 ··· 1

1 1 x ··· 1

··· ··· ··· ··· ···

 1 1  1  · · · x

Usaremos la instrucci´ on genmatrix. ( % i1) m(k):=genmatrix(lambda([i,j], if i=j then x else 1), k, k); ( % o1)

m(k) := genmatrix (lambda ([i, j ], if i = j then x else 1) , k, k )

( % i2) m(4);

( % o2)

 x 1 1 1 1 x 1 1    1 1 x 1  1 1 1 x 

9

( % i3) determinant(m(4));     −x2 + x x x2 − 1 − 2x + 2 − (x − 1) x + (1 − x) x + 4x − 3

( % o3)

Seg´ un vaya creciendo k los polinomios que expresan el determinante de m(k) ser´ an muy largos. Hacemos ( % i4) factor( %o3); 3

( % o4)

(x − 1) (x + 3)

( % i5) makelist(factor(determinant(m(k))),k,1,6); 2

( % o5)

3

4

5

[x, (x − 1) (x + 1) , (x − 1) (x + 2) , (x − 1) (x + 3) , (x − 1) (x + 4) , (x − 1) (x + 5)]

Podemos conjeturar que la forma general del determinante de m(k) es (x − 1)k−1 (x + k − 1). Lo comprobamos para un valor par y otro impar. ( % i6) factor(determinant(m(12))); ( % o6)

11

(x + 11)

12

(x + 12)

(x − 1)

( % i7) factor(determinant(m(13))); ( % o7)

1.3.

(x − 1)

Transformaciones elementales de filas y columnas

Las siguientes transformaciones realizadas en una matriz se llaman transformaciones elementales: 1. Permutar dos filas entre s´ı o dos columnas. 2. Multiplicar una fila o columna por un escalar no nulo. 3. Sumar a una fila o columna un m´ ultiplo escalar (no nulo) de otra fila o columna. Para ello se dispone en Maxima de las siguientes instrucciones: rowswap(A,i,j) columnswap(A,i,j) rowop(A,i,j, %lambda) columnop(A,i,j, %lambda)

intercambia las filas i y j de una matriz A intercambia las columnas i y j de una matriz A a la fila i le resta la fila j multiplicada por λ a la columna i le resta la fila j multiplicada por λ

Obs´ervese que si se quiere sumar a la fila (columna) i, la fila (columna) j multiplicada por λ, hay que escribir en la instrucci´ on correspondiente - %lambda. No existe ninguna instrucci´on que multiplique una fila o una columna por un escalar, pero se puede hacer los siguiente: supongamos que queremos multiplicar la segunda fila de una matriz por 4. Utilizamos la instrucci´ on rowop(A, 2, 2, −3). Es decir, le hemos sumado a la fila 2 ella misma multiplicada por 3. Ejemplo 4: ( % i1) A:matrix([2,0,-1,4],[1,-1,0,3],[-2,0,1,0],[3,2,1,2]);  2 0 −1  1 −1 0  ( %o1) −2 0 1 3 2 1 10

 4 3  0 2

( % i2) rowswap(A,1,3);

( % o2)



−2 0  1 −1  2 0 3 2

1 0 −1 1

 0 3  4 2



0 −1 1 1

 3 4  0 2

( % i3) rowswap(A,1,2);

( % o3)

1 −1 2 0  −2 0 3 2

( % i4) rowop( %o3,2,1,2);

( % o4)



1  0  −2 3

−1 2 0 2

0 −1 1 1

 3 − 2  0  2

Ha restado a la segunda fila la primera multiplicada por 2. Continuamos haciendo ceros en la primera columna. ( % i5) rowop( %o4,3,1,-2);

( % o5)



1 0  0 3

−1 0 2 −1 −2 1 2 1

 3 −2  6 2



1 0  0 0

−1 0 2 −1 −2 1 5 1

 3 −2  6 −7



1 0  0 0

−1 0 2 −1 0 0 5 1

 3 −2  4 −7



1 0  0 0

−1 0 2 −1 0 0 1 3

 3 −2  4 −3



−1 0 1 3 0 0 2 −1

 3 −3  4 −2

( % i6) rowop( %o5,4,1,3);

( % o6)

( % i7) rowop( %o6,3,2,-1);

( % o7)

( % i8) rowop( %o7,4,2,2);

( % o8)

( % i9) rowswap( %o8,2,4);

( % o9)

1 0  0 0

11

( % i10) rowop( %o9,4,2,2);

( % o10)



1 0  0 0

−1 0 1 3 0 0 0 −7

 3 −3  4 4



−1 0 1 3 0 −7 0 0

 3 −3  4 4

( % i11) rowswap( %o10,3,4); 1 0  0 0

( % o11)

1.4.

Diagonalizaci´ on de matrices

Las instrucciones para la diagonalizaci´on de matrices son las siguientes: charpoly(A, x) eigenvalues(A) eigenvectors(A)

uniteigenvectors(A)

Calcula el polinomio caracter´ıstico respecto de la variable x Devuelve una lista con 2 sublistas. La primera la forman los valores propios de la matriz A y la segunda sus multiplicidades Devuelve una lista con 2 sublistas. La primera la forman los valores propios con sus multiplicidades, la segunda est´ a formada por los vectores propios asociados Calcula los vectores propios unitarios de la matriz A

Ejemplo 5: ( % i1) A:matrix([5,0,-39,-17],[4/9,1,-10/3,-14/9],[-2/3,0,6,7/3],[2,0,-24,-9]);   5 0 −39 −17     4 10 14  1 − 3 − 9  9   (A)   2 7  − 0 6 3   3   2 0 −24 −9 ( % i2) charpoly(A,x);   2 (−x − 9) 14 ( % o2) ((−x − 9) (6 − x) + 56) (1 − x) (5 − x) − 17 (16 − 2 (6 − x)) (1 − x) + 39 − − (1 − x) 3 3 ( % i3) solve( %o36); ( % o3)

[x = 3, x = −2, x = 1]

( % i4) eigenvalues(A); ( % o4)

[[3, −2, 1], [1, 1, 2]]

Lo que nos indica que el autovalor 1 es doble. Vamos a estudiar si la matriz es diagonalizable. 12

( % i5) eigenvectors(A); ( % o5)

1 1 1 2 2 1 1 [[[3, −2, 1], [1, 1, 2]], [[[1, , − , ]], [[1, , − , ]], [[1, 0, − , 1], [0, 1, 0, 0]]]] 9 3 27 9 6 2 3

Vemos que la dimensi´on del subespacio asociado al autovalor 1 tiene dimensi´on 2, ya que la instrucci´on nos ha proporcionado una base formada por dos vectores. Luego la matriz es diagonalizable. Una matriz diagonalizadora es la que tiene por columnas los vectores de las bases de los subespacios asociados a los autovalores. ( % i6) C:matrix([1,1,1,0],[1/9,2/27,0,1],[-1/6,-1/9,-1/3,0],[1/2,2/3,1,0]);   1 1 1 0     1 2   0 1 27   9   (C)   1 1 1  − 0 − − 3   6 9   2 1 1 0 3 2 ( % i7) Cˆˆ(-1).A.C;  3 0  0 0

( % o7)

2.

0 −2 0 0

0 0 1 0

 0 0  0 1

Resoluci´ on de sistemas de ecuaciones lineales

Si tenemos que resolver un sistema de ecuaciones lineales de la forma AX = b donde A es una matriz de m filas por n columnas, X es una vector columna inc´ ognita de m componentes y b es un vector de n componentes, disponemos de la sentencia linsolve([eqn1 , . . . eqnm ], [x1 , . . . , xn ]), donde eqn1 , ..., eqnm son las m ecuaciones lineales que definen el sistema y x1 , . . . , xn son las inc´ ognitas del mismo. Para introducir las ecuaciones utilizamos el signo de igualdad =, como es usual. Ejemplo 6: ( % i1) eq1:3*x-y+2*z=1; (eq1)

2z − y + 3x = 1

( % i2) eq2: x+4*y+z =b; (eq2)

z + 4y + x = b

( % i3) eq3:2*x-5*y+a*z=-2; (eq3)

az − 5y + 2x = −2

( % i4) linsolve([eq1,eq2,eq3],[x,y,z]); ( % o4)

[x =

b−3 (3a − 4) b − a + 4 (a − 10) b + 4a + 23 ,z = ,y = ] 13a − 13 13a − 13 a−1 13

Aqu´ı hay que tener cuidado con las soluciones que proporciona el programa. Vemos que si a = 1 la soluci´on no es correcta. Se puede comprobar que en ese caso, el sistema es incompatible para todo...


Similar Free PDFs