| | | | |

2.1 Sistemas Não-Lineares

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

Em revisão

Consideramos o seguinte problema: dada a função F:Dnn encontrar 𝒙*n tal que

F(𝒙*)=0. (2.1)

Salvo explicitado ao contrário, assumiremos que FC1(D), i.e. F é uma função continuamente diferenciável no domínio computacional Dn.

Vamos, denotar por JF(𝒙)=[ȷi,j(𝒙)]i,j=1n,n a matriz jacobiana3131endnote: 31Carl Gustav Jakob Jacobi, 1804 - 1851, matemático alemão. Fonte: Wikipédia: Carl Gustav Jakob Jacobi. da F com

ȷi,j(𝒙)=fi(𝒙)xj, (2.2)

onde F(𝒙)=(f1(𝒙),f2(𝒙),,fn(𝒙)) e 𝒙=(x1,x2,,xn).

2.1.1 Método de Newton

Em revisão

A iteração básica do método de Newton3232endnote: 32Isaac Newton, 1642 - 1727, matemático, físico, astrônomo, teólogo e autor inglês. Fonte: Wikipédia: Isaac Newton. para sistemas de equações consiste em: dada uma aproximação inicial 𝒙(0)n,

resolverJF(𝒙(k))𝜹(k)=F(𝒙(k)) (2.3)
computar𝒙(k+1)=𝒙(k)+𝜹(k) (2.4)

para k=0,1,2, até que um critério de parada seja satisfeito.

Observação 2.1.1 (Convergência).

Para 𝒙(0) suficientemente próximo da solução 𝒙*, o método de Newton é quadraticamente convergente. Mais precisamente, este resultado de convergência local requer que JF1(𝒙*) seja não singular e que JF seja Lipschitz3333endnote: 33Rudolf Otto Sigismund Lipschitz, 1832 - 1903, matemático alemão. Fonte: Wikipédia. contínua. Consulte [8, Seção 7.1] para mais detalhes.

Exemplo 2.1.1.

Consideramos a equação de Burgers3434endnote: 34Jan Burgers, 1895 - 1981, físico neerlandês. Fonte: Wikipédia: Jan Burgers.

ut+uux=ν2ux2 (2.5)

com ν>0, condição inicial

u(0,x)=sen(πx) (2.6)

e condições de contorno de Dirichlet3535endnote: 35Johann Peter Gustav Lejeune Dirichlet, 1805 - 1859, matemático alemão. Fonte: Wikipédia: Johann Peter Gustav Lejeune Dirichlet. homogêneas

u(t,1)=u(t,1)=0. (2.7)

Aplicando o método de Rothe3636endnote: 36Erich Hans Rothe, 1895 - 1988, matemático alemão. Fonte: Wikipédia. com aproximação de Euler3737endnote: 37Leonhard Paul Euler, 1707-1783, matemático e físico suíço. Fonte: Wikipédia: Ronald Fisher. implícita, obtemos

u(t+ht,x)u(t,x)ht+ (2.8)
u(t+ht,x)ux(t+ht,x)νuxx(t+ht,x),

onde ht>0 é o passo no tempo. Agora, aplicamos diferenças finitas para obter

u(t+ht,xi)u(t,xi)ht (2.9)
+u(t+ht,xi)u(t+ht,xi+1)u(t+ht,xi1)2hx
νu(t+ht,xi1)2u(t+ht,xi)+u(t+ht,xi+1)hx2,

onde, xi=(i1)hx, i=1,,nx e hx=1/(nx1) é o tamanho da malha.

Rearranjando os termos e denotando ui(k)u(tk,xi), tk=(k1)h, obtemos o seguinte problema discreto

u1(k+1)=0 (2.10)
1htui(k+1)1htui(k)+12hxui(k+1)ui+1(k+1)
12hxui(k+1)ui1(k+1)νhx2ui1(k+1)
+2νhx2ui(k+1)νhx2ui+1(k+1)=0, (2.11)
unx(k+1)=0, (2.12)

sendo ui(0)=sen(πxi), i=1,,nx e k=1,2,.

Este problema pode ser reescrito como segue: para cada k=0,1,, encontrar 𝒘nx, tal que

