Resolución matricial de sistemas lineales

En primer lugar, vamos a recordar la forma habitual de resolver sistemas de ecuaciones con Maxima. Tomamos como ejemplo el siguiente sistema lineal de cinco ecuaciones con cinco incógnitas:

\[ \left\{ \begin{array}{lcl} 5 x-4 y+3 z+4 v-w & = & 3 \\ x+y+z+ \frac{w}{3} & = & \frac{1}{2} \\ 7 z+4 v-y+4 w & = & -8 \\ x-y-z-v-w & = & \frac{5}{7} \\ w+x-z-3 v+6 y & = & 9 \end{array} \right. \]

Utilizamos para resolverlo la función solve,

sistema: 
  [ 5*x-4*y+3*z+4*v-w = 3,
    x+y+z+w/3 = 1/2,
    7*z+4*v-y+4*w = -8,
    x-y-z-v-w = 5/7,
    w+x-z-3*v+6*y = 9 ]$

solve(sistema, [v,w,x,y,z]);

\[ \left[ \left[ v={{3645}\over{1778}} , w={{1845}\over{508}} , x={{ 10109}\over{3556}} , y={{1301}\over{1778}} , z=-{{7619}\over{1778}} \right] \right] \]

Nos planteamos resolver el mismo sistema matricialmente. Para ello obtenemos en primer lugar la matriz \(A\) de coeficientes y la matriz columna \(B\) de términos independientes. La solución al sistema \(A X = B\) vendrá dada por

\[X = A^{-1} B.\]

Este procedimiento lo podemos realizar con Maxima. Las matrices \(A\) y \(B\) las podemos escribir a mano, pero como ya tenemos las ecuaciones de forma algebraica, podemos utilizar la función coefmatrix para extraer los coeficientes,

A: coefmatrix(sistema, [v,w,x,y,z]);

\[ \pmatrix{4&-1&5&-4&3\cr 0&{{1}\over{3}}&1&1&1\cr 4&4&0&-1&7\cr -1&- 1&1&-1&-1\cr -3&1&1&6&-1\cr } \]

A continuación extraemos la matriz de términos independientes,

B: transpose(matrix(map(rhs, sistema)));

\[ \pmatrix{3\cr {{1}\over{2}}\cr -8\cr {{5}\over{7}}\cr 9\cr } \]

La sentencia anterior es una composición de funciones algo críptica. En primer lugar, se extraen los miembros derechos de las igualdades utilizando la función rhs, la lista resultante se formatea como una matriz fila que luego se transpone pasándola a matriz columna, dotándole de las dimensiones apropiadas para efectuar el producto matricial del siguiente paso.

Finalmente, resolvemos el sistema matricialmente,

A^^-1 . B;

\[ \pmatrix{{{3645}\over{1778}}\cr {{1845}\over{508}}\cr {{10109 }\over{3556}}\cr {{1301}\over{1778}}\cr -{{7619}\over{1778}}\cr } \]

Así, hemos obtenido el mismo resultado de más arriba en forma de matriz columna. El método descrito aquí es conveniente cuando disponemos de las matrices de coeficientes y de términos independientes de un sistema lineal compatible determinado.


© 2016, TecnoStats.