Estou resolvendo para uma enorme matriz definida positiva esparsa A usando o método do gradiente conjugado (CG). É possível calcular o determinante de A usando as informações produzidas durante a resolução?
linear-algebra
optimization
krylov-method
conjugate-gradient
Manuel Schmidt
fonte
fonte
Respostas:
Computar o determinante de uma matriz esparsa é tipicamente tão caro quanto uma solução direta, e sou cético quanto ao fato de que o CG seria de grande ajuda para computá-lo. Seria possível executar o CG para iterações (onde A é n × n ) para gerar informações para todo o espectro de A e depois calcular o determinante como o produto dos autovalores, mas isso seria lento e numericamente instável.n UMA n × n A
Seria uma idéia melhor calcular a fatoração de Cholesky esparsa direta de sua matriz, digamos , onde L é triangular inferior. Então det ( A ) = det ( L ) det ( L H ) = | det ( L ) | 2 , em que det ( L ) é simplesmente o produto das entradas diagonais da matriz triangular inferior L, uma vez que os valores próprios de uma matriz triangular estão ao longo de sua diagonal.A=LLH L
No caso de uma matriz geral não singular, uma decomposição LU pivotada deve ser usada, digamos, , onde P é uma matriz de permutação, de modo que det ( A ) = det ( P - 1 ) ⋅ det ( L ) ⋅ det ( U ) . Como P é uma matriz de permutação, det ( P ) = ± 1 e, por construção, LPA=LU P
fonte
fonte
Sem entrar (novamente) no porquê e como os determinantes são maus, vamos supor que seu operador não seja facilmente fatorável ou simplesmente não esteja disponível como uma matriz e que você realmente precise estimar seu determinante.
Provavelmente, você pode fazer engenharia reversa de como essa estimativa do determinante ocorre na implementação padrão do CG, seguindo atentamente a Seção 6.7.3 do livro.
fonte
fonte