Diretrizes para pré-condicionadores aninhados

9

Considere a situação em que você deseja resolver um sistema linear usando um método pré-condicionado de Krylov, mas a aplicação do pré-condicionador envolve a solução de um sistema auxiliar, o que é feito com outro método pré-condicionado de Krylov.

  • Em um extremo, você pode executar a resolução interna para convergência em cada etapa da resolução externa.

  • Por outro lado, você não poderia resolver o problema de maneira alguma, mas substituí-lo pelo pré-condicionador interno.

  • Em algum lugar no meio, você pode truncar o loop interno de Krylov após um número fixo de iterações ou após uma certa tolerância ser alcançada.

Empiricamente, deparei-me com situações em que o primeiro extremo é melhor e situações diferentes em que o segundo extremo é melhor (em termos de custo total). No entanto, não consigo encontrar uma razão clara para certas situações favorecerem uma estratégia em detrimento de outra.

Existe alguma orientação ou teoria sobre quando essas estratégias diferentes são preferíveis?

Nick Alger
fonte
4
Para pelo menos a terceira situação (intermediária) da sua lista, um bom lugar para começar pode ser Simoncini e Szyld, Métodos de subespaço de Krylov flexíveis internos e externos, SIAM J. Numer. Anal. 40 pp. 2219-2239.
Andrew T. Barker
Obrigado pela referência, estou curioso para ver o que eles têm lá. Estranhamente, na prática, descobri que fazer diferentes formas da situação intermediária fornece de longe o pior desempenho. Se o número de tolerância / iteração for fixo, o solucionador externo tende a travar no nível de erro da tolerância interna. Começar com uma grande tolerância interna e diminuí-la à medida que o método externo progride também parece ter um desempenho pior do que apenas definir a tolerância interna pequena para começar.
Nick Alger
Você está usando métodos flexíveis de Krylov? Os resultados que você descreve são o que eu esperaria se você não fosse. A situação intermediária é exatamente aquela em que o pré-condicionador é (ligeiramente) diferente a cada iteração, ou seja, quando são necessários métodos flexíveis de Krylov.
Andrew T. Barker

Respostas:

1

Esta questão está aberta há muito tempo, mas acho que ainda merece ser respondida.

x~=K(A,P,τ,N;b)KAx=bNτPA1Kb

K(A,P,0,;)Ax=bK(A,P,0,;b)=A1bbbr(0)=bAx(0)K(A,P,τ,N;)Nτ

K(A,P,τ,N;)A

Isso contrasta com muitos outros métodos usados ​​para pré-condição: por exemplo, uma etapa SSOR é uma operação linear no vetor ao qual você a aplica, assim como todos os outros métodos que aplicam uma etapa de uma iteração de ponto fixo.

O problema fundamental agora é que a maioria dos métodos espaciais de Krylov exige que o pré-condicionador seja um operador linear. Eles simplesmente não convergirão se o pré-condicionador não for linear, explicando sua observação. Por outro lado, existem variações de alguns métodos espaciais de Krylov - normalmente prefixados pela palavra "Flexível", como F-GMRES em "GMRES flexível" - que resolvem isso e podem lidar com pré-condicionadores não lineares operadores. Essas variantes flexíveis dos métodos originais ainda convergirão, e geralmente são métodos poderosos quando combinadas com bons pré-condicionadores (mas não lineares).

Wolfgang Bangerth
fonte