You are on page 1of 7

MATRICES EN MAPLE

Maple permite trabajar con matrices y sus operaciones tanto a nivel numrico como simblico. Se utilizan los algoritmos de libreras especiales, como NAG, LaPACK, ATLAS y MKL, para proporcionar clculos numricos precisos en relacin con las operaciones matriciales. Usando la paleta de comandos especiales para generar matrices, podemos definir fcilmente cualquier matriz de tipo, por ejemplo, 1000x1000 con coeficientes numricos en forma de nmeros 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 parmetros del comando son opcionales. Sin embargo, el sistema necesita la informacin 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 estn definidos como potencias de la variable x, mientras que sus exponentes se han determinado por la posicin fila-columna que ocupan en la matriz. Las matrices pueden tambin definirse por medio de operadores. Adems 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 operacin se realiza fcilmente utilizando como smbolo del producto el smbolo * > B:=2*A;

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

La operacin puede realizarse simblicamente 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 tambin 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);

Clculo 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 clculo 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 clculo de la matriz inversa puede realizarse tambin con el comando Inverse en mdulo 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 clculos, 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 funcin Transpose devuelve la matriz traspuesta de la matriz de entrada. Para ilustrar el clculo de la matriz traspuesta usaremos la matriz V definida anteriormente: > Transpose(V);

Los mismos pasos pueden dares usando el paquete LinearAlgebra. Despus de la definicin 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 nmero que puede calcularse usando el sistema de reduccin de Gauss. Maple realiza todos esos clculos con una simple funcin: la funcin 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 funcin:

> 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]]));

You might also like