precondizionatore per un metodo privo di matrice per risolvere Ax = b


9

Devo risolvere Ax = b, ma mi rendo conto che anche se è scarso, la memorizzazione dei coefficienti di matrice del mio problema richiederà troppa memoria. Quindi ora sto prendendo in considerazione l'utilizzo di un metodo senza matrice, perché gli stessi coefficienti appaiono molto tempo nella matrice, quindi potrei usare il mio schema di archiviazione privato (e aumentare l'efficienza della cache a proposito).

Sto guardando PetsC, che fornisce l'interfaccia per tali operatori lineari privi di matrice, ma quello che non capisco davvero, è come il precondizionatore viene quindi calcolato da PetsC? O dovrei fornire il mio precondizionatore? In tal caso, sono disponibili strumenti o destinatari per costruire il precondizionatore da un operatore lineare privo di matrice?

Maggiori informazioni sul mio operatore: è asimmetrico, non diagonalmente dominante, ma dominato da alcune bande laterali (ma non è nemmeno diagonale fasciata)

Risposte:


7

Dovrai ottenere il tuo precondizionatore. Se conosci la matrice, non dovrebbe essere tremendamente difficile implementare qualcosa come un precondizionatore SSOR, per esempio. Se conosci qualcos'altro sul problema, ad esempio che proviene da un PDE la cui soluzione può essere ben approssimata su una mesh più grossolana, puoi anche considerare la costruzione di precondizionatori limitando il problema alla mesh più grossolana, risolvendo lì ed estendendo il soluzione indietro a quella originale. La restrizione e il prolungamento possono essere implementati come operazioni senza matrice.

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.