Ich löse für eine riesige, spärlich positive, definitive Matrix Verwendung der Methode des konjugierten Gradienten (CG). Es ist möglich, die Determinante von Verwendung der während der Lösung erzeugten Informationen zu berechnen .A A.
Ich löse für eine riesige, spärlich positive, definitive Matrix Verwendung der Methode des konjugierten Gradienten (CG). Es ist möglich, die Determinante von Verwendung der während der Lösung erzeugten Informationen zu berechnen .A A.
Antworten:
Die Berechnung der Determinante einer spärlichen Matrix ist normalerweise so teuer wie eine direkte Lösung, und ich bin skeptisch, dass CG bei der Berechnung sehr hilfreich sein würde. Es wäre möglich , CG für läuft Iterationen (wobei ist ), um Informationen für das gesamte Spektrum zu erzeugen , und um dann die Determinante als das Produkt der Eigenwerte berechnet werden , aber dies würde sowohl langsam und numerisch instabil.A n × n A.
Es wäre eine bessere Idee, die spärlich direkte Cholesky-Faktorisierung Ihrer Matrix zu berechnen, beispielsweise , wobei ein unteres Dreieck ist. Dann ist wobei ist einfach das Produkt der diagonalen Einträge der unteren Dreiecksmatrix da die Eigenwerte einer Dreiecksmatrix entlang ihrer Diagonale liegen. L det ( A ) = det ( L ) det ( L H ) = | det ( L ) | 2 , det ( L ) L.
Im Fall einer allgemeinen nicht singulären Matrix sollte eine schwenkbare LU-Zerlegung verwendet werden, beispielsweise , wobei eine Permutationsmatrix ist, so dass Da eine Permutationsmatrix ist, ist , und konstruktionsbedingt typischerweise eine Diagonale von allen, was impliziert, dass . Sie können also als berechnen.
Andere haben dies bereits bemerkt, aber ich denke, es ist immer noch erwähnenswert, dass die Determinante fast immer keine nützliche Größe ist, wenn Ihre Matrix groß ist. Das Problem ist, dass große Matrizen meistens Annäherungen an noch größere Dimensionen sind (statistische Stichproben großer Populationen, endliche dimensionale Approximationen an unendlich dimensionale Dinge wie partielle Differentialgleichungen usw.). Nehmen wir an, Ihre Matrix ist und nähert sich in gewisser Weise einem Prozess bei dem und möglicherweise .
Nun wird der Operator auch ein Spektrum haben, und das Spektrum von wird typischerweise in gewissem Sinne mit dem Spektrum von in Beziehung stehen - z. B. nähern sich die Eigenwerte von denen von (eine Teilmenge von) . Dies bedeutet jedoch nicht, dass ungefähr . Wenn zum Beispiel die Eigenwerte von einige der Eigenwerte von , dann ist
Nehmen wir an, dass Ihr Operator entweder nicht leicht faktorisierbar oder einfach überhaupt nicht als Matrix verfügbar ist und dass Sie seine Determinante wirklich schätzen müssen, ohne (erneut) zu erfahren, warum und wie Determinanten böse sind .
Eine Möglichkeit, eine Schätzung der Determinante zu erhalten, besteht darin, eine Implementierung von CG zu verwenden, die direkt auf dem Lanczos-Prozess basiert. Siehe zum Beispiel Algorithmus 6.17 (D-Lanczos) in Saads Buch " Iterative Methoden für spärliche lineare Systeme " (SIAM), Seite 189. Dort wird der Operator semi-explizit berücksichtigt, und Sie können die Determinante der Faktoren als Näherung verwenden der Determinante von . Lassen Sie mich betonen, dass ich nie versucht habe, eine Determinante zu schätzen, und ich habe keine Ahnung, ob das, was ich vorschlage, eine gute Idee ist - wahrscheinlich nicht angesichts aller Probleme, die uns Geister-Eigenwerte geben. Dies fällt Ihnen jedoch beim Lesen Ihrer Frage ein.
Sie können wahrscheinlich rückentwickeln, wie diese Schätzung der Determinante in der Standardimplementierung von CG zustande kommt, indem Sie Abschnitt 6.7.3 des Buches genau befolgen.
Die Determinante der Matrix A kann berechnet werden als wobei - berechnete Schritte sind während der CG-Iteration. Dies funktioniert jedoch nur, wenn . Der Beweis ist der folgende. Sei eine Matrix bestehend aus Vektoren und sei eine Matrix bestehend aus . Durch die Eigenschaft der Determinante . Man beachte nun, dass die Vektoren orthgonal sind und die Vektoren in Bezug auf konjugiert sind