El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de...

73
El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades de aplicación del programa Maple al Álgebra Lineal. Familiarizar al alumno con la sintaxis básica de Maple e introducir algunos comandos nuevos. Que el alumno repase algunos de los conceptos básicos del Álgebra Lineal ya estudiados en cursos anteriores. Que el alumno repase y afiance su comprensión del método de Gauss-Jordan para la resolución de un sistema de ecuaciones lineales y utilice Maple para resolver por este método varios sistemas de ecuaciones lineales. En la práctica 3 se tratarán los correspondientes métodos numéricos. > #Pulsa return Tiempos La duración de la práctica (incluida la evaluación) es de dos horas. La primera hora (aproximadamente) se dedicará al desarrollo-estudio de los contenidos de los apartados "Uso del Sistema Maple en Álgebra Lineal" y "Lección y comandos de Maple necesarios," donde se introducen y repasan los conceptos y se muestran los comandos de Maple precisos para el desarrollo de la práctica. La segunda hora a la realización del test de evaluación. > #Pulsa return Como se debe realizar la siguiente práctica El presente guión seguido con las indicaciones y observaciones del profesor contiene las instrucciones precisas para realizar con el ordenador ejercicios sobre los contenidos presentados en las clases teóricas. Lo deseable, para que queden afianzadas las ideas y las nociones básicas sobre la sintaxis de Maple, es que se realicen prueba y nuevos ejemplos sobre la base de los ejemplos planteados.

Transcript of El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de...

Page 1: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

El método de Gauss-Jordan y

preliminares de Álgebra Lineal

Práctica 1

Objetivos de la sesión

Presentar al alumno las posibilidades de aplicación del programa Maple al Álgebra Lineal.

Familiarizar al alumno con la sintaxis básica de Maple e introducir algunos comandos nuevos.

Que el alumno repase algunos de los conceptos básicos del Álgebra Lineal ya estudiados en cursos anteriores.

Que el alumno repase y afiance su comprensión del método de Gauss-Jordan para la resolución de un sistema de ecuaciones lineales y utilice Maple para resolver por este método varios sistemas de ecuaciones lineales. En la práctica 3 se tratarán los correspondientes métodos numéricos.

> #Pulsa return

Tiempos

La duración de la práctica (incluida la evaluación) es de dos horas. La primera hora (aproximadamente) se dedicará al desarrollo-estudio de los contenidos de los apartados "Uso del Sistema Maple en Álgebra Lineal" y "Lección y comandos de Maple necesarios," donde se introducen y repasan los conceptos y se muestran los comandos de Maple precisos para el desarrollo de la práctica. La segunda hora a la realización del test de evaluación.

> #Pulsa return

Como se debe realizar la siguiente práctica

El presente guión seguido con las indicaciones y observaciones del profesor contiene las instrucciones precisas para realizar con el ordenador ejercicios sobre los contenidos presentados en las clases teóricas.

Lo deseable, para que queden afianzadas las ideas y las nociones básicas sobre la sintaxis de Maple, es que se realicen prueba y nuevos ejemplos sobre la base de los ejemplos planteados.

Page 2: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> #Pulsa return

Uso del Sistema Maple en Álgebra Lineal

En esta primera parte de la práctica se recuerdan algunas características y comandos de Maple y se describen a través de ejemplos algunos comandos del paquete "linalg" útiles para el desarrollo de esta y otras prácticas. Así pues el alumno deberá ejecutar dichos ejemplos y tecleará otros que le permitan comprender la aplicación de dichos comandos.

> #Pulsa return

Maple es un Sistema de Computación Matemática (abreviadamente S.C.M.) que permite realizar cálculos numéricos, manipular expresiones simbólicas y crear nuevos procedimientos , entendiendo por éstos una secuencia de instrucciones, sentencias y funciones cuyo objetivo es resolver o realizar una determinada aplicación.

A este respecto es importante señalar que, además del núcleo de Maple que incorpora ciertas funciones y comandos de uso corriente, y que se carga automáticamente al arrancar el sistema, el sistema Maple tiene una biblioteca compuesta de librerías. En las librerías residen las funciones que realizan tareas matemáticas complejas.

Para trabajar con las funciones y/o los procedimientos de una de estas librerías, es preciso utilizar el comando with . Así por ejemplo, para trabajar con la librería linalg , escribiremos:

with(linalg);

Para ejecutar ese comando, colocaremos el cursor tras el ";" y pulsaremos la tecla "intro". Al ejecutar ese comando aparece una lista con las funciones y procedimientos accesibles en esa librería.

> with(linalg);

Warning, new definition for norm Warning, new definition for trace

Page 3: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Si se quiere trabajar con una librería de Maple sin que aparezca la lista con las funciones y procedimientos accesibles en ella,

basta con utilizar ":" en vez de ";" despues del comando with( nombre_librería ). Por ejemplo:

> with(linalg):

> #Pulsa return

Teniendo en cuenta que, al menos para la mayoría de vosotros, éste no es el primer curso en el que habeis tenido contacto con Sistemas de Computación Matemática, vamos a dedicar la primera parte de la sesión a recordar algunos elementos de la sintaxis de Maple y a familiarizarnos con el tipo de problemas en el que podemos emplear esta herramienta.

Maple es una herramienta útil para manipular fórmulas, ecuaciones y datos. La siguiente sesión está preparada como sesión introductoria al manejo de Maple en el marco del Álgebra Lineal.

ÁLGEBRA LINEAL Y MANIPULACIÓN DE MATRICES.

Llamamos al paquete utilizando el comando with(linalg):

> restart;with(linalg):

Warning, new definition for norm Warning, new definition for trace

Obsérvese que los avisos que aparecen en pantalla son "outputs" normales y no indican un problema.

Definamos una matriz cuadrada A, de dimensión 3, con caracteres alfanuméricos utilizando el comando matrix() :

> A:= matrix([[1,-alpha,2/3],[-1,0,1],[beta/3,2,-1]]);

Page 4: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Para obtener la matriz anterior, se puede utilizar también la sintaxis

> A:= matrix(3,3,[1,-alpha,2/3,-1,0,1,beta/3,2,-1]);

Es también posible definir una matriz A como una función de los pares ordenados de índices (i,j), expresando cada coeficiente A[i,j] en función de los valores de i y de j.

Así la matriz identidad de dimensión 6 se puede definir como una función

con dominio igual a {1,2,3,4,5,6}x{1,2,3,4,5,6}:

> Id:=(i,j)-> if i=j then 1 else 0;fi;

> I6:=matrix(6,6,Id);

Obtenemos la traspuesta de A:

> transpose(A);

Page 5: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Calculamos su determinante (simbólico):

> det(A);

Calculamos su inversa :

> inverse(A);

Ahora definimos una matriz numérica B:

B:= matrix(3,2,[[1,2],[1,1],[-1,0]]);

Para obtener el coeficiente (i,j) de una matriz B, se utiliza el comando B[i,j], por ejemplo:

> B[3,1];

También es posible multiplicar matrices. Por ejemplo, sea C = AB:

> C:= multiply(A,B);

Page 6: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Para cálculos más complicados con expresiones matriciales, la función evalm() permite utilizar una notación más natural. Obsérvese que el operador especial " &* " denota el producto habitual de matrices, mientras que el operador "*" denota la multiplicación por escalares . El siguiente ejemplo calcula AB-(1/3)*C:

> evalm(A &* B - 1/3*C);

Finalmente, los sistemas de ecuaciones lineales también pueden ser resueltos utilizando su representación matricial. En ese caso se emplea el comando linsolve(A,B) , entendiéndose entonces que lo que se está resolviendo es la ecuación matricial

. Por ejemplo:

> A:= matrix([[2,2,2],[1,1,0],[-1,0,1]]);

> B:=matrix([[3],[2],[1]]);

> X:=linsolve(A,B);

Page 7: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> #Pulsa return

Para finalizar esta parte de la práctica, vamos a ver cómo se puede utilizar Maple para obtener la representación gráfica de los sistemas de ecuaciones con tres incógnitas mediante los planos determinados por cada una de las ecuaciones que lo componen.

Consideremos ahora el sistema

,

que podemos escribir como una lista de tres ecuaciones lineales:

> Sistema:=[2*x+y+z = 1,2*x+y+z = 5, 3*x-y-z = 0];

Expresando en cada ecuación la variable explícitamente en función de las variables

e , se obtiene el sistema de ecuaciones

Maple contiene el comando isolate(ecuación, expresión) en la librería isolate , que nos permite escribir las ecuaciones en esta última forma:

> readlib(isolate):

