| | | | |

2.11 Métodos iterativos para problemas não lineares

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

Em remoção

Vamos considerar um sistema de equações não lineares

F(x)=0, (2.47)

onde x=(x1,x2,,xn)n e F:nn, n1.

2.11.1 Método de Newton

Em remoção

Supondo que F é duas vezes diferenciável, a solução de (2.47) pode ser computada pela iteração de Newton:

x(0)=aprox. inicial, (2.48)
x(t+1)=x(t)γJF1(x(t))F(x(t)), (2.49)

onde γ>0 é o tamanho do passo escolhido,

JF()=[Fixj()]i,j=1n,n (2.50)

denota a jacobiana de F, e t=1,2,3,.

Observamos que, em geral, a iterada de Newton (2.49) não é trivialmente paralelizável, devido a acoplamentos entre as n equações. Por outro lado, podemos reescrever (2.49) como segue:

x(t+1)=x(t)+γs(t), (2.51)

onde s(t) é o passo de Newton, dado como a solução do seguinte sistema linear

JF(x(t))s(t)=F(x(t)). (2.52)

Desta forma, a cada iteração de Newton t, devemos computar a solução do sistema linear (2.52). A aplicação da paralelização no método de Newton dá-se pela utilização de métodos paralelizáveis para a resolução de sistemas lineares. Na Seção 2.9 e, principalmente, na Seção 2.10, discutimos sobre a paralelização de métodos para sistemas lineares.

No caso de um sistema de grande porte e uma vez computada s(t), a atualização (2.51) também pode ser trivialmente paralelizada. Ainda, as computações da função objetivo F e de sua jacobiana JF também são paralelizáveis.

2.11.2 Método do acorde

Em remoção

Em problemas de grande porte, o cálculo da jacobina JF é, em muitos casos, o passo computacionalmente mais custoso na aplicação do método de Newton. Uma alternativa é o chamado método do acorde, no qual a jacobiana é computada apenas na iteração inicial. Segue a iteração deste método

x(0)=aprox. inicial, (2.53)
JF,0=FF(x(0)), (2.54)
x(t+1)=x(t)+γs(t), (2.55)
JF,0s(t)=F(x(t)), (2.56)

onde t=0,1,2,.

Enquanto a taxa de convergência do método de Newton é quadrática, o método do acorde tem convergência linear. Portanto, este só é vantajoso quando o custo de computar a jacobiana é maior que o custo de se computar várias iterações a mais.

Além das paralelizações triviais na computação de (2.54) e (2.60), vamos observar a computação da direção s(t) (2.61). Como a jacobiana JF,0 é fixada constante, a utilização de métodos iterativos para computar s(t) pode não ser o mais adequado. Aqui, a utilização de método direto, como a decomposição LU torna-se uma opção a ser considerada. Neste caso, a iteração ficaria como segue

x(0)=aprox. inicial, (2.57)
JF,0=JF(x(0)), (2.58)
LU=JF,0, (2.59)
x(t+1)=x(t)+γs(t), (2.60)
LUs(t)=F(x(t)), (2.61)

onde t=0,1,2,.

2.11.3 Métodos quasi-Newton

Em remoção

Baseados em aproximações na computação do passo de Newton

JF(x(t))s(t)=F(x(t)), (2.62)

uma série de métodos quasi-Newton são derivados. A aplicação de cada uma dessas tais variantes precisa ser avaliada caso a caso. Em todas elas, busca-se abrir mão da convergência quadrática em troca de um grande ganho no tempo computacional em se computar s(t).

Uma das alternativas é uma variante do método do acorde. A ideia é estimar a taxa de convergência p entre as iterações e atualizar a jacobiana quando a taxa estimada é menor que um certo limiar pl considerado adequado (este limiar pode ser escolhido com base nos custos computacionais de se recomputar a jacobiana versus o de se computar várias iterações a mais). A convergência é da ordem p quando

F(x(t+1))KF(F(x(t)))p, (2.63)

com K>0, F(x(t))0 quando t. Assim sendo, é razoável esperar que

plog(F(x(t+1)))log(F(x(t))) (2.64)

. Com isso, o pseudocódigo segue

  1. 1.

    Aproximação inicial: x(0), t=0.

  2. 2.

    Jacobiana: JF=JF(x(t)).

  3. 3.

    Enquanto F(x(t))>tol:

    1. (a)

      JFs(t)=F(x(t)).

    2. (b)

      x(t+1)=x(t)+γs(t).

    3. (c)

      p=log(F(x(t+1)))/log(F(x(t)))

    4. (d)

      Se p<pl, então:

      1. i.

        JF=JF(x(t+1)).

    5. (e)

      t=t+1.

Outra alternativa que pode ser considerada em determinados casos, é a de se computar s(t) por

JF(x(t))s(t)=F(x(t)) (2.65)

de forma aproximada. No contexto de métodos iterativos para sistemas lineares, pode-se truncar a resolução do sistema acima fixando um número pequeno de iterações. Desta forma, s(t) não seria computada de forma precisa, mas a aproximação computada pode ser suficientemente adequada.

Do ponto de vista de paralelização em MP, estas variantes do método de Newton apresentam potenciais e requerem cuidados similares ao método original.

2.11.4 Exercícios

Em remoção

E. 2.11.1.

Implemente um código MP para computar a solução de

sen(x1x2)2x2x1=4.2 (2.66)
3e2x16ex222x1=1 (2.67)

usando o método de Newton. Use a inversa da jacobiana exata e aproximação inicial x(0)=(2,2).

E. 2.11.2.

Considere o seguinte problema de Poisson não-linear

x[(1+u2)ux] =cos(πx),x(1,1), (2.68)
u(0)=1,ux|x=1 =0. (2.69)

Use o método de diferenças finitas para discretizar este problema de forma a aproximá-lo como um sistema algébrico de equações não lineares. Implemente um código MP para computar a solução do sistema resultante aplicando o método de Newton.

E. 2.11.3.

No Exercício 2.11.2, faça uma implementação MP do método do acorde e compare com o método de Newton clássico.

E. 2.11.4.

No Exercício 2.11.2, faça uma implementação MP da variante do método do acorde com atualização da jacobiana com base na estimativa da taxa de convergência.


Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!