Como pré-condicionar um problema não linear antes da linearização?

8

Quando penso em resolver equações não lineares, geralmente penso em linearizar primeiro e depois aplicar um pré-condicionador à matriz linear. Ocorreu-me que poderia ser possível condicionar as equações não lineares ANTES de serem linearizadas. Existem estratégias gerais para pré-condicionar equações não lineares que são independentes da estrutura do sistema de equações?

Paulo
fonte

Respostas:

7

Certamente, qualquer solucionador não linear aproximado pode ser usado como um pré-condicionador não linear. Por exemplo, se o seu sistema tiver rigidez direcional, você poderá usar o método de disparo 1D como pré-condicionador. Cai e Keyes (2002) Algoritmos de Newton inexatos não-linearmente pré-condicionados fornecem outro exemplo útil.

No PETSc, métodos não lineares, como quasi-Newton , gradientes conjugados não lineares , GMRES não linear (também conhecido como aceleração de Anderson) e Richardson não linear, podem ser usados ​​com um pré-condicionador não linear. O pré-condicionador não linear é qualquer outra SNESimplementação, talvez uma implementação "shell" definida pelo usuário .

Jed Brown
fonte
4

Ao usar um método de gradiente conjugado não linear para resolver um sistema quadrado , minimizando a norma quadrada residual , normalmente vale a pena pré-condicionar o sistema por meio de uma transformação linear, por exemplo, calculado por uma de fatoração aproximada de um jacobiano aproximado no ponto de partida. (Frequentemente tal Jacobiana aproximada está disponível a partir de uma simplificação do problema.) Assim, um minimiza vez , onde , e é calculado resolvendo .F(x)=0F(x)22LUBF(x)22B=(LU)1r=BF(x)LUr=F(x)

Com mais despesas (uma nova fatoração aproximada por iteração), também é possível minimizar .B(x)F(x)

Arnold Neumaier
fonte