Bildung der Schur-Ergänzung
Angenommen, Sie haben Ihre Matrix permutiert und in das Formular partitioniert
A = ( A11A21A12A22),
Damit Ihre Interessenfreiheitsgrade enthält und viel kleiner als A 11 ist , kann man das Schur-Komplement bildenA22A11
S22:=A22−A21A−111A12,
entweder durch eine teilweise rechts aussehende LU-Faktorisierung oder durch die explizite Formel, und dann kann im folgenden Sinne verstanden werden:S22
S22x=y→(A11A21A12A22)(⋆x)=(0y),
Dabei steht für den "uninteressanten" Teil der Lösung. Wenn also eine rechte Seite vorgesehen ist, die in den Freiheitsgraden des Schur-Komplements S 22 nur ungleich Null ist , müssen wir nur gegen S 22 lösen , um den Teil der Lösung zu erhalten, der diesen Freiheitsgraden entspricht.⋆S22S22
Rechenkomplexität in unstrukturierten dichten Fällen
Einstellen auf die Höhe der A und n die Höhe der A 22 , dann wird die Standard - Methode zur Berechnung von S 22 zu ersten Faktor ist L 11 U 11 : = A 11 (mal ignore jetzt Schwenk) etwa in 2 / 3 ( N - n ) 3 arbeiten, dann formenNAnA22S22L11U11:=A112 / 3 ( N−n)3
S22:=A22−(A21U−111)(L−111A12)=A22−A21A−111A12
Verwenden von zwei Dreieckslösungen, die jeweils Arbeit erfordern , und Ausführen der Aktualisierung auf A 22 in 2 n 2 ( N - n ) Arbeit.n(N−n)2A222n2(N−n)
Somit ist die Gesamtarbeit etwa . Wenn n sehr klein ist , N - n ≈ N , so können die Kosten in etwa sein gesehen werden 2 / 3 N 3 , die die Kosten eines vollständigen Faktorisierung ist.2/3(N−n)3+2n(N−n)2+2n2(N−n)nN−n≈N2/3N3
Der Vorteil ist, dass, wenn eine sehr große Anzahl von rechten Seiten mit dem gleichen Gleichungssystem gelöst werden muss, möglicherweise eine große Anzahl von Malen wiederverwendet werden könnte, wobei jede Lösung nur 2 n 2 Arbeit erfordern würde (anstatt 2 N 2 zu arbeiten), wenn S 22 berücksichtigt wird.S222n22N2S22
Rechenaufwand im (typischen) spärlichen Fall
Wenn Ihr Sparse-System aus einer Art Finite-Differenzen- oder Finite-Elemente-Approximation hervorgegangen ist, können Sparse-Direct-Solver mit ziemlicher Sicherheit einen Teil der Struktur ausnutzen. 2D - Systeme können gelöst werden mit Arbeit und O ( N log N ) Speicherung, während 3D - Systeme mit lösenden kann O ( N 2 ) Arbeit und O ( N 4 / 3 ) Lagerung. Die faktorisierten Systeme können dann mit dem gleichen Arbeitsaufwand wie die Speicheranforderungen gelöst werden.O(N3/2)O(NlogN)O(N2)O(N4/3)
Der Punkt, an dem die Komplexität der Berechnungen angesprochen wird, ist der, wenn und Sie haben ein 2d-System. Da das Schur-Komplement wahrscheinlich dicht ist, ist die Komplexität der Lösung angesichts des faktorisierten Schur-KomplementsO(n2)=O(N), wobei nur ein logarithmischer Faktor fehlt,während dasGanze gelöst wird System! In 3d, es erfordertO(N)Arbeits anstelle vonO(N 4 / 3 ).n≈N−−√O(n2)=O(N)O(N)O(N4/3)
Es ist daher wichtig zu berücksichtigen, dass in Ihrem Fall , es gibt nur signifikante Einsparungen, wenn Sie in mehreren Dimensionen arbeiten und viele rechte Seiten zu lösen haben.n=N−−√