Problemi in cui il gradiente coniugato funziona molto meglio di GMRES


17

Sono interessato ai casi in cui il gradiente coniugato funziona molto meglio del metodo GMRES.

In generale, CG è la scelta preferibile in molti casi di SPD (simmetrico-positivo-definito) perché richiede meno memoria e il limite teorico al tasso di convergenza per CG è il doppio di quello GMRES. Ci sono problemi in cui tali tassi sono effettivamente osservati? Esiste una caratterizzazione dei casi in cui GMRES ha prestazioni migliori o paragonabili a CG per lo stesso numero di spmv (moltiplicazioni sparse di matrice-vettore).

Risposte:


8

Una cosa che CG ha a suo favore è che non sta minimizzando la norma discreta per i suoi polinomi residui (cosa fa GMRES). Invece sta riducendo al minimo una norma indotta da matrice, e molto spesso questa norma indotta da matrice finisce per essere molto vicina alla norma energetica per le discretizzazioni di problemi fisici, e spesso questa è una norma molto più ragionevole per misurare l'errore a causa delle proprietà di conservazione in arrivo dalla fisica.l2

Puoi effettivamente ottenere questo tipo di effetto anche con GMRES se eseguire una fattorizzazione Cholesky di una matrice di massa non è troppo costoso, puoi forzare i prodotti interni ad essere i prodotti energetici interni che desideri.

Quindi i casi in cui ci si dovrebbe aspettare che CG si comporti in modo molto diverso da GMRES allora è quando le costanti implicite nell'equivalenza della norma sono molto diverse. Questo può essere vero, ad esempio, in un metodo spettrale di Galerkin di alto ordine in cui la norma discreta utilizzata in GMRES considera tutti i gradi di libertà uguali, quando in realtà i gradienti polinomiali sono più netti vicino ai confini (quindi clustering dei nodi), e così le costanti di equivalenza della norma tra quella norma e dicono che la norma continua data dalla matrice di massa può essere molto grande.L 2l2L2


Volevo fare un esempio qui con un metodo di ordine elevato e storie di convergenza di CG, GMRES e GMRES + trucco di Cholesky .. ma sfortunatamente l'unico codice che ho a portata di mano per problemi del secondo ordine è DG della varietà non simmetrica .. quindi CG non è applicabile, mi piacerebbe vederlo in azione.
Reid.Atcheson,

3
Penso che la tua risposta arrivi a qualcosa di importante, ma vorrei che tu chiarissi. In particolare, la domanda è una pura algebra lineare, e la tua risposta parla di norme fisiche e matrici di massa e così via da un PDE numerico. Possiamo dire qualcosa di preciso su come minimizzare in diverse norme all'interno dello stesso spazio Krylov porti a iterazioni diverse?
Andrew T. Barker,

A parte gli esempi numerici, non credo che ci sia stato ancora un attento studio teorico che spieghi come norme diverse producono risposte sostanzialmente diverse. Il problema secondo me è che i risultati ruotano attorno agli asintotici e per un sistema lineare fisso i risultati teorici saranno identici fattori costanti modulo. Se ci sono alcuni studi teorici là fuori mi piacerebbe vederli, ma dopo aver chiesto ad alcuni degli esperti di algebra lineare numerica nel mio dipartimento non sembra che ci sia ancora un'analisi teorica precisa che mostri cosa succede con norme diverse.
Reid.Atcheson,

4

Sospetto che in generale non vi sia molta differenza tra GMRES e CG per una matrice SPD.

Diciamo che stiamo risolvendo con simmetrico positivo definito e la supposizione iniziale e generando iterate con CG e GMRES, chiamandole e . Entrambi i metodi iterativi costruiranno dallo stesso spazio Krylov . Lo faranno in modi leggermente diversi.A x 0 = 0 x c k x g k x k K k = { b , A b , A 2 b , }UNX=BUNX0=0XKcXKgXKKK={B,UNB,UN2B,...}

