martes, 20 de diciembre de 2022

Cálculo rápido del determinante de una matriz cuadrada $A$, dada ésta factorizada como $A=LU$

Es sabido que dadas dos matrices cuadradas y del mismo orden, $A$ y $B$, se tiene que $\text{det}(AB)=\text{det}(A)\cdot \text{det}(B)$; por tanto, si una matriz $M$ viene ya expresada como el producto de una matriz triangular inferior por una matriz triangular superior (factorización $M=LU$) —ya se trate de la factorización de Crout o bien de la de Doolittle—, el cálculo del determinante de $M$ es muy rápido.

Teniendo en cuenta que el determinante de una matriz cuadrada triangular es igual al producto de los elementos de su diagonal principal, entonces el cálculo del determinante de $\text{det}(M)=\text{det}(L)\cdot \text{det}(U)$ requiere únicamente $n-1$ multiplicaciones (el producto de los elementos de la diagonal principal del factor que no tenga unos en la misma), ya que la otra matriz factor tiene determinante igual a $1$, habida cuenta de que los elementos de su diagonal principal son todos ellos unos.

Ejemplo con una matriz $M=LU$ (factorizada por el m. de Doolittle: matriz $L$ con unos en la diagonal principal)

Con $2$ multiplicaciones podemos calcular el determinante de una matriz cuadrada de orden $3$, siempre que conozcamos la factorización $LU$ de la misma. Hago los cálculos de comprobación con GNU Octave:

% Sea la matriz   
   A=[1,-1,2;1,2,2;1,1,-1]
A =

   1  -1   2
   1   2   2
   1   1  -1

>> [L,U]=lu(A)
L =

   1.0000        0        0
   1.0000   1.0000        0
   1.0000   0.6667   1.0000

U =

   1  -1   2
   0   3   0
   0   0  -3


% det(L)=1 (no hace falta hacer ningún cálculo, pues
% de antemano conocemos este resultado, puesto que
% L es una matriz diagonal con unos en la diagonal
% principal, y, por tanto, su determinante es igual a 1)

% A continuación vemos las dos multiplicaciones que 
% he comentado arriba:
% det(U)=1·3·(-3)=(1\cdot 3)\cdot (-3)=-9

% En efecto, por el algoritmo por defecto:
>> det(U)
ans = -9

% Así pues det(L)·det(U)=1·(-9)=-9
% en efecto, por el algoritmo por defecto:
>> det(L)*det(U)
ans = -9

% y nótese que, por el algoritmo por defecto,
>> det(A)
ans = -9

  

$\diamond$

-oOo-

Referencias

[1] J.F. Fernando; J.M. Gamboa; J.M. Ruiz, Álgebra lineal (vol. 1), Sanz y Torres, Madrid, 2011
[2] F. García; A. Nevot, Análisis numérico, Paraninfo, Madrid, 1992
[3] John W. Eaton; David Bateman; Søren Hauberg; Rik Wehbring, Free Your Numbers (Manual de GNU Octave), https://www.gnu.org/software/octave/octave.pdf

No hay comentarios:

Publicar un comentario