> Sistz:={isolate(Sistema[1],z),isolate(Sistema[2],z),isolate(Sistema[3],z)};

Page 8: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Si queremos representar las tres ecuaciones en una única gráfica, se puede utilizar el comando plot3d:

> plot3d({1-2*x-y,5-2*x-y,3*x-y},x=-10..10,y=-10..10);

Nota: Si se pincha con el cursor la gráfica obtenida, aparecen nuevos botones en la barra de herramientas y podéis explorara que acciones se corresponden. También, se puede arrastrar el cursor en el área de la gráfica para cambiar de perspectiva.

Con la representación gráfica de los planos anteriores a la vista, ¿es compatible el sistema de ecuaciones lineales anterior?

> #Pulsa return

También es posible representar los planos directamente utilizando las ecuaciones

originales del sistema (donde la variable depende de la variables e de forma implícita) y un comando especial que requiere del uso de la librería plots . Para ello usaremos el comando with(plots): (recordamos que los dos puntos al final de la "línea de input de comandos" tienen el mismo efecto que el punto y coma pero no "producen eco", es decir, el sistema ejecuta la operación pero no da una respuesta en pantalla).

> with(plots):

> implicitplot3d({2*x+y+z = 1, 2*x+y+z = 5,3*x-y-z = 0},x=-10..10,y=-10..10, z=-40..40);

Page 9: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Para irnos familiarizando con algunos comandos que se emplearán en las siguientes prácticas, tras la definición de los correspondientes vectores, utilizaremos el comando dotprod (producto escalar usual) para definir la longitud (la norma) de un vector genérico (en Maple sqrt =raíz cuadrada).

> u:=vector([1,2,3]);

> v:=vector([2,5,7]);

> dotprod(u,v);

> longitud:=x->sqrt(dotprod(x,x));

> longitud(u);

Podemos ahora calcular la proyección ortogonal de u sobre v, utilizando la fórmula :

> evalm((dotprod(u,v)/dotprod(v,v))*v);

Page 10: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

#Pulsa return

Lección

Introducción

En la sección anterior se ha visto, entre otras cosas, cómo se pueden resolver sistemas de ecuaciones lineales, invertir matrices y calcular el valor de determinantes. Vamos ahora a utilizar Maple para aplicar los métodos de reducción de matrices por medio de transformaciones elementales vistos en las clases teóricas.

> #Pulsa return

Como hemos visto, Maple tiene implementada en la librería linalg un comando para

resolver sistemas de ecuaciones lineales, siendo su sintaxis , donde A es la matriz de coeficientes y B es la matriz de los términos independientes (y por consiguiente una matriz columna).

El objetivo de este apartado es exponer con claridad cuales son las herramientas básicas que configuran los métodos

de eliminación gaussiana y de Gauss-Jordan, al margen de que el uso del comando linsolve permita resolver sistemas de ecuaciones sin saber realmente cómo se está haciendo.

> #Pulsa return

Matrices asociadas a un sistema de ecuaciones lineales

En general, si consideramos un sistema de ecuaciones lineales de la forma:

+....+

+....+

.....

+....+ ,

es posible plantearlo en la forma matricial :

> A:=matrix(3,4,(i,j)->a[i,j]);

Page 11: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> B:=matrix(3,1,(i,j)->b[i]);

> X:=matrix(4,1,(i,j)->x[i]);

> evalm(A&*X)=evalm(B);

y trabajar directamente con la matriz ampliada de dicho sistema = (A|B), utilizando el comando concat :

> Am:=concat(A,B);

Ejemplo 1

Dado el sistema

Page 12: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> S:={x[1]+x[2]+x[3] = 1, 2*x[1]-2*x[2]+x[3] = 2, 3*x[1]+3*x[2]+3*x[3] = 3};

su matriz ampliada asociada sería

> Am:=matrix([[1, 1, 1, 1], [2, -2, 1, 2], [3, 3, 3, 3]]);

La matriz se puede también definir utilizando el comando coeffs(polinomio) , que permite crear la lista de los coeficientes de las variables de un polinomio

> coeffs(x[1]+x[2]+x[3]);

> coeffs(2*x[1]-2*x[2]+x[3]);

> coeffs(3*x[1]+3*x[2]+3*x[3]);

y creando la matriz asociada a nuestro sistema

> A:=matrix([[coeffs(x[1]+x[2]+x[3])],[coeffs(2*x[1]-2*x[2]+x[3])],[coeffs(3*x[1]+3*x[2]+3*x[3])]]);

Page 13: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

La matriz ampliada =( | ) es

> B:=matrix(3,1,[1,2,3]);

> Am:=concat(A,B);

> #Pulsa return

Compatibilidad e incompatibilidad

Para determinar si un sistema es compatible o no, y resolverlo en su caso por el método de eliminación gaussiana o por el de Gauss-Jordan, realizaremos transformaciones elementales por filas (intercambiar filas, multiplicar filas por un número distinto de

cero, sumar o restar filas) sobre la matriz ampliada , lo que equivale a realizar las mismas operaciones sobre las ecuaciones que representan dichas filas. En símbolos:

-> ->...->

donde es el resultado de aplicar la transformación , , a la matriz

(notar que = es la matriz original).

> #Pulsa return

Para el método de eliminación gaussiana tendrá que estar en forma escalonada del tipo:

Page 14: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

donde las primeras filas contienen los unos principales que corresponden a las variables principales del sistema.

> #Pulsa return

Según vimos, si es distinto de cero el sistema es incompatible .

Por otra parte, si y , entonces =1 y el sistema es compatible determinado y se puede resolver o bien con el método de Gauss-Jordan (realizando transformaciones elementales por filas hasta que la matriz obtenida esté en forma escalonada reducida ), o bien por sustitución hacia atrás .

Por ejemplo, está claro que con la representación establecida para los sistemas de

ecuaciones lineales, el sistema correspondiente a la matriz , tendría

como solución .

Finalmente, si y r<n, pasaríamos a considerar el sistema obtenido al dejar en el primer miembro las variables principales, trasladando las variables secundarias (parámetros) al segundo miembro de la igualdad:

> #Pulsa return

+....+ -...-

Page 15: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

.....

-...-

obteniendo así un sistema que se puede resolver, como en el caso anterior, o bien realizando transformaciones elementales por filas sobre la matriz ampliada hasta que las r primeras columnas de la matriz considerada (es decir, todas menos la última) sean las

de la matriz , o bien por sustitución hacia atrás.

> #Pulsa return

Ejemplo 2

En el Ejemplo 1, hallamos la matriz ampliada asociada al sistema

> Am:=concat(A,B);

que, sometida a oportunas transformación elementales por filas, daría lugar a

> matrix([[1, 1, 1, 1], [0, 1, 1/4, 0], [0, 0, 0, 0]]);

por lo que deberíamos pasar al sistema

Page 16: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

con su correspondiente matriz asociada

> matrix([[1, 1, 1-x[3]], [0, 1, -x[3]/4]]);

Para calcular las soluciones, podemos sustituir en la ecuación

, o escribir la matriz en su forma escalonada reducida:

> matrix([[1, 0, 1-x[3]+1/4*x[3]], [0, 1, -1/4*x[3]]]);

Tranformaciones elementales por filas con Maple

Dada una matriz

> A:=matrix([[1,1,1,-1,1],[2,-2,1,2,0],[3,3,3,3,1],[1,0,-3,4,5]]);

Los comandos de Maple que corresponden a las transformaciones elementales por filas

sobre una matriz son los siguientes:

para intercambiar las filas i y j se emplea el comando swaprow(A, i, j) :

Page 17: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> swaprow(A,1,2);

el comando mulrow(A, i, k) permite multiplicar una fila i por un número k (distinto de cero) :

> mulrow(A,1,24);

para sumar a la fila j la fila i multiplicada por un número k se emplea el comando addrow(A, i, j, k) :

> addrow(A,1,3,-3);

En algunos casos puede resultar conveniente "personalizar" los comandos.

Por ejemplo, si definimos la función "filapor" en el siguiente modo:

> filapor:=(i,k)->mulrow(A,i,k);

la función así definida multiplica la fila i-ésima de A por k.

> filapor(1,24);

Page 18: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Cuando los sistemas resulten compatibles indeterminados, pueden resultar útiles los

siguientes comandos (el primero multiplica una columna por un número distinto de cero, el segundo elimina filas y el tercero elimina columnas):

> mulcol(A,1,k);

> delrows(A,1..2);

> delcols(A,3..4);

Finalmente la función pivot , que tiene la forma pivot(A, i, j) , devuelve una nueva matriz en la que en todos los elementos de la columna j se han convertido en ceros (por

medio de transformaciones elementales), a excepción del elemento de dicha

