COMANDOS BÁSICOS DE ÁLGEBRA LINEAL EN MAPLE

Anuncio
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
Descargar