Para muitas equações diferenciais parciais que surgem na natureza, particularmente com fortes não linearidades ou anisotropias, a escolha de um pré-condicionador apropriado pode ter um grande efeito sobre se o método iterativo converge rapidamente, lentamente ou de modo algum. Exemplos de problemas que são conhecidos por terem pré-condicionadores rápidos e eficazes incluem equações diferenciais parciais fortemente elípticas, nas quais o método multigrid frequentemente alcança rápida convergência. Há vários testes que se pode usar para avaliar a convergência; aqui vou usar a funcionalidade do PETSc como exemplo, pois é provavelmente a biblioteca mais antiga e mais madura para resolver iterativamente sistemas esparsos de equações lineares (e não lineares).
O PETSc usa um objeto chamado KSPMonitor para monitorar o progresso de um solucionador iterativo e decidir se o solucionador convergiu ou divergiu. O monitor usa quatro critérios diferentes para decidir se deve parar. Mais detalhes sobre a discussão aqui podem ser encontrados na página de manual do KSPGetConvergedReason () .
Assumimos notoriamente que o usuário está resolvendo o seguinte sistema de equações para :
Chamamos o palpite atual e definimos o residual base no estilo de pré-condicionamento:A x = b x rx
Ax=b
x^r^
Pré-condicionamento à Esquerda(P−1(Ax−b))
R =P - 1 (A x -b)
r^=P−1(Ax^−b)
Pré-condicionamento Não / Direito(AP−1Px=b)
R =A x -b
r^=Ax^−b
Critérios de convergência
- Tolerância absoluta - O critério de tolerância absoluta é atendido quando a norma do resíduo é menor que a constante predefinida :
atol
∥r^∥≤atol
- Tolerância relativa - O critério de tolerância relativa é atendido quando a norma do resíduo é menor que a norma do lado direito por um fator da constante predefinida : ‖ r ‖ ≤ r t o l ⋅ ‖ b ‖rtol
∥r^∥≤rtol⋅∥b∥
- Outros critérios - A solução iterativa também pode convergir devido à detecção de um pequeno passo ou curvatura negativa.
Critérios de divergência
Iterações máximas - O número de iterações que um solucionador pode realizar é limitado pelas iterações máximas. Se nenhum dos outros critérios tiver sido atendido quando o número máximo de iterações for atingido, o monitor retornará como divergente.
NaN residual - Se em algum momento o residual for avaliado para NaN, o solucionador retornará como divergente.
Divergência da norma residual O monitor retorna como divergente se a qualquer momento a norma do resíduo for maior que a norma do lado direito por um fator da constante predefinida :
‖ r ‖ ≥ d t o l ⋅ ‖ b ‖dtol
∥r^∥≥dtol⋅∥b∥
Divisão do solucionador O próprio método de Krylov pode sinalizar divergências se detectar uma matriz ou pré-condicionador singular.