Matrices Maple

MATRICES EN MAPLE Maple permite trabajar con matrices y sus operaciones tanto a nivel numérico como simbólico. Se utiliz

Views 163 Downloads 40 File size 458KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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 := ;

> 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 := : b := : Add(Ax,b,1,-1);

El siguiente comando que realiza productos matriciales es Multiply > s := ;

> b := ;

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

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