Formare il complemento di Schur
Supponiamo di aver permutato e partizionato la tua matrice nel modulo
A = ( A11UN21UN12UN22) ,
tale che contiene i tuoi gradi di libertà di interesse ed è molto più piccolo di A 11 , quindi si può formare il complemento di SchurUN22UN11
S22: = A22- A21UN- 111UN12,
o attraverso una fattorizzazione LU parziale corretta o la formula esplicita, e quindi può essere compreso nel seguente senso:S22
S22x = y→( A11UN21UN12UN22) ( ⋆X) = ( 0y) ,
dove rappresenta la parte "non interessante" della soluzione. Pertanto, purché un lato destro che sia solo diverso da zero nei gradi di libertà del complemento di Schur S 22 , dobbiamo solo risolvere contro S 22 per ottenere la parte della soluzione corrispondente a quei gradi di libertà.⋆S22S22
Complessità computazionale in caso denso non strutturato
Impostazione N all'altezza di e n all'altezza di A 22 , allora il metodo standard per calcolare S 22 è di primo fattore L 11 U 11 : = A 11 (Ignoriamo pivotante per ora) in circa 2 / 3 ( N - n ) 3 lavori, quindi da formareUNnUN22S22L11U11: = A112 / 3 ( N- n )3
S22: = A22- ( A21U- 111)(L−111A12)=A22−A21A−111A12
usando due solubili triangolari che richiedono lavori ciascuno, quindi eseguendo l'aggiornamento ad A 22 in 2 n 2 ( N - n ) .n(N−n)2A222n2(N−n)
Pertanto, il lavoro totale è di circa . Quando n è molto piccola, N - n ≈ N , quindi il costo può essere vista circa 2 / 3 N 3 , che è il costo di una fattorizzazione completa.2/3(N−n)3+2n(N−n)2+2n2(N−n)nN−n≈N2/3N3
Il vantaggio è che, se c'è un numero molto grande di lati di destra da risolvere con lo stesso sistema di equazioni, allora potrebbe essere potenzialmente riutilizzato un gran numero di volte, dove ogni soluzione richiederebbe solo 2 n 2 lavori (piuttosto che lavorare con 2 N 2 ) se S 22 è preso in considerazione.S222n22N2S22
Complessità computazionale nel caso (tipico) scarso
Se il tuo sistema rado è nato da un qualche tipo di differenza finita o approssimazione di elementi finiti, i risolutori sparsi-diretti saranno quasi sicuramente in grado di sfruttare parte della struttura; Sistemi 2d possono essere risolti con lavoro e O ( N log N ) immagazzinamento, mentre i sistemi 3D possono essere risolti con O ( N 2 ) lavoro e O ( N 4 / 3 ) di stoccaggio. I sistemi fattorizzati possono quindi essere risolti con la stessa quantità di lavoro dei requisiti di archiviazione.O ( N3 / 2)O (NlogN)O ( N2)O ( N4 / 3)
Il punto di evidenziare le complessità computazionali è che, se e hai un sistema 2d, quindi poiché il complemento di Schur sarà probabilmente denso, la complessità della risoluzione dato il complemento di Schur fattorizzato saràO(n2)=O(N), a cui manca solo un fattore logaritmico rispetto alla soluzione completa sistema! In 3d, richiedeO(N)opera invece diO(N 4 / 3 ).n ≈ N--√O ( n2) = O ( N)O (N)O ( N4 / 3)
È quindi importante tenere presente che, nel tuo caso in cui , ci saranno risparmi significativi solo se lavori in diverse dimensioni e hai molti lati destri da risolvere.n = N--√