matriz, que es el que se ha utilizado como pivote. Si el elemento es nulo, al aplicar el comando pivot se obtiene un mensaje de error:

> pivot(A,2,3);

Page 19: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> A[2,5];pivot(A,2,5);

Error, (in pivot) cannot pivot on zero entry

Si se quiere que se conviertan en ceros sólo los elementos de la columna j que pertenecen a filas inferiores a la fila i , se utiliza pivot(A, i, j, r..s) :

> pivot(A,2,3,3..4);

La función gausselim reduce una matriz a su forma escalonada (sin que los coeficientes principales sean igual a 1):

> gausselim(Am);

La función gaussjord reduce una matriz a su forma escalonada reducida:

> gaussjord(Am);

Page 20: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

En todo caso, como ya hemos comentado, la función que resuelve de forma directa el

sistema de ecuaciones lineales es , que básicamente realiza secuencialmente las operaciones descritas.

Por ejemplo, el sistema de ecuaciones de los ejemplos 1 y 2 anteriores lo resolveríamos del siguiente modo:

> A:=matrix([[1,1,1],[2,-2,1],[3,3,3]]);

> B:=matrix([[1],[2],[3]]);

> linsolve(A,B);

> #Pulsa return

Los comandos vistos también pueden ser utilizados para trabajar con sistemas de ecuaciones dependientes de parámetros, pero en ese caso hay que tener cuidado , pues el tipo de simplificación que, por ejemplo, efectúa el comando gaussjord no permite resolver el problema teniendo en cuenta todos los posibles valores de los parámetros, como se puede ver en el siguiente ejercicio-ejemplo:

Ejemplo 3

Encontrar los valores de a, b y c que hacen que el siguiente sistema de ecuaciones sea incompatible:

Page 21: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> A:=matrix(3,5,[2,1,3,5,a,3,2,-1,4,b,3,1,10,11,c]);

> gaussjord(A);

> gausselim(A);

Como se puede ver, al emplear gaussjord, el sistema ha trabajado con las variables a, b y c sin distinguir entre los posibles casos, de manera que los parámetros han desaparecido (¿porqué?).

Sin embargo, en este caso, al emplear gausselim podemos extraer fácilmente los valores de a, b y c que hacen el sistema incompatible (¿por qué?).

> #fin

Práctica 2

Método de Gauss y rango.

Determinantes

Objetivos de la sesión

Recordar algunas de las funciones de la librería linalg que se introdujeron en la práctica 1 e introducir otras nuevas necesarias para el desarrollo de esta práctica.

Page 22: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Afianzar en el alumno la comprensión de la base teórica del método de Gauss-Jordan, las transformaciones y matrices elementales y sus diferentes aplicaciones mediante el uso de Maple.

Utilizar las transformaciones elementales para desarrollar el concepto de determinante, sus propiedades y sus aplicaciones al estudio de la dependencia e independencia lineal de sistemas de vectores.

Relacionar el concepto de determinante con la idea de volumen.

> #Pulsa return

Tiempos

La duración de la práctica (incluida la evaluación) es de dos horas. La primera hora (aproximadamente) se dedicará al desarrollo-estudio de los contenidos de los apartados "Comandos de Maple necesarios para la realización de esta práctica" y "Lección", donde se introducen y repasan los conceptos y se muestran los comandos de Maple precisos para el desarrollo de la práctica. La segunda hora a la realización del test de evaluación.

> #Pulsa return

Como se debe realizar la siguiente práctica

El presente guión seguido con las indicaciones y observaciones del profesor contiene las instrucciones precisas para realizar con el ordenador ejercicios sobre los contenidos presentados en las clases teóricas.

Lo deseable, para que queden afianzadas las ideas y las nociones básicas sobre la sintaxis de Maple, es que se realicen prueba y nuevos ejemplos sobre la base de los ejemplos planteados.

> #Pulsa return

Comandos de Maple necesarios para la realización de esta práctica

En esta primera parte de la práctica se describen, a través de ejemplos, algunos comandos del paquete linalg útiles para la aplicación del método de Gauss que vamos a exponer y se repasarán los comandos utilizados en la práctica 1. Así pues el alumno deberá ejecutar dichos ejemplos y tecleará otros que le permitan comprender la aplicación de dichos comandos.

Los siguientes son algunos comandos incorporados por Maple que pueden ser necesarios para la realización de esta práctica (referida fundamentalmente al método de Gauss) que están disponibles en la librería linalg:

stackmatrix augment addcol addrow mulcol mulrow delcols delrows

swapcol swaprow row col pivot linsolve gausselim gaussjord

Page 23: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

equal rank transpose inverse innerprod crossprod %

with(combinat) permute det

Descripción de los comandos mencionados:

> restart:with(linalg):

Warning, new definition for norm

Warning, new definition for trace

OBSERVACIÓN: En la línea de input de comandos anterior hemos introducido el símbolo ":" cuya acción, recordemos, es la misma del ";" pero no hace eco (es decir, no se imprime nada como output aunque realiza la acción que le precede).

> A1:=matrix(3,3,[1,-2,5,0,0,Pi/4,7,8,9/5]);

> B1:=matrix(3,3,[0,0,3,-5,2,1,8,0,0]);

Para acceder al elemento (i,j) de una matriz C hay que escribir C [i,j]. Por ejemplo:

> B1[2,1];

Las funciones row(A,r1) , col(A,c1) devuelven la fila r1 y la columna c1 de A respectivamente (nótese que col(A,c1) devuelve una matriz fila, no una matriz columna):

> r2:=row(A1,2); c3:=col(B1,3);

Page 24: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

El comando stackmatrix une dos matrices verticalmente:

> stackmatrix(A1,B1);

La función augment (como la función concat ) une dos matrices horizontalmente:

> augment(A1,B1);

> concat(A1,B1);

La función delcols(A,r..s) (delrows(A,r..s)) elimina las columnas (respectivamente filas) r,r+1,...,s de la matriz A:

> delcols(augment(A1,B1),2..4);

> delrows(stackmatrix(A1,B1),3..3);

Page 25: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> #Pulsa return

Recordemos las funciones addrow y addcol , ya empleadas en la práctica anterior:

Llamadas a las funciones addrow y addcol:

addrow(A, r1, r2, m)

addcol(A, c1, c2, m)

Parámetros:

A - matriz

r1,r2,c1,c2 - enteros; índices de fila (columna)

m - expresión escalar (opcional. Por defecto m=1).

La llamada addrow(A,r1,r2,m) devuelve una copia de la matriz A en la cual la fila r2 ha sido reemplazada por m*row(A,r1)+row(A,r2). La función addcol tiene un comportamiento similar pero para columnas.

Recordemos los coeficientes de la matriz A1 anterior.

Nota: Según vimos, la acción del comando "evalm" es similar a la del comando "eval" pero para matrices.

> evalm(A1);

> addcol(A1,1,2,-1);

Page 26: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> addrow(A1,2,3,-9);

Recordemos también las funciones mulcol y mulrow :

Llamadas a las funciones:

mulcol(A, c, expr)

mulrow(A, r, expr)

Parámetros:

A - matriz

r,c - enteros positivos

expr - expresión escalar

La llamada mulcol(A,c,expr) devuelve una matriz que tiene las mismas componentes que la matriz A, pero con los elementos de la columna c-ésima multiplicados por la expresión expr. La función mulrow(A,r,expr) tiene un comportamiento análogo:

> mulcol(A1,2,x);mulrow(B1,1,2/3);

Page 27: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

La función equal determina si dos matrices son iguales:

> equal(A1,B1);

> Z:=A1: equal(A1,Z);

La función transpose traspone una matriz:

> C1 := matrix([[1, 0, 7], [-2, 0, 8], [5, 1, 9]]);

> C1:=transpose(A1);

> v1:=row(C1,3);

> v2:=col(A1,3);

> equal(v1,v2);

Page 28: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Recordemos las funciones swapcol y swaprow también empleadas en la primera práctica:

Llamada a las funciones swapcol y swaprow:

swaprow(A, r1, r2)

swapcol(A, c1, c2)

Parámetros:

A - matriz

r1,r2,c1,c2 - naturales

La función swaprow(A,r1,r2) crea una nueva matriz a partir de la matriz A intercambiando las filas r1 y r2. Análogamente swapcol(A,c1,c2) crea una nueva matriz a partir de A intercambiando las columnas c1 y c2.

> swapcol(A1,1,2);

> swaprow(B1,3,1);

En esta práctica también vamos a utilizar la función pivot , ya empleada en la práctica anterior:

Llamada a la función pivot:

pivot(A, i, j)

