miércoles, 21 de diciembre de 2022

Álgebra lineal con GNU Octave: un apoyo para estudiar bien y con motivación

El software matemático GNU Octave —pertenece al software libre, y por tanto, es gratuito— es una valiosa herramienta empleada en el cálculo y en el análisis numérico —ofrece también un nutrido repertorio de utilidades para la elaboración de gráficas— que no es difícil de empezar a utilizar en Bachillerato si restringimos sus prestaciones al currículo propio de dichos estudios, si bien sus posibilidades van mucho más allá, orientándose realmente a los estudios universitarios, incluso a la investigación. Para animaros a que lo utilicéis, en este ejemplo muestro cómo resolver un sistema de ecuaciones lineales compatible determinado empleando la reducción de Gauss. Es claro que no podréis usar esta herramienta de apoyo en los exámenes de acceso a la universidad y en los exámenes ordinarios (por lo menos, de momento), pero os ayudará enormemente cuando estudiéis la asignatura en vuestra casas, permitiéndoos investigar en los conceptos y procedimientos, así como contrastar, comprobar o, simplemente, saltaros los procedimientos rutinarios (ya aprendidos) para resolver problemas más interesantes.

Consideremos el siguiente sistema de ecuaciones lineales con tres incóngitas $$\left.\begin{matrix}x&+&y&+&z&=&1 \\ x&-&2y&+&3z&=&2 \\ x&+&3y&-&z&=&3\end{matrix}\right\}$$ que en forma matricial puede escribirse de la forma $$\begin{pmatrix} 1 & 1 & 1 \\ 1 & -2 & 3 \\ 1 & 3 & -1 \end{pmatrix}\,\begin{pmatrix} x \\ y \\ z\end{pmatrix}=\begin{pmatrix} 1 \\ 2 \\ 3\end{pmatrix}$$ La matriz (ampliada) de los coeficientes del sistema es $$A=\left(\begin{array}{ccc|c} 1&1&1&1 \\ 1&-2&3&2 \\ 1&3&-1&3 \end{array}\right) $$

Mediante el uso de la herramienta GNU Octave [3] voy a resolver el sistema escalonando por Gauss la matriz ampliada, con pivotamiento por columnas, obteniendo así una matriz equivalente (en cuanto a la solución del sistema) de tipo triangular superior $U$ tal que $U^{\top}U=A$. Con Octave es tan cómodo como hacer los siguiente:

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

   1   1   1   
   1  -2   3  
   1   3  -1   
  
  % Obtengo el rango de la matriz de los coeficientes
  >> rank(A)
  ans=3
 
 
 >> A_e=([1,1,1,1;1,-2,3,2;1,3,-1,3])
  A_e =

   1   1   1   8	   
   1  -2   3  -3
   1   3  -1  -4
 
 % Obtengo el rango de la matriz ampliada 
 % con los términos independientes
 >> rank(A_e)
 ans=3
 
 % Analizo el sistema según el tipo de solución
 % (teorema de Rouché-Fröbenius):
 % Como el rango de A y de A_e coinciden,
 % el sistema es compatible,
 % y siendo dicho rango igual a 3,
 % al coincidir con el número de incógnitas,
 % el sistema es compatible determinado
 
 
 % Obtengo la matriz reducida inferior y superiormente, 
 % y, también, normalizo los elementos de la diagonal
 % principal (matriz reducida de Gauss):
 >> U=rref(A_e)
  U =

   1   0   0   8
   0   1   0  -3
   0   0   1  -4 
   
 % Obsérvese que a la vista de la matriz ampliada reducida
 % es evidente cuáles son los rangos 
 % (contabilizando el número de filas no identicamente nulas)
 % que ya se habían calculado 
 % expresamente con anterioridad (con la instrucción rank(.))
 % paso éste que es, por tanto, prescindible
   
   
  
esto es, se obtiene la matriz reducida $$\left(\begin{array}{ccc|c} 1&0&0&8 \\ 0&1&0&-3 \\ 0&0&1&-4 \end{array}\right) $$ Así, un sistema equivalente en solución al sistema original es $$\left.\begin{matrix}x&&&&&=&8 \\ &&y&&&=&-3 \\ &&&&z&=&-4\end{matrix}\right\}$$ que nos da directamente la solución.

% Compruebo ahora la solución encontrada, 
% sustituyendo en las ecuaciones del sistema original
% los valores de las incóngitas que acabamos de calcular

% Fijo los valores encontrados 
% a las variables (del programa) x, y, z
% que defino al paso:

  >> x = 8
  ans  = 8
  >> y = -3
  ans = -3
  >> z = -4
  ans = -4

% Sustituyo en la primera ecuación
% En efecto:

% Los sustituyo en la primera ecuación
>> x+y+z
ans = 1
% que, en efecto, es el valor 
% del término independiente de la misma


% Los sustituyo en la segunda ecuación
>> x-2*y +3*z
ans = 2
% que, en efecto, es el valor 
% del término independiente de la misma

% Los sustituyo en la tercera ecuación
>> x+3*y-z
ans = 3
% que, en efecto, es el valor 
% del término independiente de la misma.
% Y con esto, hemos terminado.

$\diamond$

Referencias

  [1] https://octave.org/. Página web de desarrollo y descarga del programa de cálculo GNU Octave.
  [2] John W. Eaton; David Bateman; Søren Hauberg; Rik Wehbring, Free Your Numbers, https://www.gnu.org/software/octave/octave.pdf. Manual actualizado de la herramienta GNU Octave.
  [3] https://octave.org/

No hay comentarios:

Publicar un comentario

Gracias por tus comentarios