I sistemi lineari simmetrici diagonali più fissi possono essere risolti in tempo quadratico dopo il pre-calcolo?


21

Esiste un metodo per risolvere sistemi lineari della forma dove è una matrice SPD fissa e sono matrici diagonali positive?k ( D i + A ) x i = b i A D iO(n3+n2k)k(Di+A)xi=biADi

Ad esempio, se ogni è scalare, è sufficiente calcolare la SVD di . Tuttavia, ciò si interrompe per la generale a causa della mancanza di commutatività. A DDiAD

Aggiornamento : le risposte finora sono "no". Qualcuno ha qualche intuizione interessante sul perché? Una mancata risposta significa che non esiste un modo non banale per comprimere le informazioni tra due operatori senza impegno. Non è sorprendentemente sorprendente, ma sarebbe bello capirlo meglio.


SPD = definito semi positivo?
rcollyer,

Sì, anche se il problema è essenzialmente lo stesso senza SPD. Ho aggiunto questo vincolo solo per garantire che i sistemi non siano mai singolari.
Geoffrey Irving il

Risposte:


19

Le risposte positive più vicine alla tua domanda che ho potuto trovare sono le perturbazioni diagonali sparse (vedi sotto).

Detto questo, non conosco alcun algoritmo per il caso generale, anche se c'è una generalizzazione della tecnica che hai citato per i cambiamenti scalari dalle matrici SPD a tutte le matrici quadrate:

Data qualsiasi matrice quadrata , esiste una decomposizione di Schur , dove è unitaria e è triangolare superiore, e A + σ I = U ( T + σ I ) U H fornisce una decomposizione di Schur di A + σ Io . Pertanto, la tua idea di precomputazione si estende a tutte le matrici quadrate attraverso l'algoritmo:A = U T U H U TAA=UTUHUTA+σI=U(T+σI)UHA+σI

  • Calcola al massimo in O ( n 3 ) lavori.[U,T]=schur(A)O(n3)
  • Risolvi ogni tramite x : = U ( T + σ I ) - 1 U H b nell'opera O ( n 2 ) (l'inversione centrale è semplicemente una sostituzione).(A+σI)x=bx:=U(T+σI)1UHbO(n2)

Questa linea di ragionamento si riduce all'approccio che hai menzionato quando è SPD poiché la decomposizione di Schur si riduce a un EVD per matrici normali e l'EVD coincide con l'SVD per le matrici definite positive di Hermitian.A

Risposta all'aggiornamento: fino a quando non avrò una prova, cosa che non faccio, mi rifiuto di affermare che la risposta è "no". Tuttavia, posso dare alcuni spunti sul perché è difficile, così come un'altra sottocassa in cui la risposta è sì.

La difficoltà essenziale è che, sebbene l'aggiornamento sia diagonale, è ancora in generale al completo, quindi lo strumento principale per l'aggiornamento di un inverso, la formula di Sherman-Morrison-Woodbury , non sembra aiutare. Anche se il caso dello spostamento scalare è anche di rango massimo, è un caso estremamente speciale poiché commuta con ogni matrice, come hai detto.

Detto questo, se ogni era scarsa, cioè avevano ciascuno O ( 1 ) nonzeros, allora la formula di Sherman-Morrison-Woodbury produce una soluzione O ( n 2 ) con ogni coppia { D , b } . Ad esempio, con un unico diverso da zero al j esima voce diagonale, in modo che D = δ e j e H j :DO(1)O(n2){D,b}jD=δejejH

[A1+δejejH]1=A1δA1ejejHA11+δ(ejHA1ej),

dove è il j esimo vettore di base di serie .ejj

Un altro aggiornamento: dovrei menzionare che ho provato il precondizionatore che @GeoffOxberry ha suggerito su alcune matrici SPD 1000 × 1000 casuali usando PCG e, forse non a caso, sembra ridurre notevolmente il numero di iterazioni quando | | D | | 2 / | | A | | 2 è piccolo, ma non quando è O ( 1 ) o superiore.A11000×1000||D||2/||A||2O(1)


12

(Di+A)iO(n2log(n))O(mlog(n))m(Di+A)iO(n2log(n)k)O(n3k)

(Di+A)iO(n2k)

A1

Risposta all'aggiornamento : @JackPaulson fa un grande punto di vista dall'algebra lineare numerica e dagli algoritmi. Mi concentrerò invece su argomenti di complessità computazionale.

n

O(nαk)α2.375


3
Devo ancora vedere una dichiarazione concreta di dove potrebbe essere il crossover, ma diverse fonti affidabili hanno affermato che (a parte i problemi di implementazione), Coppersmith-Winograd non può battere i metodi standard per le dimensioni delle matrici che saranno in grado di adattarsi alla memoria nel prossimo futuro (alcuni decenni). Dato che il benchmark Linpack impiega più di un giorno per funzionare sulle migliori macchine attuali, non sembra probabile che Coppersmith-Winograd sarà mai utilizzato nella pratica. Strassen è in realtà pratico per grandi problemi, sebbene sia un po 'meno stabile numericamente.
Jed Brown,

Questo non mi sorprende. +1 per i dettagli di implementazione.
Geoff Oxberry,

6

A+DA

A1=(A+DD)1(A+D)(A+D)1=[(A+D)1(A+DD)]1(A+D)1=[I(A+D)1D]1(A+D)1[I+(A+D)1D](A+D)1

A+D

D0Dminσ(A)

Se lo spostamento nel precondizionatore è molto più grande che nell'operatore, questo metodo tende a produrre un numero di condizione circa la metà di quello del precondizionamento da parte dell'operatore ritardato (nei test casuali che ho eseguito, potrebbe essere migliore o peggiore per una specifica classe di matrici). Quel fattore 2 nel numero di condizione fornisce un fattore di nel conteggio delle iterazioni. Se il costo dell'iterazione è dominato dalle soluzioni con , questo non è un fattore sufficiente per giustificare l'espansione di Taylor del primo ordine. Se l'applicazione della matrice è proporzionalmente costosa (ad es. Hai solo un precondizionatore economico da applicare per ), allora questo metodo del primo ordine può avere senso. A+DA+D2A+DA+D

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.