pivot(A, i, j, r..s)

Parámetros:

A - matriz

i,j - enteros positivos

Page 29: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

r..s - rango de filas

La función pivot toma como entradas una matriz A y un par de enteros positivos i y j que determinan el elemento A[i,j] de A. Este elemento debe ser distinto de cero, produciéndose un error en caso contrario. La función devuelve una matriz del mismo orden que A, resultado de aplicar transformaciones elementales de fila con el objeto de obtener ceros en la columna j excepto, por supuesto, el elemento A[i,j].

La llamada pivot(A,i,j,r..s) tiene prácticamente la misma funcionalidad que pivot(A,i,j) excepto que las transformaciones tan sólo afectan a las filas r, r+1,...,s:

> P1:=pivot(stackmatrix(A1,B1),1,1);

> P2:=pivot(swapcol(P1,2,3),2,2);

> pivot(P2,3,3,4..6);

Page 30: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Señalaremos también que la función linsolve permite resolver sistemas de ecuaciones lineales. La sintaxis de esta función es:

"linsolve(A,b)" o también "linsolve(A,B)", donde A y B son matrices y b es un vector:

> A:=matrix(3,3,[2,1,1,2,0,1,1,1,1]);b:=matrix([[5],[1],[1]]);

> linsolve(A,b);

También es posible determinar la inversa de una matriz empleando la función linsolve.

En ese caso estaríamos resolviendo la ecuación matricial :

> Id:=matrix(3,3,[1,0,0,0,1,0,0,0,1]);

> linsolve(A,Id);

Page 31: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Veamos que la función inverse nos devuelve la misma matriz:

> inverse(A);

> equal(inverse(A),linsolve(A,Id));

El símbolo % permiten recuperar la última expresión evaluada, %% la penúltima, y así sucesívamente.

Verifiquemos el resultado:

> multiply(A,%%);

Para finalizar, recordaremos cómo actúan los comandos gausselim y gaussjord ya introducidos en la práctica anterior:

> gausselim(A);

> gaussjord(A);

Page 32: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

La función rank(A) determina el rango de una matriz A.

> r1:=rank(A1);r2:=rank(B1);r3:=rank(stackmatrix(A1,B1));

Lección

> #Pulsa return

Introducción

Para comenzar, vamos a recordar en qué consiste el método de Gauss-Jordan para resolver un sistema de ecuaciones lineales. Primero lo resolveremos empleando el comando "linsolve" que tiene implementado Maple, y posteriormente iremos desarrollando el método de Gauss paso a paso para mejorar su comprensión. Consideremos el siguiente sistema de ecuaciones lineales:

En primer lugar lo resolvemos directamente:

> with(linalg):

Warning, new definition for norm

Warning, new definition for trace

> A:=matrix(3,3,[3,2,-1,1,-2,1,1,-1,1]);

> B:=matrix([[5],[3],[1]]);

Page 33: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> linsolve(A,B);

Ahora ya sabemos la solución. Esta solución la ha obtenido el sistema aplicando el método de Gauss-Jordan que tiene implementado. Vamos a obtenerla usando el método de Gauss-Jordan paso a paso según vimos en las clases teóricas:

> Am:=concat(A,B);

> Am:=pivot(Am,1,1);

> Am:=mulrow(Am,1,1/3);

> Am:=pivot(Am,2,2);

Page 34: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> Am:=mulrow(Am,2,-3/8);

> Am:=pivot(Am,3,3);

> Am:=mulrow(Am,3,2);

Como puede comprobarse, hemos obtenido la solución esperada.

> #Pulsa return

Las transformaciones y las matrices elementales

Estamos ya en condiciones de desarrollar nuevas aplicaciones de los métodos de reducción de matrices basados en el uso de transformaciones elementales estudiados en las clases teóricas.

Sea A una matriz mxn .

Las transformaciones elementales por filas y las matrices elementales correspondientes son las siguientes:

Page 35: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Transformación elemental : sumar a la fila i de A un múltiplo de la fila j .

Matriz elemental de orden m : es la matriz que se obtiene aplicando la

transformación elemental anterior a la matriz identidad de orden m.

Por ejemplo:

-- -->

=

> #Pulsa return

Transformación elemental : multiplicar la fila i de A por un escalar no nulo.

Matriz elemental de orden m : es la matriz que se obtiene aplicando la

transformación elemental anterior a la matriz identidad de orden m.

Por ejemplo:

-- -->

=

> #Pulsa return

Transformación elemental <--> : intercambiar la fila i de A con la fila j .

Matriz elemental de orden m : es la matriz que se obtiene aplicando la

transformación elemental anterior a la matriz identidad de orden m.

Page 36: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Por ejemplo:

-- <--> -->

=

> #Pulsa return

Las transformaciones elementales por columnas y las matrices elementales correspondientes son las siguientes:

Transformación elemental : sumar a la columna i de A un múltiplo de la columna j .

Matriz elemental de orden n : es la matriz que se obtiene aplicando la transformación

elemental anterior a la matriz identidad de orden n y es igual a la matriz elemental

( notar la posición de los índices ) .

Por ejemplo:

-- - ->

=

> #Pulsa return

Transformación elemental : multiplicar la columna i de A por un escalar no nulo.

Matriz elemental de orden n : es la matriz que se obtiene aplicando la transformación

elemental anterior a la matriz identidad de orden n y es igual a la matriz elemental

.

Por ejemplo:

Page 37: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

-- -->

=

> #Pulsa return

Transformación elemental <--> : intercambiar la columna i de A con la columna j .

Matriz elemental de orden n : es la matriz que se obtiene aplicando la transformación

elemental anterior a la matriz identidad de orden n y es igual a la matriz elemental

.

Por ejemplo:

-- -->

=

> #Pulsa return

Lo fundamental es tener presente que, según vimos,

cada transformación elemental se corresponde con la operación de multiplicar por una cierta matriz invertible (por la izquierda si es una transformación por filas y por la derecha si es una transformación por columnas) :

dada una matriz A de orden , si realizando una transformación elemental por filas sobre A obtenemos una matriz B , se verifica que existe una matriz P invertible de orden m tal que

(Obsérvese que en este caso la matriz P multiplica a la matriz A por la izquierda).

Page 38: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Análogamente, si realizando una transformación elemental por columnas sobre A obtenemos una matriz C , se verifica que existe una matriz invertible Q de orden n tal que

.

(Obsérvese que en este caso la matriz Q multiplica a la matriz A por la derecha).

Veamos algunos ejemplos (recuérdese que para multiplicar una matriz A por una matriz B se utiliza el comando A&*B):

> A := matrix(2,3,(i,j)->a(i,j));

> P[1](lambda) := matrix(2,2,[lambda, 0,0,1]);

Notar que es 2x2 y que

> Af := evalm(P[1](lambda)&*A);

Ahora, si definimos de dimensión 3,

> P[1](lambda) := matrix(3,3,[lambda, 0,0,0,1,0,0,0,1]);

> Ac := evalm(A&*P[1](lambda));

> #Pulsa return

Page 39: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Como se puede observar, según multipliquemos por la izquierda o por la derecha a la

matriz A por la matriz (de dimensión adecuada) realizamos una transformación por filas o por columnas sobre A (respectivamente).

Ejercicio : Definir las matrices y , y realizar los productos

, , y , y observar cual es el resultado.

>

>

>

Vamos a ver que es la matriz por la que hay que multiplicar a una matriz dada por la izquierda para tener una acción del tipo "sumar a la fila i la fila j multiplicada por

":

> S[12](lambda) := matrix(2,2,[1, lambda, 0, 1]);

Notar que es de dimensión 2:

> Af := evalm(S[12](lambda)&*A);

Ahora, si definimos de dimensión 3

> S[21](lambda) := matrix(3,3,[1, 0,0,lambda,1, 0,0,0, 1]);

y multiplicamos por la derecha, se obtiene que

> Ac:=evalm(A&*S[21](lambda));

Page 40: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Como puede observarse, el resultado de multiplicar a la matriz A por la matriz

(de dimensión 2) por la izquierda coincide con la matriz que resulta al sumar a

la primera fila de A la segunda multiplicada por .

El resultado de multiplicar a la matriz A por la matriz (de dimensión 3) por la derecha coincide con la matriz que resulta al sumar a la primera columna de A la

segunda multiplicada por .

Ejercicio : Definir las matrices (de dimensión adecuada) y , y

realizar los productos , , y

, y observar cual es el resultado.

>

>

>

Finalmente, vamos a verificar que es la matriz por la que hay que multiplicar a una matriz dada por la izquierda para tener una acción del tipo "intercambiar la fila i con la fila j ":

