Universidad Politécnica de Madrid Ingeniería de Minas COMANDOS COMANDOS BÁSICOS BÁSICOS DE DE ÁLGEBRA ÁLGEBRA LINEAL LINEAL EN EN MAPLE MAPLE Prof. Carlos Conde Lázaro Prof. Arturo Hidalgo López Prof. Alfredo López Benito Marzo, 2007 Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Manipulación Manipulación de de expresiones expresiones algebraicas algebraicas Se usan los comandos: [> simplify( expresión) Æ simplifica [>simplify(x*(x-5)**3+x**2-x*(x+4)*(x-3)/(x*(x-2))); x 5 − 17x 4 + 106x 3 − 278x 2 + 249x + 12 x−2 [> expand( expresión) Æ expande [>expand(x*(x-5)**3+x**2-x*(x+4)*(x-3)/(x*(x-2))); x2 x 12 x − 15x + 76x − 125x − − + x−2 x−2 x−2 4 3 2 Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Manipulación Manipulación de de expresiones expresiones algebraicas algebraicas [> factor( expresión) Æ factoriza [> factor(x^3-6*x^2+12*x-8); (x-2)3 Departamento de Matemática Aplicada y Métodos Informáticos Ingeniería de Minas Universidad Politécnica de Madrid Manipulación Manipulación de de expresiones expresiones algebraicas algebraicas [> solve( {ecuaciones},{incógnitas}) Æ resuelve ecs. [> eq:=x^3-6*x^2+12*x-8=4: [> solve(eq); ⎛2⎞ ⎜ ⎟ ⎝3⎠ 2 ⎛2⎞ ⎛2⎞ ⎛ 2⎞ ⎛2⎞ ⎜ ⎟ ⎜ ⎟ 1 ⎜⎝ 3 ⎟⎠ 1 1 ⎜⎝ 3 ⎟⎠ 1 ⎝3⎠ + 2, - 2 + I 3 2 , - 2 − I 3 2⎝ 3 ⎠ 2 2 2 2 [> eq1:=x+y=0;eq2:=x+3*y=17; [> solve({eq1,eq2},{x,y}); −17 17 ⎫ ⎧ , y= ⎬ ⎨x = 2 2⎭ ⎩ Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Manipulación Manipulación de de expresiones expresiones algebraicas algebraicas [> fsolve( {ecuaciones},{incógnitas}) Æresuelve ecs. proporcionando soluciones reales [> eq:=x^3-6*x^2+12*x-8=4: [> fsolve(eq); 3.58740105 Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas CONJUNTOS CONJUNTOS EN EN MAPLE MAPLE CONJUNTO: Grupo de elementos NO ORDENADOS En MAPLE se definen escribiéndolos entre llaves ( {...} ) y separando sus elementos por comas (,). Los elementos repetidos sólo se consideran una vez. Pueden asignarse a un nombre. Ejemplo: [> C:={'manolo',x=2.4*x**2-y,A, B, aa, B, 2, 4, 7.14, Pi, 2}: [> C; {2, 4, A, B, aa, π, x=2.4x2-y, 7.14, manolo} Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas LISTAS LISTAS EN EN MAPLE MAPLE LISTA: Grupo de elementos ORDENADOS En MAPLE se definen escribiéndolos entre corchetes ([...]) y separando sus elementos por comas (,). Los elementos repetidos se consideran tantas veces como aparezcan. Ejemplo: Pueden asignarse a un nombre. [> L:=['manolo',x=2.4*x**2-y,A, B, aa, B, 2, 4, 7.14, Pi, 2]: [> L; {manolo, x=2.4x2-y, A, B, aa, B, 2, 4, 7.14, π, 2} Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas LISTAS LISTAS EN EN MAPLE MAPLE Un elemento de una lista (o de un conjunto) puede referenciarse con el nombre de la lista (o del conjunto) seguido del índice que en ella ocupa entre corchetes. EJEMPLO: Con el conjunto y la lista de las diapositivas anteriores se tiene que: [> C[1];C[2]; 2 4 [> C[1]+L[9]; [> L[9]; 7.14 Departamento de Matemática Aplicada y Métodos Informáticos 9.14 Universidad Politécnica de Madrid Ingeniería de Minas VECTORES VECTORES EN EN MAPLE MAPLE Definición de vectores en Maple: Dimensionado de un vector de n componentes o [> nombre_vector:=array(1..n); [> nombre_vector:=array(1..n, [c1, …,cn]); Definición de un vector con sus componentes Ejemplo: Para definir el vector v = (1.5, 2, - 3) [> v:=array(1..3,[1.5, 2, -3]); v[1] v[2] v[3] Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas VECTORES VECTORES EN EN MAPLE MAPLE La instrucción array exige definir el límite inferior de la dimensión, por lo que su uso es obligado cuando éste es diferente a 1. [> nombre_vector:=array(ind_nor..ind_mayor); Departamento de Matemática Aplicada y Métodos Informáticos Ingeniería de Minas Universidad Politécnica de Madrid VECTORES VECTORES EN EN MAPLE MAPLE Otra forma de definir vectores en Maple: Dimensionado de un vector de n componentes [> nombre_vector:=vector(n); o [> nombre_vector:=vector(n, [c1, …, cn]); Definición de un vector con sus componentes Ejemplo: Para definir el vector w = (-1, 2.5, - 3.3) [> w:=vector(3,[-1, 2.5, -3.3]); w[1] w[2] w[3] Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas VECTORES VECTORES EN EN MAPLE MAPLE La instrucción vector toma límite inferior de los subíndices el valor 1, por lo que su uso es equivalente a: [> array(1..n); Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas VECTORES VECTORES EN EN MAPLE MAPLE EJEMPLO: 1º) Define en Maple el vector: a = (2. 3,e(2.x+1) ,sen(2.x),ln(18)) 2º) Escribe las componentes a1, a2, a3. Solución: 1º)[> a:=array(1..4, [2*sqrt(3),exp(2*x+1),sin(2*x),ln(18)]); [> a:=vector(4, [2*sqrt(3),exp(2*x+1),sin(2*x),ln(18)]); (2 x + 1) a := [ 2 3 , e , sin( 2 x ), ln( 18 ) ] 2º) [> a[1]; a[2]; a[3]; Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas OPERACIONES OPERACIONES CON CON VECTORES VECTORES EN EN MAPLE MAPLE Suma de vectores. Operador: + Resta de vectores . Operador: Producto escalar: Producto vectorial: dotprod ( ) o innerprod( ) crossprod ( ) Las dos últimas operaciones requieren haber cargado la librería linalg mediante la instrucción: [> with(linalg): Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas OPERACIONES OPERACIONES CON CON VECTORES VECTORES EN EN MAPLE MAPLE Ejercicio: Sean los vectores: v = (1.5, 2, - 3) y w = (-1, 2.5, - 3.3) Se pide: 1. Definir los vectores v y w. 2. Calcular el producto escalar: (v, w) 3. Calcular el producto vectorial: (v-w) x (v+w) Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas OPERACIONES OPERACIONES CON CON VECTORES VECTORES EN EN MAPLE MAPLE 1. Definición de los vectores: [> v:=array(1..3,[1.5,2, -3]); [> w:=vector(3,[-1, 2.5, -3.3]); 2. Cálculo del producto escalar [> pesc:=dotprod(v,w); Solución pesc := 13.4 Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas OPERACIONES OPERACIONES CON CON VECTORES VECTORES EN EN MAPLE MAPLE 3. Cálculo del producto vectorial [> pvect:=crossprod(v-w,v+w); Solución pvect := [1.80, 15.90, 11.50] Departamento de Matemática Aplicada y Métodos Informáticos Ingeniería de Minas Universidad Politécnica de Madrid MATRICES MATRICES EN EN MAPLE MAPLE Dimensionado de una matriz de m filas y n columnas [> A:=array(1..m,1..n); o [> A:=array(1..m,1..n,[[A11…A1n],[A21…,A2n],…,[Am1,…,Amn]); Definición de una matriz especificando sus elementos Ejemplo: ⎛2 -7 4 ⎞ ⎟⎟ A = ⎜⎜ ⎜⎝5 8 -11⎠⎟ [> A:=array(1..2,1..3,[[2,-7,4],[5,8,-11]]); A[1,2] Departamento de Matemática Aplicada y Métodos Informáticos A[2,3] Universidad Politécnica de Madrid Ingeniería de Minas MATRICES MATRICES EN EN MAPLE MAPLE Otra forma de “dimensionar” una matriz: [> nombre_matriz:=matrix(m, n); La instrucción array exige definir el índice inferior de las filas y columnas de la matriz, por lo que su uso es obligado cuando éste es diferente a 1. [ > A:=array(ind_fila_inf..ind_fila_sup, ind_col_inf..ind_col_sup); Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas MATRICES MATRICES EN EN MAPLE MAPLE Ejemplo (Matriz Cuadrada): ⎛ 1 -2 0.5⎞ ⎟⎟ ⎜⎜ A = ⎜⎜ 0 2 4 ⎟⎟⎟ ⎜⎜ ⎟ ⎜⎝-1 11 9 ⎠⎟ [>A:=array(1..3,1..3, [[1,-2,0.5],[0,2,4],[-1,11,9]]); O también [> A:=matrix(3,3,[[1,-2,0.5],[0,2,4],[-1,11,9]]); O también [> A:=matrix(3, 3,[1,-2,0.5,0,2,4,-1,11,9]); Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas MATRICES MATRICES EN EN MAPLE MAPLE Ejercicio: 1º) Define en Maple la matriz: ⎛ ex 2 -0.5⎞⎟ ⎜⎜ ⎟⎟ ⎜⎜ 1 ⎟⎟ A =⎜ 3 0 2 ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ 9 ⎠⎟ ⎝ 3 -7.5 2º) Escribe las componentes A11, A23, A32: Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas MATRICES MATRICES EN EN MAPLE MAPLE Solución: 1º) Cualquiera de las siguientes formas es válida: [>A:=array(1..3,1..3, [[exp(x),2,-0.5],[3,0,1/2],[sqrt(3),-7.5,9]]); [>A:=matrix(3,3, [exp(x),2,-0.5],[3,0,1/2],[sqrt(3),-7.5,9]]); [>A:=matrix(3,3, [exp(x),2,-0.5,3,0,1/2,sqrt(3),-7.5,9]); 2º) [> A[1,1]; A[2,3]; A[3,2]; Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas OPERACIONES OPERACIONES CON CON MATRICES MATRICES EN EN MAPLE MAPLE Suma de matrices. El operador es: + Resta de matrices. El operador es: Producto de matrices. El operador es: &* Producto de escalar por matriz. El operador es: * ¡ IMPORTANTE: EMPLEAR SIEMPRE evalm AL EVALUAR EXPRESIONES MATRICIALES. Departamento de Matemática Aplicada y Métodos Informáticos ! Universidad Politécnica de Madrid Ingeniería de Minas OPERACIONES OPERACIONES CON CON MATRICES MATRICES EN EN MAPLE MAPLE Ejemplo. Sumar las matrices: ⎛2 -7 4 ⎞ ⎟⎟; M = ⎜⎜ ⎜⎝5 8 -11⎠⎟ ⎛ 1 2 3⎞ ⎟⎟ N = ⎜⎜ ⎝⎜4 5 6⎠⎟ Almacenando el resultado en una matriz llamada SMAT Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas OPERACIONES OPERACIONES CON CON MATRICES MATRICES EN EN MAPLE MAPLE Solución: Introducción de las matrices [> SMAT := array(1..2,1..3): (Recomendable) [> M := array(1..2,1..3,[[2,-7,4],[5,8,-11]]); [> N := array(1..2,1..3,[[1,2,3],[4,5,6]]); Realización de la suma: [> SMAT := evalm(M+N); Resultado ⎛3 -5 7 ⎞ ⎟⎟ SMAT := ⎜⎜ ⎜⎝9 13 -5⎠⎟ Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas OPERACIONES OPERACIONES CON CON MATRICES MATRICES EN EN MAPLE MAPLE Ejemplo. Producto de un escalar por una matriz Se considera la matriz: ⎛ 0 1/2 ⎜⎜ ⎜⎜ -1 0 ⎜⎜ M = ⎜⎜3.2 0 ⎜⎜ ⎜⎜ 4.1 -0.6 ⎜⎜ ⎝8.4 44 2 ⎞⎟ ⎟⎟ 6 ⎟⎟ ⎟⎟ 5 ⎟⎟ ⎟⎟ 2 ⎟⎟ ⎟⎟ 1 ⎠⎟ Obtener la matriz 7.M y almacenar el resultado en la matriz ML Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas OPERACIONES OPERACIONES CON CON MATRICES MATRICES EN EN MAPLE MAPLE Solución: Introducción de las matrices [> ML := matrix(5, 3): [> M := matrix(5, 3,[0, 1/2, sqrt(2), -1, 0, 6,3.2, 0, 5, 4.1, -0.6, 2, 8.4, 44, 1]); Resultado Realización del producto: [> ML := evalm(7 * M); ⎡ ⎢ 0 ⎢ ⎢ ⎢ ⎢ -7 ⎢ ML := ⎢ ⎢22.4 ⎢ ⎢ ⎢28.7 ⎢ ⎢⎢ ⎣58.8 7 2 0 0 -4.2 308 Departamento de Matemática Aplicada y Métodos Informáticos ⎤ 7 2⎥ ⎥ ⎥ ⎥ 42 ⎥⎥ ⎥ 35 ⎥⎥ ⎥ 14 ⎥⎥ ⎥⎥ 7 ⎦ Universidad Politécnica de Madrid Ingeniería de Minas OTRAS OTRAS OPERACIONES OPERACIONES CON CON MATRICES MATRICES EN EN MAPLE MAPLE Inversa de una matriz: inverse ( ) Determinante de una matriz: det ( ) Traspuesta de una matriz: transpose ( ) Traza de una matriz: trace ( ) Rango de una matriz: rank ( ) Valores propios de una matriz: eigenvals ( ) Vectores propios de una matriz: eigenvects ( ) Las operaciones anteriores requieren haber cargado la librería linalg . Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas LA LA LIBRERÍA LIBRERÍA linalg linalg La librería linalg permite realizar muchas más operaciones: [> with(linalg); [ BlockDiagonal, GramSchmidt , JordanBlock, LUdecomp , QRdecomp, Wronskian, addcol, addrow, adj , adjoint , angle, augment , backsub , band, basis, bezout, blockmatrix , charmat , charpoly, cholesky, col, coldim, colspace, colspan, companion, concat, cond, copyinto, crossprod, curl, definite, delcols, delrows, det, diag, diverge, dotprod, eigenvals, eigenvalues, eigenvectors, eigenvects, entermatrix , equal, exponential, extend , ffgausselim, fibonacci, forwardsub, frobenius, gausselim, gaussjord, geneqns, genmatrix , grad, hadamard, hermite, hessian, hilbert, htranspose, ihermite, indexfunc , innerprod, intbasis, inverse, ismith, issimilar, iszero, jacobian, jordan, kernel, laplacian, leastsqrs, linsolve, matadd , matrix , minor, minpoly, mulcol, mulrow, multiply, norm, normalize, nullspace, orthog, permanent , pivot , potential, randmatrix , randvector , rank , ratform , row, rowdim, rowspace, rowspan, rref, scalarmul, singularvals, smith, stackmatrix , submatrix , subvector , sumbasis, swapcol, swaprow, sylvester, toeplitz, trace, transpose, vandermonde , vecpotent , vectdim , vector , wronskian ] Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Ejercicios Ejercicios Ejemplo: Dada la matriz Calcular: 1. 2. 3. 4. 5. 6. 7. ⎛ 1 -3 3⎞ ⎟⎟ ⎜⎜ A = ⎜⎜3 -5 3⎟⎟⎟ ⎜⎜ ⎟ ⎜⎝6 -6 4⎠⎟ Inversa de A Determinante de A Traspuesta de A Traza de A Rango de A Valores propios de A Vectores propios de A Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Ejercicios Ejercicios Comenzamos.... [> restart:with(linalg): Definimos la matriz.... [> A := matrix(3,3,[1,-3,3,3.,-5,3,6,-6,4]); Si queremos que Maple la escriba: [> evalm(A); o bien: [> print(A); ⎡1 ⎢ ⎢ ⎢ 3. ⎢ ⎢ ⎣6 Departamento de Matemática Aplicada y Métodos Informáticos -3 -5 -6 3⎤ ⎥ ⎥ 3⎥ ⎥ ⎥ 4⎦ Universidad Politécnica de Madrid Ingeniería de Minas Ejercicios Ejercicios 1. Inversa de la matriz A: [> A1 := array(1..4,1..4): [> A1 := inverse(A); Resultado: ⎡-0.1250000000 ⎢ ⎢ ⎢ 0.3750000000 ⎢ ⎢ ⎣ 0.7500000000 -0.3750000000 -0.8750000000 -0.7500000000 0.3750000000⎤ ⎥ ⎥ 0.3750000000⎥ ⎥ ⎥ 0.2500000000⎦ Departamento de Matemática Aplicada y Métodos Informáticos Ingeniería de Minas Universidad Politécnica de Madrid Ejercicios Ejercicios 2. Determinante de la matriz A: [> DD := det(A); Resultado: DD := 16. 3. Traspuesta de la matriz A: [> T := transpose(A); Solución: ⎡ 1 ⎢ ⎢ AT := ⎢ -3 ⎢ ⎢ ⎣ 3 3. -5 3 Departamento de Matemática Aplicada y Métodos Informáticos 6⎤ ⎥ ⎥ -6 ⎥ ⎥ ⎥ 4⎦ Universidad Politécnica de Madrid Ingeniería de Minas Ejercicios Ejercicios 4. Traza de la matriz A: [> tr := trace(A); Resultado: tr := 0 5. Rango de la matriz A: [> R := rank(A); Resultado: R := 3 Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Ejercicios Ejercicios 6. Autovalores de la matriz A: [> lambda := eigenvals(A); Resultado: λ := 4., -2. , -2. 7. Autovectores de la matriz A: [> vp := eigenvects(A); Que se interpreta: vp[1] (multiplicidad algebraica doble) [ -2.00000 , 2, { [ 0.500002, 1.50000, 1.00001 ], [ -0.559017 , 0.559017, 1.11804 ] } ] vp[2] [ 4.00000, 1, { [ 0.447213, 0.447214, 0.894428 ] } ] Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Ejercicios Ejercicios Sean los vectores: v (1.5, 2, - 3) y w (-1, 2.5, - 3.3) y la matriz: ⎛ 1 2 3⎞ ⎟⎟ ⎜⎜ A = ⎜⎜4 5 6⎟⎟⎟ ⎜⎜ ⎟⎟ ⎜⎝7 8 9⎠ Se pide: 1. Calcular el producto escalar: (v, w) 2. Calcular el producto vectorial: v x w 3. Calcular: v · A Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Ejercicios Ejercicios Definición de los vectores y la matriz: [> v:=array(1..3,[1.5,2, -3]); [> w:=vector(3,[-1, 2.5, -3.3]); [> A:=matrix(3,3,[[1, 2, 3],[4, 5, 6],[7, 8, 9]]); 1. Cálculo del producto escalar [> pesc:=dotprod(v,w); Solución pesc := 13.4 Departamento de Matemática Aplicada y Métodos Informáticos Ingeniería de Minas Universidad Politécnica de Madrid Ejercicios Ejercicios 2. Cálculo del producto vectorial [> pvect:=crossprod(v,w); Solución pvect := [0.9, 9.95, 5.75] 3. Cálculo de v ·A [> matv:=evalm(v&*A); Solución matv := [-11.5, -11, -10.5] (que, obviamente, es un vector) Departamento de Matemática Aplicada y Métodos Informáticos Universidad Politécnica de Madrid Ingeniería de Minas Departamento de Matemática Aplicada y Métodos Informáticos