Was ist bei einer positiv definierten symmetrischen Matrix der schnellste Algorithmus zur Berechnung der inversen Matrix und ihrer Determinante? Bei Problemen, an denen ich interessiert bin, beträgt die Matrixdimension 30 oder weniger.
- Hohe Genauigkeit und Geschwindigkeit sind wirklich notwendig. (Millionen Matrizen werden durchgeführt)
- Die Determinante ist notwendig. Bei jeder Berechnung wird nur ein Element der iversen Matrix benötigt. Vielen Dank!
algorithms
matrix
Aufträge
quelle
quelle
Antworten:
Wie WolfgangBangerth feststellt, ist die Leistung der Matrixinversion normalerweise kein Problem, es sei denn, Sie haben eine große Anzahl dieser Matrizen (Millionen, Milliarden).
Wenn Geschwindigkeit ein Problem ist, sollten Sie die folgenden Fragen beantworten:
Unter der Annahme ist von kann die Cholesky - Zerlegung in der Umgebung berechnet werden - Flop, die die Hälfte über die Kosten eine LU - Zerlegung ist. Ein solcher Algorithmus würde jedoch nicht als "schnell" angesehen. Eine randomisierte LU-ZerlegungA n n n3/3 Dies könnte ein schnellerer Algorithmus sein, der in Betracht gezogen werden sollte, wenn (1) Sie wirklich eine große Anzahl von Matrizen faktorisieren müssen, (2) die Faktorisierung wirklich der begrenzende Schritt in Ihrer Anwendung ist und (3) jeder Fehler bei der Verwendung eines randomisierten Algorithmus auftritt akzeptabel. Ihre Matrizen sind wahrscheinlich zu klein, als dass sich spärliche Algorithmen lohnen könnten. Die einzigen anderen Möglichkeiten für schnellere Algorithmen würden eine zusätzliche Matrixstruktur (z. B. gebändert) oder die Ausnutzung der Problemstruktur erfordern (z. B. können Sie Ihren Algorithmus geschickt umstrukturieren, sodass Sie keine müssen länger eine inverse Matrix oder ihre Determinante berechnen). Effiziente Determinantenalgorithmen sind ungefähr die Kosten für die Lösung eines linearen Systems innerhalb eines konstanten Faktors. Daher gelten dieselben Argumente für lineare Systeme auch für die Berechnung von Determinanten.
quelle