> E[12]:= matrix(2,2,[0, 1, 1, 0]);

> Af:= evalm(E[12]&*A);

Ahora, si definimos de dimensión 3

> E[12]:= matrix(3,3,[0, 1,0,1,0,0,0,0, 1]);

Page 41: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

y multiplicamos por la derecha, se obtiene que

> Ac:=evalm(A&*E[12]);

En resumen, dada una matriz A, si multiplicamos dicha matriz por la izquierda por una

matriz de la forma , o , el resultado de dicha multiplicación es una transformación por filas sobre la matriz A.

Del mismo modo, si multiplicamos dicha matriz por la derecha por una matriz de la

forma , o , el resultado de dicha multiplicación es la correspondiente transformación por columnas sobre la matriz A.

> #Pulsa return

Tabla resumen

> #Pulsa return

Transformación elemental Producto de matrices

Sumar a la fila i la j multiplicada por

Multiplicar la fila i por

Intercambiar la fila i con la fila j A

Sumar a la columna i la j multiplicada por

Multiplicar la columna i por

Intercambiar la columna i con la columna j A

Inversas de las transformaciones elementales

Page 42: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> #Pulsa return

Las matrices que corresponden a las transformaciones elementales son invertibles.

En el caso de las matrices de la forma , cuya acción consiste en multiplicar la

fila o columna i-ésima por , es fácil deducir que su inversa es la matriz .

Por ejemplo:

> P[1](lambda) := matrix(3,3,[lambda, 0, 0, 0, 1, 0, 0, 0, 1]);

> P[1](1/lambda):= matrix(3,3,[1/lambda, 0, 0, 0, 1, 0, 0, 0, 1]);

> evalm(P[1](lambda)&*P[1](1/lambda));

Veamos además qué sucede al hacer actuar estas transformaciones sobre la siguiente matriz:

> A := matrix(3,3,(i,j)->a(i,j));

> Ac:=evalm(A&*P[1](lambda));

Page 43: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> evalm(Ac&*P[1](1/lambda));

Por otra parte la inversa de la matriz es la matriz .

Por ejemplo:

> S[13](lambda) := matrix(3,3,[1, 0, lambda, 0, 1, 0, 0, 0, 1]);

> S[13](-lambda) := matrix(3,3,[1, 0, -lambda, 0, 1, 0, 0, 0, 1]);

> evalm(S[13](-lambda)&*S[13](lambda));

Si ahora queremos verlo a partir de la actuación de estas matrices sobre la matriz genérica A dada:

> Ac := evalm(A&*S[13](lambda));

Page 44: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> evalm(Ac&*S[13](-lambda));

Ejercicio: Determinar la matriz inversa de la matriz elemental .

>

>

> #Pulsa return

Rango y transformaciones elementales

Comenzaremos recordando algunas definiciones y resultados:

Definición: Si A es una matriz de orden mxn , se denomina rango de la matriz A a la

dimensión del subespacio de generado por el sistema formado por los " n " vectores columna de la matriz A .

Al subespacio generado por los vectores columna de la matriz A se le denomina subespacio columna de A.

El rango de una matriz es un mecanismo útil para determinar la dimensión de aquellos subespacios vectoriales de los que conocemos un sistema generador y, entonces, para verificar si este sistema es libre o ligado.

> #Pulsa return

Así por ejemplo, considerando el espacio vectorial (R) de los polinomios reales en la variable x de grado menor o igual que 3, para determinar la dimensión del subespacio

escribimos las matrices de las coordenadas de

dichos vectores respecto de la base usual . Se obtiene el sistema

Page 45: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

, con lo que la dimensión de H coincidirá con el rango de la

matriz .

> #Pulsa return

Veamos, pues, un método para obtener de una manera sencilla el rango de una matriz.

Definición: Se dice que una matriz de filas y columnas es gaussiana si sus

columnas , donde j varía en el conjunto {1,...,n}, satisfacen una de las condiciones siguientes:

Existe perteneciente al conjunto {1,...,n} tal que (1, ) es distinto de cero, y

para todo k perteneciente al conjunto {j+1,...,n}, (1, ) =0.

En otras palabras, la segunda condición supone localizar un elemento (1, ) distinto de cero en la columna considerada y asegurarse de que todos los coeficientes de la matriz situados en su misma fila y a su derecha son cero.

> #Pulsa return

Así por ejemplo, son matrices gaussianas

Page 46: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

, , , .

> #Pulsa return

El interés de este tipo de matrices radica en que si una matriz es gaussiana, su rango coincide con el número de columnas no nulas que posee.

Así por ejemplo,

rg( )=2 y rg( )=3.

> #Pulsa return

El método de Gauss para determinar el rango de una matriz consiste en lo siguiente:

partiendo del hecho de que al realizar transformaciones elementales por columnas sobre una matriz, el rango de la nueva matriz obtenida coincide con el rango de la matriz original, el método consiste en realizar transformaciones elementales por columnas sobre la matriz dada hasta obtener una matriz gaussiana , cuyo rango se determina de manera inmediata.

El método de Gauss para determinar el rango de una matriz es especialmente útil para calcular el rango de una matriz cuando no se dispone de la ayuda de un ordenador.

Si se quiere determinar, junto con el rango de una matriz, una base del subespacio vectorial generado por las columnas de la matriz dada y sólo se dispone de lapiz y papel, lo más sensato es utilizar el método de Gauss para determinar los rangos de las matrices objeto de estudio. Maple lleva incorporada un comando que determina automáticamente el rango de una matriz:

> A:=matrix(3,3,[1,1,1,1,1,1,1,1,1]);

Page 47: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> rank(A);

En todo caso, el comando "rank" no nos permite obtener una base del subespacio columna de A.

NOTA IMPORTANTE: Si queremos obtener una base de H formada por vectores del sistema generador dado, tenemos que aplicar el método de Gauss sin utilizar

transformaciones elementaless del tipo ( sin intercambiar columnas ) y elegir los vectores columnas de la matriz inicial A que corresponden a las columnas distintas de cero de la forma gaussiana de A.

Veamos cómo calcular el rango de la matriz anterior por el método de Gauss paso a paso y obtener una base del subespacio columna de A,

> A:=matrix(3,3,[1,1,1,1,1,1,1,1,1]);

> A1:=addcol(A,1,2,-1);

> A2:=addcol(A1,1,3,-1);

Page 48: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

La matriz A2 obtenida es gaussiana, por lo que su rango es 1, y obviamente el sistema

formado por el único vector columna es una base del subespacio columna de la matriz original A considerada.

> #Pulsa return

Si ahora volvemos a considerar el subespacio

del espacio vectorial (R) de los polinomios de grado menor o igual que 3, y además de obtener la dimensión de H queremos determinar una base de dicho subespacio, obraremos como sigue:

en primer lugar consideraremos las coordenadas del sistema generador de H respecto de

la base usual obteniendo el sistema , y

ahora aplicamos el método de Gauss a la matriz :

> A:=matrix(4,3,[2,1,5,1,-2,0,0,1,1,0,0,0]);

> A1:=addcol(A,1,2,2);

Page 49: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> A2:=addcol(A1,2,3,-1);

Esta matriz es gaussiana, por lo que el rango de la matriz A es 2. En consecuencia la

dimensión de H es también 2, y el sistema formado por los vectores correspondientes a las columnas no nulas de A2 constituyen una base de H .

> #Pulsa return

Para finalizar este apartado, vamos a ver un método directo para determinar si un cierto vector pertenece al subespacio vectorial generado por un sistema de vectores dado, utilizando el comando rank.

Para ello, recordemos que si un vector pertenece al subespacio vectorial generado por un sistema de vectores dado, dicho vector se puede obtener como combinación lineal de los vectores de dicho sistema. Por tanto si consideramos la matriz de coordenadas del sistema generador considerado respecto de una base fija del espacio en el que estemos trabajando, el rango de dicha matriz no varía al añadir a la matriz anterior la columna correspondiente a las coordenadas de dicho vector.

Así por ejemplo, fijada la base canónica de , para determinar si el vector ( ) pertenece al subespacio vectorial generado por el sistema de vectores {(1,0,3),(4,3,2)}

hallaríamos el rango de la matriz , y veríamos si coincide con el rango de la

matriz .

Page 50: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Si coinciden ambos rangos, el vector pertenece al subespacio generado y en caso contrario no.

> A:=matrix(3,2,[1,4,0,3,3,2]);

> rank(A);

> Am:=matrix(3,3,[1,4,3,0,3,4,3,2,2]);

> rank(Am);

Como puede verse, el vector ( ) no pertenece al subespacio generado por el sistema de vectores {(1,0,3),(4,3,2)}.

