Je résout pour une énorme matrice définie positive clairsemée utilisant la méthode du gradient conjugué (CG). Est-il possible de calculer le déterminant de utilisant les informations produites lors de la résolution?A A
Je résout pour une énorme matrice définie positive clairsemée utilisant la méthode du gradient conjugué (CG). Est-il possible de calculer le déterminant de utilisant les informations produites lors de la résolution?A A
Réponses:
Le calcul du déterminant d'une matrice clairsemée est généralement aussi coûteux qu'une résolution directe, et je suis sceptique que CG serait d'une grande aide pour le calculer. Il serait possible d'exécuter CG pour itérations (où est ) afin de générer des informations pour l'ensemble du spectre de , puis de calculer le déterminant comme le produit des valeurs propres, mais ce serait à la fois lent et numériquement instable.A n × n A
Ce serait une meilleure idée de calculer la factorisation de Cholesky directe clairsemée de votre matrice, disons , où est triangulaire inférieur. Alors où est simplement le produit des entrées diagonales de la matrice triangulaire inférieure puisque les valeurs propres d'une matrice triangulaire se trouvent le long de sa diagonale. L det ( A ) = det ( L ) det ( L H ) = | det ( L ) | 2 , det ( L ) L
Dans le cas d'une matrice générale non singulière, une décomposition LU pivotante doit être utilisée, disons , où est une matrice de permutation, de sorte que Puisque est une matrice de permutation, , et, par construction, aura généralement une diagonale de tous ceux, ce qui implique que . Vous pouvez donc calculer commeP det ( A ) = det ( P - 1 ) ⋅ det ( L )P det ( P ) = ± 1 L det ( L ) = 1 det ( A ) ± det ( U )
Sans (encore) expliquer pourquoi et comment les déterminants sont mauvais, supposons que votre opérateur n'est pas facilement factorisable ou simplement indisponible sous forme de matrice et que vous avez vraiment besoin d'estimer son déterminant.
Vous pouvez probablement inverser la façon dont cette estimation du déterminant se produit dans l'implémentation standard de CG en suivant attentivement la section 6.7.3 du livre.