Die schnelle und die rückwärtsstabile (links) Matrix invers


10

Ich muss viele Matrix-Inversen (für die polare Newton-Iterationszerlegung) mit einer sehr geringen Anzahl entarteter Fälle ( ) berechnen .3×3<0.1%

Explizite Inverse (über Matrix-Minderjährige geteilt durch Determinante) scheinen zu funktionieren und sind ungefähr ~ 32 ~ 40 fusionierte Flops (abhängig davon, wie ich den Kehrwert der Determinante berechne). Ohne Berücksichtigung des Det-Skalierungsfaktors sind es nur 18 Fused Flops (jedes der 9 Elemente hat die Form ab-cd, 2 Fused Flops).

Frage:

  • Gibt es eine Möglichkeit, die Inverse von mit weniger als 18 (mit beliebiger Skala) oder 32 (mit der richtigen Skala, unter Berücksichtigung von reziproken 1 op) fusionierten Flops zu berechnen ?3×3
  • Gibt es eine wirtschaftliche Möglichkeit (unter Verwendung von ~ 50 f-Flops), eine rückwärtsstabile linke Inverse einer Matrix zu berechnen?3×3

Ich verwende Floats mit einfacher Genauigkeit (iOS-Spiel). Die Rückwärtsstabilität ist für mich ein interessantes neues Konzept und ich möchte experimentieren. Hier ist der Artikel , der den Gedanken provoziert hat.


Was ist mit der Verwendung des Cayley-Hamilton-Theorems für die Umkehrung?
Nicoguaro

1
Wenn dies für Sie ein solcher Engpass ist, könnte ein anderer Algorithmus für die polare Zerlegung in diesem Fall schneller sein? Zum Beispiel über SVD? Oder die Newtonsche Methode wie in 3.3 von eprints.ma.man.ac.uk/694/01/covered/MIMS_ep2007_9.pdf beschleunigen ?
Kirill

Antworten:


5

Ich werde versuchen, meine Gedanken über die erste Frage bezüglich der schnellen Umkehrung zu machen3×3 . Erwägen

A=[adgbehcfi]

Da die Matrizen klein und sehr allgemein sind (keine bekannte Struktur, Nullen, relative Skalen der Elemente aufweisen), denke ich, dass es unmöglich wäre, einen Algorithmus für eine beliebige Skala (ohne ) invers zu geben ist schneller als 18 fusionierten Flops, wie jeder von 9 Elementen 2 fusionierten Flops erfordert, und alle Produkte sind einzigartig, nicht vor Details bereitgestellt ‚s Einträge . Hier bezeichnet das Adjugat (Transponierung von Cofaktoren), das im Wesentlichen ein ist invers mit "beliebiger Skala" (vorausgesetzt, die Inverse existiert).1/det(A)Aa,,i

A1det(A)=adj(A)=[eifhdifggedhbichaicgahbgcebfafcdaebd]
adj(A)

Einige Berechnungen können jedoch zur Berechnung von wiederverwendet werden . Wenn ich es über die erste Spalte erweitere (es gibt 5 weitere Auswahlmöglichkeiten): Beachten Sie, dass (* ) wurde bereits während der Auswertung von berechnet . Der Kehrwert der Determinante kann also in 4 zusätzlichen fusionierten Flops berechnet werden (wenn Kehrwert als 1 Flop betrachtet wird).det(A)

det(A)=a(eifh)+b(fgdi)+c(dhge)=a(eifh)b(difg)c(gedh)
adj(A)1/det(A)

Nun sollten alle 9 Elemente des durch den bereits erhaltenen Kehrwert der Determinante skaliert werden, wobei weitere 9 fusionierte Flops hinzugefügt werden.adj(A)

So,

  1. Berechne in 18 fusionierten Flopsadj(A)
  2. Berechnen Sie in 3 fusionierten Flops mit Einträgen von bereits berechnetemdet(A)adj(A)
  3. Finden Sie (unter der Annahme von 1 Flop).1det(A)
  4. Skalieren Sie jedes Element von bereits berechnetem mit in weiteren 9 fusionierten Flops.adj(A)1det(A)

Das Ergebnis sind 18 + 3 + 1 + 9 = 31 fusionierte Flops . Sie haben Ihre Art der Berechnung der Determinante nicht beschrieben, aber ich denke, 1 zusätzlicher Flop kann gespeichert werden. Oder es kann verwendet werden, um die Prüfung in Schritt 3 durchzuführen , wobei die Toleranz für einen entarteten (nicht invertierbaren) Fall ist, was zu 32 fusionierten Flops führt (vorausgesetzt, es ist 1 Flop).|det(A)|>ϵϵif

Ich glaube nicht, dass es einen schnelleren Weg gibt, die Umkehrung einer allgemeinen Matrix zu berechnen, da alle verbleibenden Berechnungen eindeutig sind. Die Verwendung von Cayley-Hamilton sollte aus Geschwindigkeitssicht nicht hilfreich sein, da im Allgemeinen neben einigen anderen Operationen die Berechnung von für eine Matrix erforderlich ist.3×3A23×3

NB:

  • Diese Antwort befasst sich nicht mit der numerischen Stabilität
  • Das mögliche Potenzial zur Vektorisierung und Optimierung des Speicherzugriffsmusters wird ebenfalls nicht erörtert
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.