Sunteți pe pagina 1din 7

MATRICES EN MAPLE

Maple permite trabajar con matrices y sus operaciones tanto a nivel numérico como simbólico. Se
utilizan los algoritmos de librerías especiales, como NAG, LaPACK, ATLAS y MKL, para
proporcionar cálculos numéricos precisos en relación con las operaciones matriciales. Usando la paleta
de comandos especiales para generar matrices, podemos definir fácilmente cualquier matriz de tipo,
por ejemplo, 1000x1000 con coeficientes numéricos en forma de números decimales. El comando
esencial para las definiciones matriciales es el siguiente:
> Matrix(r, c, init, ro, sc, sh, st, o, dt, f, a)
Todos los parámetros del comando son opcionales. Sin embargo, el sistema necesita la información
suficiente para crear la estructura matricial. Si no hay especificaciones incluidas, la respuesta del
sistema es una matriz de tipo 0x0.
El comando
> Matrix(r)
genera una matriz cuadrada de orden r con coeficientes cero.
> Matrix(2);

El comando
> Matrix(r,c)
Genera una matriz de tipo rxc con coeficientes cero.
> Matrix(2,3);

En lo que sigue se realizan diferentes ejemplos sobre maneras de definir matrices.


> Matrix(1..3,1..2,5);

> Matrix([[1,2,3],[4,5,6]]);

> f:= (i,j) -> x^(i+j-1):


> Matrix(2,f);
Los coeficientes de la matriz del último ejemplo están definidos como potencias de la variable x,
mientras que sus exponentes se han determinado por la posición fila-columna que ocupan en la matriz.
Las matrices pueden también definirse por medio de operadores. Además se puede asignar el nombre
de una variable a la matriz y posteriormente referirnos a la matriz con el nombre de la variable.
> A:=Matrix(3,4,[[1,2,3],[4,5,6]],readonly=true);

> with(LinearAlgebra):
V := <<1,2,3>|<4,5,6>|<7,8,9>|<10,11,12>>;

> MA := Matrix([[9,9,9,9],[9,9,9,9],[9,9,9,9],[9,9,9,9]]);

Operaciones con matrices


Producto de un escalar por una matriz.
Utilizando la matriz A definida antes, vamos a calcular su producto por 2 y por 3/2. La operación se
realiza fácilmente utilizando como símbolo del producto el símbolo *
> B:=2*A;

> C:=(3/2)*A;

La operación puede realizarse simbólicamente con una variable formal, por ejemplo λ/c., pero usando
un comando diferente:
> with(LinearAlgebra):
F:=ScalarMultiply(A,lambda/c);
Suma, producto y diferencia de matrices
Vamos a definir matrices con coeficientes variables y vamos a calcular su suma, producto y diferencia.

> M1:=Matrix([[cos(k*Pi*v),sin(k*Pi*v),0,0],[-sin(k*Pi*v),cos(k*Pi*v),0,0],
[0,0,1,0],[0,0,0,1]]);
> M2:=Matrix([[1,0,0,0],[0,cos(l*Pi*v),sin(l*Pi*v),0],[0,-sin(l*Pi*v),cos(l*Pi*v),0],
[0,0,0,1]]);

> M:=M1+M2;

> N:=M1.M2;

> K:=M1-M2;

Las operaciones con matrices, vectores y escalares pueden hacerse también por medio del paquete
LinearAlgebra.
> with(LinearAlgebra):
Ax := <1.00004,1.99987,-0.00012>:
b := <1.,2.,0.>:
Add(Ax,b,1,-1);

El siguiente comando que realiza productos matriciales es Multiply

> s := <3|-2|7>;

> b := <x,y,z>;

> d:= Multiply(s,b);

Cálculo de la matriz inversa


Formalmente la matriz inversa de una matriz se denota como la matriz elevada a la potencia -1. Para
comprobar que el cálculo de la matriz inversa es correcto, realizamos el producto de la matriz y su
matriz inversa obteniendo la matriz identidad E:

> K:=Matrix([[1,1,0,0],[0,0,1,1],[1,1,1,0],[0,1,0,1]]);

> L:=K^(-1);

> E:=K.L;
El cálculo de la matriz inversa puede realizarse también con el comando Inverse en módulo n, o por
medio del comando MatrixInverse del paquete Linear Algebra:

> X := Matrix([[1,2,3],[1,3,0],[1,4,3]]);

> Y := Inverse(X) mod 5;

> Z := X.Y;

> with(LinearAlgebra):
MatrixInverse(<<a,b>|<c,d>>);

En algunos cálculos, el resultado debe simplificarse:

> with(LinearAlgebra):
R := Matrix([[cos(alpha),-sin(alpha)],[sin(alpha),cos(alpha)]]);
> MatrixMatrixMultiply(R, Transpose(R));

> Map(simplify,%);

Matriz traspuesta
La función Transpose devuelve la matriz traspuesta de la matriz de entrada. Para ilustrar el cálculo de
la matriz traspuesta usaremos la matriz V definida anteriormente:

> Transpose(V);

Los mismos pasos pueden dares usando el paquete LinearAlgebra. Después de la definición de la
matriz M, con coeficientes generados aleatoriamente, la matriz traspuesta se calcula usando las
funciones Create, Transpose

> with(LinearAlgebra:-Modular):
M := Create(30,3,3,random,integer);

> Transpose(30,M,inplace): M;

El determinante de una matriz cuadrada

El determinante de una matriz cuadrada es un número que puede calcularse usando el sistema de
reducción de Gauss. Maple realiza todos esos cálculos con una simple función: la función Determinant.
En el ejemplo siguiente, definimos en primer lugar una matriz triangular inferior M de la que
calculamos su determinante. En el último ejemplo, se calcula el determinante de una matriz N y se
muestra que el determinante puede calcularse definiendo la matriz en el interior de la función:
> with(LinearAlgebra):
M := Matrix(3,[[a],[b,c],[d,e,f]],shape=triangular[lower]);

> Determinant(M);

> N:=Matrix([[3,2,1,0],[7,6,5,4],[1,0,9,8],[5,4,3,2]]);
> Determinant(N);

> Determinant(Matrix([[3,2,1,0],[7,6,5,4],[1,0,9,8],[5,4,3,2]]));

S-ar putea să vă placă și