Die positivsten Antworten auf Ihre Frage, die ich finden konnte, sind für spärliche diagonale Störungen (siehe unten).
Trotzdem kenne ich keine Algorithmen für den allgemeinen Fall, obwohl es eine Verallgemeinerung der Technik gibt, die Sie für Skalarverschiebungen von SPD-Matrizen zu allen Quadratmatrizen erwähnt haben:
Für jede quadratische Matrix existiert eine Schur-Zerlegung A = U T U H , wobei U einheitlich und T oberes Dreieck ist und A + σ I = U ( T + σ I ) U H eine Schur-Zerlegung von A + liefert σ I . Somit erstreckt sich Ihre Vorberechnungsidee über den Algorithmus auf alle Quadratmatrizen:AA=UTUHUTA+σI=U(T+σI)UHA+σI
- Berechnen Sie in höchstens O ( n 3 ) Arbeit.[U,T]=schur(A)O(n3)
- Löse jedes über x : = U ( T + σ I ) - 1 U H b in O ( n 2 ) (die mittlere Inversion ist einfach eine Rücksubstitution).(A+σI)x=bx:=U(T+σI)−1UHbO(n2)
Diese Argumentation reduziert sich auf den Ansatz, den Sie erwähnt haben, wenn SPD ist, da sich die Schur-Zerlegung für normale Matrizen auf eine EVD reduziert und die EVD mit der SVD für positiv-definierte Hermitian-Matrizen übereinstimmt.A
Antwort auf die Aktualisierung:
Bis ich einen Beweis habe, den ich nicht habe, lehne ich es ab, zu behaupten, die Antwort sei "nein". Ich kann jedoch einige Einblicke geben, warum es schwierig ist, sowie einen weiteren Teilfall, in dem die Antwort Ja lautet.
Die wesentliche Schwierigkeit besteht darin, dass das Update zwar diagonal ist, aber im Allgemeinen immer noch den vollen Rang hat. Daher scheint das primäre Tool zum Aktualisieren einer Inversen, die Sherman-Morrison-Woodbury-Formel , nicht zu helfen. Obwohl der Skalarverschiebungsfall auch den vollen Rang hat, ist er ein äußerst spezieller Fall, da er mit jeder Matrix pendelt, wie Sie erwähnt haben.
DO(1)O(n2){D,b}jD=δejeHj
[A−1+δejeHj]−1=A−1−δA−1ejeHjA−11+δ(eHjA−1ej),
ejj
A−11000×1000||D||2/||A||2O(1)