F(𝒘;𝒘(0))=0, (2.13)

onde wi=ui(k+1), wi(0)=ui(k) e

f1(𝒘;𝒘(0))=w1, (2.14)
fi(𝒘;𝒘(0))=1htwi1htwi(0)+12hxwiwi+1
12hxwiwi1νhx2wi1+2νhx2wiνhx2wi+1, (2.15)
fnx(𝒘;𝒘(0))=wnx. (2.16)

A matriz jacobiana associada J=[ȷi,j]i,jnx,nx contém

ȷi,j=0,ji1,i,i+1, (2.17)
ȷ1,1=1, (2.18)
ȷ1,2=0, (2.19)
ȷi,i1=12hxwiνhx2, (2.20)
ȷi,i=1ht+12hxwi+12hxwi1+2νhx2, (2.21)
ȷi,i+1=12hxwiνhx2, (2.22)
ȷnx,nx1=0 (2.23)
ȷnx,nx=1. (2.24)

Implemente este esquema numérico!

Exercícios

Em revisão

E. 2.1.1.

Considere o problema discreto apresentado no Exemplo 2.1.1 para diferentes valores do coeficiente de difusão ν=ν0/π, ν0=1.,0.1,0.01,0.001. Simule o problema com cada uma das seguintes estratégias e as compare quanto ao desempenho computacional.

  1. a)

    Simule-o aplicando o Método de Newton com o solver linear npla.solve.

  2. b)

    Observe que a jacobiana é uma matriz tridiagonal. Simule o problema aplicando o Método de Newton com o solver linear npla.solve_banded.

  3. c)

    Aloque a jacobiana como uma matriz esparsa. Então, simule o problema aplicando o Método de Newton com solver linear adequado para matrizes esparsas.

E. 2.1.2.

Desenvolva um esquema upwind para simular a equação de Burgers do Exemplo 2.1.1.

2.1.2 Método Tipo Newton

Em revisão

Existem várias modificações do Método de Newton3838endnote: 38Isaac Newton, 1642 - 1727, matemático, físico, astrônomo, teólogo e autor inglês. Fonte: Wikipédia: Isaac Newton. que buscam reduzir o custo computacional. Há estratégias para simplificar as computações da matriz jacobiana3939endnote: 39Carl Gustav Jakob Jacobi, 1804 - 1851, matemático alemão. Fonte: Wikipédia: Carl Gustav Jakob Jacobi. e para reduzir o custo nas computações das atualizações de Newton.

Atualização Cíclica da Matriz Jacobiana

Em revisão

Geralmente, ao simplificarmos a matriz jacobina JF ou aproximarmos a atualização de Newton δ(k), perdemos a convergência quadrática do método (consulte a Observação 2.1.1). A ideia é, então, buscar uma convergência pelo menos super-linear, i.e.

e(k+1)ρke(k), (2.25)

com ρk0 quando k. Aqui, e(k):=x*x(k). Se a convergência é superlinear, então podemos usar a seguinte aproximação

ρkδ(k)δ(k1) (2.26)

ou, equivalentemente,

ρk(δ(k)δ(0))1k (2.27)

Isso mostra que podemos acompanhar a convergência das iterações pelo fator

βk=δ(k)δ(0). (2.28)

Ao garantirmos 0<βk<1, deveremos ter uma convergência superlinear.

Vamos, então, propor o seguinte método tipo Newton de atualização cíclica da matriz jacobiana.

  1. 1.

    Escolha 0<β<1

  2. 2.

    J:=JF(x(0))

  3. 3.

    Jδ(0)=F(x(0))

  4. 4.

    x(1)=x(0)+δ(0)

  5. 5.

    Para k=1, até critério de convergência:

    1. (a)

      Jδ(k)=F(x(k))

    2. (b)

      x(k+1)=x(k)+δ(k)

    3. (c)

      Se δ(k)/δ(0)>β:

      1. i.

        J:=JF(x(k))

E. 2.1.3.

Implemente uma versão do método tipo Newton apresentado acima e aplique-o para simular o problema discutido no Exemplo 2.1.1 para ν=1.,0.1,0.01,0.001,0.0001. Faça uma implementação com suporte para matrizes esparsas.


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!