Perché bloccare un punto per rimuovere uno spazio nullo è negativo?


13

Un'equazione di Poisson con tutte le condizioni al contorno di Neumann ha un unico spazio nullo dimensionale costante. Quando si risolve tramite un metodo Krylov, lo spazio nullo può essere rimosso sottraendo la media della soluzione ogni iterazione o bloccando il valore di un singolo vertice.

L'inserimento di un singolo vertice ha il vantaggio della semplicità ed evita anche una riduzione globale aggiuntiva per proiezione. Tuttavia, è generalmente considerato negativo a causa del suo effetto sul condizionamento. Pertanto, ho sempre sottratto mezzi.

Tuttavia, i due metodi differiscono l'uno dall'altro al massimo da una correzione di grado 2, quindi secondo (1) dovrebbero convergere in quasi lo stesso numero di iterazioni (almeno nell'aritmetica esatta). Questo ragionamento è corretto o c'è un motivo in più per cui il blocco del punto è negativo (forse l'aritmetica inesatta)?

(1): In che modo le modifiche di basso rango influenzano la convergenza del metodo Krylov?

Risposte:


9

Le tue argomentazioni si applicano naturalmente al caso senza condizioni. Il motivo per cui non consiglio di appuntare è che confonde le norme e il precondizionamento. Se conosci la dimensione di un tipico valore diagonale, puoi ridimensionare l'equazione banale per il nodo appuntato in modo che le norme tornino ragionevoli.

Per vedere le conseguenze sul precondizionamento, dobbiamo distinguere tra diversi metodi per far rispettare il pinning. Considero due dei più popolari.

  1. Se il pinning si ottiene "azzerando una riga" (impostando una riga uguale a una riga ridimensionata dell'identità), introduce l'asimmetria che limita la scelta del metodo Krylov e può confondere i precondizionatori (ad esempio fare in modo che il multigrid algebrico scelga un aggregato scadente).
  2. Se anche la colonna corrispondente viene azzerata (con il contributo "sollevato" sul lato destro), l'effetto è piuttosto benigno.

Si noti che gli operatori di interpolazione per multigrid potrebbero dover essere regolati per eseguire il pinning in modo compatibile su ogni livello. Se non ti dispiace la complessità introdotta implementando il pinning con un buon ridimensionamento, è un buon approccio. Nella maggior parte dei casi, scopriamo che è più invadente e soggetto a errori implementare il pinning in modo non distruttivo piuttosto che fornire uno spazio quasi nullo. Avendo attorno la matrice originale (singolare), la libreria del risolutore può anche verificare che lo spazio nullo fornito sia effettivamente uno spazio nullo, proteggendo così da un errore comune.

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.