Método de Gauss-Jordan en Octave
En esta publicación, te explicaré como desarrollar el método de Gauss-Jordan utilizando el lenguaje de programación Octave. Sin embargo, puedes realizar todas y cada una de las operaciones con tu propia calculadora y verificar cada uno de los pasos.
Esta libreta esta desarrollada en Cocalc y podrás acceder libremente. Si deseas aprender un poco sobre Octave, te invito a que veas este vídeotutorial.
En este ejercicio, aplicaremos el método de Gauss-Jordan para resolver el sistema
A =
4 -1 1 -1
2 3 -1 5
-1 2 3 0
Las dos operaciones que usaremos son
, donde denota el i-ésimo renglón de y , el elemento de en el renglón y columna .
A la primera operación la denotaremos como normalización, ya que transformará el elemento en 1, mientras que a la segunda le llamaremos anulación, ya que transformará el elemento en cero, provisto de que el renglón esté normalizado.
En Octave, podemos extraer el -ésimo renglón de con el código A(i, :)
, y acceder al elemento con A(i,j)
. ¡Comencemos!
A =
1.0000 -0.2500 0.2500 -0.2500
2.0000 3.0000 -1.0000 5.0000
-1.0000 2.0000 3.0000 0
A =
1.0000 -0.2500 0.2500 -0.2500
0 3.5000 -1.5000 5.5000
-1.0000 2.0000 3.0000 0
A =
1.0000 -0.2500 0.2500 -0.2500
0 3.5000 -1.5000 5.5000
0 1.7500 3.2500 -0.2500
Como ya seguramente observaste, tendremos que repetir esta dos operaciones varias veces. Por lo que nos conviene escribirlas en forma de funciones, a fin evitar repetir el código de manera innecesaria.
matriz =
1.0000 -0.2500 0.2500 -0.2500
0 1.0000 -0.4286 1.5714
0 1.7500 3.2500 -0.2500
A =
1.0000 -0.2500 0.2500 -0.2500
0 1.0000 -0.4286 1.5714
0 1.7500 3.2500 -0.2500
matriz =
1.0000 -0.2500 0.2500 -0.2500
0 1.0000 -0.4286 1.5714
0 0 4.0000 -3.0000
A =
1.0000 -0.2500 0.2500 -0.2500
0 1.0000 -0.4286 1.5714
0 0 4.0000 -3.0000
matriz =
1.0000 -0.2500 0.2500 -0.2500
0 1.0000 -0.4286 1.5714
0 0 1.0000 -0.7500
A =
1.0000 -0.2500 0.2500 -0.2500
0 1.0000 -0.4286 1.5714
0 0 1.0000 -0.7500
Hasta este punto, hemos encontrado una matriz triangular superior, equivalente a nuestra matriz original. Lo que resta por hacer diagonalizar la matriz, lo cual haremos en el siguiente bloque.
matriz =
1.0000 -0.2500 0.2500 -0.2500
0 1.0000 0 1.2500
0 0 1.0000 -0.7500
A =
1.0000 -0.2500 0.2500 -0.2500
0 1.0000 0 1.2500
0 0 1.0000 -0.7500
matriz =
1.0000 -0.2500 0 -0.0625
0 1.0000 0 1.2500
0 0 1.0000 -0.7500
A =
1.0000 -0.2500 0 -0.0625
0 1.0000 0 1.2500
0 0 1.0000 -0.7500
matriz =
1.0000 0 0 0.2500
0 1.0000 0 1.2500
0 0 1.0000 -0.7500
A =
1.0000 0 0 0.2500
0 1.0000 0 1.2500
0 0 1.0000 -0.7500
¡Listo! Lo hemos conseguido. Por supuesto, siendo Octave un lenguaje de programación dedicado a trabajar con matrices, este procedimiento este implementado de bajo el nombre de la función rref()
, que es capaz de manejar casos particulares donde la matriz no es diagonalizable o se requieren permutaciones de renglones.
A =
4 -1 1 -1
2 3 -1 5
-1 2 3 0
ans =
1.0000 0 0 0.2500
0 1.0000 0 1.2500
0 0 1.0000 -0.7500
Si esta entrada te ha gustado, no olvides suscribirte y regalarnos un comentario. ¡Hasta la próxima!