Determinante

El concepto de determinante aparece de manera natural en varios contextos matemáticos. Algunos ejemplos son el cálculo del jacobiano para integración en varias variables, el cálculo vectorial, el cálculo de áreas y volúmenes, etc....

Vamos a ver como se pueden usar las propiedades del determinante para

calcular áreas de paralelogramos en y de paralelepípedos en ,

relacionar el método de Gauss-Jordan para una matriz cuadrada con el cálculo de su determinante,

desarrollar técnicas para resolver sistemas de ecuaciones lineales con el mismo número de ecuaciones que de incógnitas, es decir, cuya matriz asociada sea cuadrada.

> #Pulsa return

Page 51: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

En esta primera sección vamos a introducir (o recordar) el concepto de determinante de una matriz cuadrada.

El grupo simétrico S(n)

Antes de poder definir el determinante de una matriz cuadrada y estudiar sus aplicaciones necesitamos los conceptos de permutación y signo de una permutación que vamos a ilustrar a continuación.

S(n) es el conjunto de las permutaciones (o simetrías) de un conjunto con n elementos , que podemos representar como el conjunto de los primeros n números

naturales, = {1,2,3,...,n}.

> #Pulsa return

Recordamos que S(n) consiste de todas las funciones biyectivas de en y que

- la composición de dos permutaciones es una permutación

- la composición de permutaciones es asociativa

- la función identidad, Id(n)=n para todo n, es el elemento neutro respecto de la composición de permutaciones

- toda permutación tiene una permutación inversa

Por tanto, S(n) tiene estructura de grupo no conmutativo .

> #Pulsa return

Es usual representar una permutación en S(n) por medio de una matriz de dos filas y n columnas, así que, por ejemplo,

es la permutación definida en por

(1) =6, (2) =2, (3) =4, (4) =3, (5) =5, (6) =1.

Para trabajar con el grupo S(n) en Maple necesitamos llamar a la librería combinat

> restart;with(linalg):with(combinat):matrix(1,6,[6,2,4,3,5,1]);

Page 52: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Warning, new definition for norm

Warning, new definition for trace

Warning, new definition for Chi

Warning, new definition for fibonacci

El comando permute(n) devuelve todas las permutaciones en S(n), escritas utilizando sólo las segundas filas de las matrices anteriores como listas ordenadas.

Ejemplo: Sea S(3) el grupo de las permutaciones de un conjunto de 3 elementos:

> permute(3);

Los elementos de S(3) se pueden interpretar como simetrías de un triángulo equilátero cuyo vértices estén marcados con 1, 2 y 3:

> with(plottools):with(plots):t1:=textplot([0.1,0.05,`1`],align={ABOVE,RIGHT}):t2:=textplot([1/2,sqrt(3/4)-0.1,`2`],align={BELOW}):t3:=textplot([1-0.1,0.05,`3`],align={ABOVE,LEFT}):display({t1,t2,t3,polygon([[0,0], [1,0], [1/2,sqrt(3/4)]], color=red)},scaling=constrained);

Por ejemplo,

- (1 2 3) es la identidad,

- (1 3 2) es la simetría respecto de la bisectriz del ángulo en 1:

Page 53: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> t1:=textplot([0.1,0.05,`1`],align={ABOVE,RIGHT}):t2:=textplot([1/2,sqrt(3/4)-0.1,`3`],align={BELOW}):t3:=textplot([1-0.1,0.05,`2`],align={ABOVE,LEFT}):r:=plot((sqrt(3)/3)*x,x=0..1.2):display({r,t1,t2,t3,polygon([[0,0], [1,0], [1/2,sqrt(3/4)]], color=green)},scaling=constrained);

- (2 3 1) es la rotación que lleva 1 en 2, 2 en 3 y 3 en 1:

> t1:=textplot([0.1,0.05,`3`],align={ABOVE,RIGHT}):t2:=textplot([1/2,sqrt(3/4)-0.1,`1`],align={BELOW}):t3:=textplot([1-0.1,0.05,`2`],align={ABOVE,LEFT}):display({t1,t2,t3,polygon([[0,0], [1,0], [1/2,sqrt(3/4)]], color=yellow)},scaling=constrained);

Ejercicio: determina el efecto geométrico de aplicar las permutaciones (2 1 3), (3 1 2) y (3 2 1) al triángulo equilátero rojo.

> #Pulsa return

Page 54: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Por definición, el resultado de aplicar una permutación al conjunto ordenado (1,2,3,

..., n) es lo de obtener la nueva ordenación ( (1), (2), (3), (4), (5), (6)) de estos n elementos.

Una transposición es una permutación que intercambia el orden de sólo dos elementos de la lista (1,2,3, ..., n).

Por ejemplo

es la trasposición que intercambia el 1 con el 6, que se indicará como (1 6), omitiendo los elementos cuya posición no ha cambiato.

Una inversión es una transposición que intercambia dos elementos consecutivos de la lista (1,2,3, ..., n).

Por ejemplo

,

es una inversión que se indicará como (4 5).

> #Pulsa return

Dada una permutación f de n elementos, si queremos volver a la ordenación original (1,2,3, ..., n) podemos realizar un número adecuado de inversiones entre los elementos

de la lista ( (1), (2), (3), (4), (5), (6)), como se hace en un algoritmo de ordenación burbuja.

Ejemplo: para reordenar los términos de la lista

( (1) =6, (2) =2, (3) =4, (4) =3, (5) =5, (6) =1) =(6,2,4,3,5,1)

se pueden aplicar, sucesivamente, las siguientes inversiones:

(1,2) que produce la lista (2,6,4,3,5,1), (2 3) que produce la lista (2,4,6,3,5,1), (3 4) que produce la lista (2,4,3,6,5,1), (4 5) que produce la lista (2,4,3,5,6,1), (5 6) que produce la lista (2,4,3,5,1,6), (2 3) que produce la lista (2,3,4,5,1,6), (4 5) que produce la lista (2,3,4,1,5,6), (3 4) que produce la lista (2,3,1,4,5,6), (2 3) que produce la lista (2,1,3,4,5,6) y, finalmente, (1 2) que produce la lista (1,2,3,4,5,6).

Page 55: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> #Pulsa return

Si i es el número de inversiones necesarias para volver al orden (1,2,3, ..., n), es el signo (o signatura) de la permutación f, sign( f ). Si i es par (es decir, el signo de f es1) la permutación se dice par y si i es impar (es decir, el signo de f es -1) la permutación se dice impar. (Se puede demostar que la paridad de i no depende de las

particulares inversiones empleadas para reordenar los elementos de la lista ( (1),

(2), (3), (4), (5), (6)).)

En el último ejemplo hemos utilizado 10 inversiones y, por tanto, el signo de f es 1 y f es par.

La definición de signo de una permutación se utilizará en el próximo párrafo para definir el determinante de una matriz cuadrada de dimensión n arbitraria.

> #Pulsa return

Definición y primeros métodos para calcular el determinante de una matriz

Definición: El determinante de una matriz cuadrada A=( ) de orden n es el escalar

det(A)= ... ,

donde el sumatorio contiene n! sumandos, uno para cada permutación de n elementos.

Cada sumando es el producto de n factores y el signo de esto producto está determinado por el signo de la permutación que lo define.

> #Pulsa return

Ejemplos:

El determinate de la matriz 2x2

> A:=matrix(2,2,[[1,2],[-4,1]]);

se calcula utilizando la 2 (=2!) permutaciones

Page 56: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> permute(2);

y la formula anterior

> determinante(A):=1*A[1,1]*A[2,2]-1*A[1,2]*A[2,1];

> det(A);

El determinante de la matriz 3x3

> B:=matrix(3,3,[[1,2,3],[4,3,6],[0,1,2]]);

se calcula utilizando la 6 (=3!) permutaciones

> permute(3);

> determinante(B):=1*B[1,1]*B[2,2]*B[3,3]-1*B[1,1]*B[2,3]*B[3,2]-1*B[1,2]*B[2,1]*B[3,3]+1*B[1,2]*B[2,3]*B[3,1]+1*B[1,3]*B[2,1]*B[3,2]-1*B[1,3]*B[2,2]*B[3,1];

> det(B);

Dada una matriz cuadrada A= ( ) de dimensión n, existe una fómula para hallar su

determinante que utiliza los determinantes de las submatrices de A que se obtienen eliminando la fila i y la columna j de la matriz A.

Page 57: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Al determinante de , det( ), se le llama menor del elemento y el

escalar det( ) es el adjunto del elemento . Con estas notaciones, la fórmula de Laplace para el cálculo del determinante de A