CG è caratterizzato minimizzando l'errore nella norma energetica indotta da , in modo che A ( A e c k , e c k ) = ( A ( x - x c k ) , x - x c k ) = min y K ( A ( x - y ) , x - y ) .eKc=X-XKcUN

(UNeKc,eKc)=(UN(X-XKc),X-XKc)=minyK(UN(X-y),X-y).

GMRES minimizza invece il residuo e lo fa nella norma discreta , in modo che Ora usando l'equazione dell'errore possiamo anche scrivere GMRES come minimizzare dove voglio sottolineare che questo vale solo per una matrice SPD . Quindi abbiamo CG che minimizza l'errore rispetto alla norma e GMRES minimizza l'errore rispetto alla2 ( r k , r k ) = ( b - A x g k , b - A x g k ) = min y K ( b - A y , b - A y ) . A e k = r k ( r k ,rK=B-UNXKg2

(rK,rK)=(B-UNXKg,B-UNXKg)=minyK(B-UNy,B-UNy).
UNeK=rKA A A 2 A A
(rK,rK)=(UNeKg,UNeKg)=(UN2eKg,eKg)
UNUNUN2norma. Se vogliamo che si comportino in modo molto diverso, intuitivamente avremmo bisogno di una tale che queste due norme siano molto diverse. Ma per SPD queste norme si comporteranno in modo abbastanza simile.UNUN

Per essere ancora più specifici, nella prima iterazione con lo spazio Krylov , sia CG che GMRES costruiranno un'approssimazione del modulo . CG sceglierà e GMRES sceglierà Se è diagonale con le voci e allora come il primo Il passaggio CG diventa il doppio rispetto al primo passaggio GMRES. Probabilmente puoi costruire ex 1 = α b α = ( b , b )K1={B}X1=αB α=(Ab,b)

α=(B,B)(UNB,B)
α=(UNB,B)(UN2B,B).
UN(ε,1,1,1,...)B=(1,1,0,0,0,...)ε0UNB in modo che questo fattore di due differenze continui durante l'iterazione, ma dubito che peggiori di così.

2
Sia . Quindi , e . Quindi , ma . Cioè, il vettore iniziale è già della scala corretta per rendere piccolo il residuo, ma deve essere ridimensionato di per ridurre l'errore. B=(1,ε,0,0,...)|B|=1+εBTUNB=2εBTUN2B=ε1+ε2αCG=ε-1+12~ε-1αGMRES=21+ε2~2ε-1
Jed Brown,

3

Una cosa è che GMRES non viene mai usato ovunque sia possibile applicare CG. Non penso che abbia senso confrontare questi due. Per le matrici SPD, CG è sicuramente il vincitore a causa dei requisiti di archiviazione e dei motivi sopra menzionati. Una domanda che sarebbe interessante è, per trovare un'estensione di CG, che è applicabile ai problemi in cui CG non può essere applicato. Esistono metodi come BiCG-stab che non richiedono una memoria che aumenta linearmente come GMRES, ma la convergenza non è buona come GMRES (alcune volte anche con GMRES riavviato).


2
Esistono schemi IDR che colmano il divario tra GMRES e BiCG in termini di risparmio di memoria, stabilità e convergenza: ta.twi.tudelft.nl/nw/users/gijzen/IDR.html Non sono sicuro di essere d'accordo sul fatto che GMRES non dovrebbe essere usato se CG potesse esserlo. Se riesci a fare una fattorizzazione grossolana di una matrice che induce la tua norma energetica, puoi alimentarla in una iterazione simmetrica di Lanczos e ottenere una soluzione di ricorrenza a tre termini che si comporterà quasi come CG. Naturalmente, CG è l'opzione più semplice, ma l'opzione è disponibile :)
Reid.Atcheson

2
Se usi un Krylov più liscio, ad esempio, è probabilmente preferibile GMRES perché usa una norma più debole che prende di mira gli autovalori più grandi che tendono ad essere una frequenza più alta.
Jed Brown,
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.