a partir de la fila i de A es

y a partir de la columna j de A es

.

> #Pulsa return

Es posible demostrar que los valores de las dos expressiones anteriores no dependen de la particular fila o columna elegida y que son iguales al valor del determinante de la matriz A.

Estas últimas fórmulas nos dan una definición recursiva del determinante: si somos capaces de calcular el determinante de matrices 2x2, podemos calcular el determinante de una matriz cuadrada de orden n simplemente aplicando la fórmula de Laplace iterativamente hasta que las submatrices de las cuales tenemos que calcular el determinante tengan dimensión 2.

Ejemplos:

Apliquemos la fórmula de Laplace a la matriz 2x2 definida en los ejemplos anteriores

> restart:with(linalg): A:=matrix(2,2,[[1,2],[-4,1]]);

Warning, new definition for norm

Warning, new definition for trace

utilizando la primera fila

Page 58: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> dim(A):=2;i:=1;for k from 1 to dim(A) do M[i,k]:=delcols(delrows(A,i..i),k..k);od; determinante(A):=add((-1)^(i+j)*A[i,j]*det(M[i,j]),j = 1 .. dim(A));

o la segunda columna

> dim(A):=2;j:=2;for k from 1 to dim(A) do M[k,j]:=delcols(delrows(A,k..k),j..j);od; determinante(A):=add((-1)^(i+j)*A[i,j]*det(M[i,j]),i = 1 .. dim(A));

Para la matriz 3x3 de los ejemplos anteriores

> B:=matrix(3,3,[[1,2,3],[4,3,6],[0,1,2]]);

la fórmula de Laplace para la primera fila es

> dim(B):=3; i:=1;for k from 1 to dim(B) do M[i,k]:=delcols(delrows(B,i..i),k..k);od; determinante(B):=add((-1)^(i+j)*B[i,j]*det(M[i,j]),j = 1 .. dim(B));

Page 59: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

y para la tercera columna

> dim(B):=3;j:=3;for k from 1 to dim(B) do M[k,j]:=delcols(delrows(B,k..k),j..j);od; determinante(B):=add((-1)^(i+j)*B[i,j]*det(M[i,j]),i = 1 .. dim(B));

> #Pulsa return

El determinante tiene las siguientes propiedades que utilizaremos a continuación y en los ejercicios:

Si A y B son matrices invertible, det(AB)=det(A)det(B). Por tanto el determinante de

una matriz invertible es distinto de cero y det( ) = , siendo siempre

det( )=1.

Page 60: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

El determinante de una matriz triangular superior es igual al producto de los elementos de la diagonal.

El determinante de una matriz es igual al determinante de su traspuesta .

> #Pulsa return

Si A es una matriz invertible, su matriz inversa es

= ,

donde es la matriz cuadrada de la misma dimensión que A cuyos coeficientes son los elementos adjuntos de los elementos de A.

Vale la Regla de Cramer para resolver un sistema de ecuaciones lineales AX=B con matriz asociada A nxn invertible, que, por tanto, es compatible determinado. La única solución del sistema es el vector de coordenadas

= ,

donde es la matriz que se obtiene al sustituir la columna i de A por la matriz columna B, para todo i de 1 hasta n.

> #Pulsa return

Determinantes, trasformaciones elementales, sistemas libres y volúmenes

En este apartado vamos a estudiar un método para calcular el determinante de una matriz cuadrada por medio de transformaciones elementales, sin tener que recurrir a su definición o a la fórmula de Laplace.

Además veremos que el concepto de determinante se puede pensar como una generalización del concepto de volumen.

> #Pulsa return

Dada una matriz cuadrada nxn A, el siguiente teorema nos dice como obtener el determinante de la matriz A' obtenida como resultado de aplicar una transformación elemental por filas (por columnas) sobre la matriz A:

Page 61: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Teorema

Sea A una matriz nxn. Entonces

1) Si A' es la matriz que se obtiene al multiplicar una fila de A por un escalar ,

det(A')= det(A),

2) Si A' es la matriz que se obtiene al añadir a una fila de A un multiplo escalar de otra fila, det(A')=det(A),

3) Si A' es la matriz que se obtiene al intercambiar dos filas de A, det(A')= -det(A).

4) Si A' es la matriz que se obtiene al multiplicar una columna de A por un escalar ,

det(A')= det(A),

5) Si A' es la matriz que se obtiene al añadir a una columna de A un multiplo escalar de otra columna, det(A')=det(A),

6) Si A' es la matriz que se obtiene al intercambiar dos columnas de A, det(A')= -det(A).

Siendo A' = EA y det(A') =det(E)det(A) en los primeros tres casos y siendo A' = AE y det(A') =det(A)det(E) en los últimos tres casos (con E una matriz elemental), basta con verificar el teorema para matrices elementales.

Sea Id la matriz identidad de dimensión n:

> Id:=n->matrix(n,n,(k,r)->if k=r then 1 else 0; fi);

La matriz elemental tiene determinante igual a = det( Id ):

> n:=6;i:=4;lambda:=-2;P(i,lambda):=mulrow(Id(n),i,lambda);

Page 62: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> det(%);

tiene determinante igual a 1 = det( Id ):

> n:=6;i:=4;j:=6;lambda:=-2;S(i,j,lambda):=addrow(Id(n),i,j,lambda);

> det(%);

tiene determinante igual a -1=-det( Id ):

> n:=6;i:=4;j:=6;E(i,j):=swaprow(Id(n),i,j);

Page 63: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> det(%);

Cálculo del valor del determinante por medio de transformaciones elementales:

A partir del hecho de que el determinante de cualquier matriz triangular es igual al producto de los elementos de su diagonal principal y de los resultados del teorema anterior, podemos desarrollar un método que nos permite calcular el valor del determinante de cualquier matriz A cuadrada de orden n utilizando transformaciones elementales.

> #Pulsa return

La idea es realizar transformaciones elementales por filas sobre A para obtener una matriz triangular cuyo determinante sabemos calcular. Así por ejemplo, si B es la matriz triangular obtenida al realizar sobre la matriz A en primer lugar la transformación

consistente en sumar a la fila i la j multiplicada por y en segundo lugar

multiplicando la fila k por , resulta que:

B =

y

det( B )=det( ( ))=det( )det( )= det(

)det( A )= *1*det(A)= det(A),

de donde det(A) = det(B).

Nota : El método anterior también funcionaría realizando transformaciones sólo por columnas o también por filas y por columnas pero teniendo cuidado con el lado

Page 64: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

(izquierda o derecha) por el que hay que multiplicar por la correspondiente matriz elemental.

Observación importante: Teniendo en cuenta que det( )=1, si la matriz triangular B se obtiene a partir de la matriz A realizando únicamente transformaciones

del tipo "sumar a la fila i la fila j multiplicada por ", de las propiedades vistas resulta que det( A )=det( B ).

Ejemplos:

> T:=matrix(5,5,[1,3,3,3,6,0,1,2,3,4,0,0,-1,-8,-3,0,0,0,1,2,0,0,0,0,4]);

> det(T);

Como se puede observar, el valor del determinante la matriz anterior (que es triangular) es igual al producto de los elementos de su diagonal principal.

> A:=matrix(4,4,[1,2,3,1,0,4,1,1,2,1,0,1,1,2,1,0]);

> A1:=addrow(A,1,3,-2);

> A2:=addrow(A1,1,4,-1);

Page 65: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> A3:=addrow(A2,2,3,3/4);

> A4:=addrow(A3,3,4,2*(-4/21));

Como puede verse, el producto de los elementos de la diagonal principal la matriz A4 es 19 (y por consiguiente el valor del determinante de A4 es 19). Teniendo en cuenta que todas las transformaciones elementales por filas realizadas han sido del tipo "sumar a la

fila i la j multiplicada por ", resulta que det(A) debe coincidir con det(A4). Comprobémoslo:

> det(A);

Determinantes, sistemas libres y volúmenes

Comenzaremos dibujando algunos paralelogramos en y observando cómo varía dicho "volumen bidimensional" al modificar el sistema de vectores que determinan dicho paralelogramo.

Comenzaremos con el sistema de vectores {(1,0),(0,1)}:

Page 66: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> with(plottools): plots[display](polygon([[0,0], [1,0], [1,1], [0,1]]), color=red,scaling=constrained);

> #Pulsa return

Es obvio que el área del paralelogramo anterior es igual a 1= det( ).

Si ahora multiplicamos uno de sus lados por 2, o por cualquier otro número, el valor del área aparece multiplicada por dicha cantidad:

> with(plottools): plots[display](polygon([[0,0], [2,0], [2,1], [0,1]]), color=green,scaling=constrained);

Page 67: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Como se puede obtener (y observar), el área encerrada en este caso por los vectores {(2,0),(0,1)}es

det( )=2.

> #Pulsa return

Por otra parte, recordando la "regla del paralelogramo" que utilizábamos para sumar vectores, se puede demostrar, utilizando argumentos de geometría elemental que, siendo

vectores de u y v , el área del paralelogramo definido por los vectores y v es igual al área del paralelogramo de finido por los vectores u y v .

Veámoslo de modo gráfico en el siguiente dibujo, en el que u =(1,0), v =(0,1).

La idea es comprobar gráficamente que el área del rectángulo de borde rojo coincide con el área del paralelogramo de borde azul:

> with(plottools): l := line([0,0], [1,1], color=blue, linestyle=1):l3 := line([0,0], [0,1], color=red, linestyle=1): l4 := line([1,0], [1,1], color=red, linestyle=1): l5 := line([1,1], [0,1], color=red, linestyle=1): l1 := line([1,0], [2,1], color=blue,linestyle=1):l2:= line([1,1], [2,1], color=blue,linestyle=1):plots[display](l,l1,l2,l3,l4,l5,scaling=constrained);

Hay que observar que el orden en el que consideramos los vectores determina un "sentido de recorrido" del borde del paralelogramo considerado. Por ejemplo, consideremos el sistema {(1,0),(0,1)} y hallemos el área del rectángulo determinado por este sistema calculando el siguiente determinante:

Page 68: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> with(linalg):

> A:=array(1..2,1..2,[[1,0],[0,1]]);

> det(A);

Si ahora cambiamos el sentido de recorrido del perímetro del paralelogramo anterior, i.e., si consideramos el paralelogramo determinado por el sistema {(0,1),(1,0)} y

hallamos el área correspondiente calculando el valor del determinante det( ), vamos a obtener un cambio de signo en el valor obtenido:

> with(linalg):A:=array(1..2,1..2,[[0,1],[1,0]]);

> det(A);

Si lo que pretendemos es hallar el valor del área, deberemos tomar el valor absoluto del

determinante, pues el determinante en el caso de dos vectores es un "área con signo", en el que el signo depende del orden considerado de los vectores que determinan el área. Si ahora queremos determinar el área encerrada por el sistema {(1,1),(-1,2)}, será suficiente con calcular el valor del siguiente determinante:

> A:=matrix(2,2,[1,-1,1,2]);

> det(A);

Page 69: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

Obviamente, el área encerrada por un sistema de dos vectores de es cero si y solo si dichos vectores son proporcionales, o lo que es lo mismo, el sistema que forman es ligado.

En las clases teóricas vimos que en se pueden definir el producto vectorial de dos vectores, crossprod en Maple,

> restart:with(linalg):

Warning, new definition for norm

Warning, new definition for trace

> u := vector([u1,u2,u3]);

> v:= vector([v1,v2,v3]);

> crossprod(u,v);

donde las coordenadas del vector resultante son los adjuntos , - y

de los elementos e1 , e2 y e3 de la matriz simbólica

> PV:=matrix(3,3,[[e1,e2,e3],[u1,u2,u3],[v1,v2,v3]]);

> M[1,1]:=det(delcols(delrows(PV,1..1),1..1));

> M[1,2]:=det(delcols(delrows(PV,1..1),2..2));

Page 70: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> M[1,3]:=det(delcols(delrows(PV,1..1),3..3));

y también definimos el producto mixto de tres vectores (el comando innerprod devuelve el producto escalar)

> w:=vector([w1,w2,w3]);

> innerprod(u,crossprod(v,w));

donde el escalar resultante es el determinante de la matriz cuyas filas son las coordenadas de los tres vectores:

> PM:=matrix(3,3,[[u1,v1,w1],[u2,v2,w2],[u3,v3,w3]]);

> det(PM);

> det(PM)-innerprod(u,crossprod(v,w));

La norma del producto vectorial de dos vectores coincide con el área del paralelogramo

en determinado por ellos y el valor absoluto del producto mixto es el volumen del paralelepípedo individuado por los tres vectores.

Ejemplo: Dados los vectores

> u:=vector([1,2,1]);v:=vector([-1,1,0]);w:=vector([-2,1,7]);

Page 71: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

el paralelepípedo determinado por u , v y w es

> with(plottools): with(plots): t:=textplot3d([[1,2,1,`u`],[-1,1,0,`v`],[-2,1,7,`w`]],color=black,font=[TIMES, BOLD, 20],align=LEFT): p1:=polygon([[0,0,0],[-1,1,0],[0, 3, 1], [1,2,1]],color=green,scaling=constrained): p2:=polygon([[-2,1,7],[-3,2,7],[-2, 4, 8], [-1,3,8]],color=green,scaling=constrained): p3:=polygon([[0,0,0],[-1,1,0],[-3, 2, 7],[-2,1,7] ],color=blue,scaling=constrained): p4:=polygon([[1,2,1],[0,3,1],[-2, 4, 8],[-1,3,8] ],color=blue,scaling=constrained): p5:=polygon([[0,0,0],[1,2,1],[-1, 3, 8],[-2,1,7] ],color=red,scaling=constrained): p6:=polygon([[-1,1,0],[0,3,1],[-2, 4, 8],[-3,2,7] ],color=red,scaling=constrained): plots[display](p1,p2,p3,p4,p5,p6,t,axes=normal);

El área del paralelogramo azul es la norma del producto vectorial de v con w :

> norm(crossprod(v,w));

El volumen del paralelepípedo es el valor absoluto del producto mixto de u , v y w :

> abs(innerprod(u,crossprod(v,w)));

Todo lo anterior se puede generalizar a conjuntos de vectores en , 5 vectores en

, etc.: dados vectores en , y aunque no podemos dibujarlo, definimos el paralelepípedo generalizado generado por dichos vectores como el conjunto de

Page 72: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

combinaciones lineales de dichos vectores con coeficientes entre 0 y 1 (es decir, lo

definimos de la misma forma que en y ). Para no disponemos de un concepto intuitivo de volumen, pero sí conocemos las propiedades que queremos que

dicho concepto verifique (las extrapolamos del concepto de area en y de volumen

en , teniendo en mente que el "volumen" debe ser una medida del tamaño de un paralelepípedo):

1.- .

2.- .

3.- para cualquier permutación .

4.- , donde son los vectores de la base canónica.

Estas propiedades son verificadas por el valor absoluto del determinante, como se deduce de nuestra discusión sobre el comportamiento de éste con respecto a

transformaciones elementales, cualquiera que sea . Además para , el valor absoluto del determinante de una matriz coincide con el volumen del paralelepípedo (o

área del paralelogramo, en el caso ) formado por los vectores columna de dicha matriz. Por tanto es razonable dar la siguiente definición:

Se define el volumen de un paralelepípedo generado por vectores , ...,

en , como el valor absoluto del determinante de la matriz cuyas columnas

son las coordenadas de las vectores , ..., respecto de la base canónica.

Por tanto, en el caso de 3 vectores de el determinante representa un "volumen orientado" (si se quiere obtener el volumen, basta con considerar el valor absoluto del

determinante), y en el caso de 4 vectores de , 5 vectores de , etc., un "volumen orientado generalizado".

Page 73: El método de Gauss-Jordan y - angelfire.com · El método de Gauss-Jordan y preliminares de Álgebra Lineal Práctica 1 Objetivos de la sesión Presentar al alumno las posibilidades

> #Pulsa return

Así pues, el sistema {u,v,w}de vectores de es libre si el determinante de la matriz

que tiene por columnas sus coordenadas respecto de la base canónica de de es distinto de cero y es ligado si el volumen es cero, es decir, si el determinante anterior es 0. Por ejemplo, si queremos determinar si el sistema {(1,-1,-2), (2,1,1),(1,0,7)} es libre o ligado, bastará con calcular el determinante de la siguiente matriz:

> A:=matrix(3,3,[1,2,1,-1,1,0,-2,1,7]);

> det(A);

Esto mismo es obviamente válido para sistemas de 4 vectores de , sistemas de 5

vectores de , etc., ya que

dada una matriz cuadrada A de dimensión arbitraria, los vectores fila (columna) forman un sistema libre (es decir, el rango de A es igual a su dimensión) si, aplicando el método de eliminación gaussiana, la matriz escalonada reducida A' que se obtiene no contiene filas de ceros.

Siendo det(A) un multiplo de det(A'), det(A)=0 sólo si det(A')=0. Pero det(A')=1.

Se sigue que

A es invertible si y sólo si det(A) es distinto de 0.

> #fin