Você está na página 1de 31

Resolução de Sistemas de Equações Não Lineares

Prof. Wilkley Bezerra Correia, Dr

Departamento de Engenharia Elétrica


Definição

Um sistema de equações não-lineares (SNL) é dado por um conjunto de 𝑛 equações com 𝑛


incógnitas desconhecidas, formando um vetor x = [𝑥 1 𝑥 2 ... 𝑥 𝑛 ]:

𝑓1 (𝑥 1 , 𝑥2 , . . . , 𝑥 𝑛 ) = 0
𝑓2 (𝑥 1 , 𝑥2 , . . . , 𝑥 𝑛 ) = 0
.. .
. = ..
𝑓𝑛 (𝑥 1 , 𝑥2 , . . . , 𝑥 𝑛 ) = 0

2 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Características de um SNL

Em geral, a solução de um sistema de equações não-lineares tem as seguintes


características:
 Semelhante aos métodos abertos de busca por zeros de polinômios não-lineares;
 Método iterativo;
 Critério de parada baseado no erro aproximado.

3 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Descrição matemática
Dessa forma, sendo
𝑥1 = 𝑎1 , 𝑥2 = 𝑎2 , . . . , 𝑥 𝑛 = 𝑎 𝑛 ,
Então as expressões que levam a aproximações mais precisas a cada iteração podem ser
dadas por:

𝑥1 = 𝑓1 (𝑎 2 , 𝑎 3 , . . . , 𝑎 𝑛 )
𝑥2 = 𝑓2 (𝑥 1 , 𝑎 3 , . . . , 𝑎 𝑛 )
.. ..
. .
𝑥𝑛 = 𝑓𝑛 (𝑥 1 , 𝑥2 , . . . , 𝑥 𝑛−1 )

4 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Expansão em série

Uma função monovariável 𝑓 (𝑥) pode ser escrita na forma expandida de série de Taylor:

∑︁ 𝑓 (𝑛) (𝑥 0 )
𝑓 (𝑥) = (𝑥 − 𝑥 0 ) 𝑛
𝑛=0
𝑛!

Daí, a aproximação em torno do ponto 𝑥 1 quando se conhece 𝑥 0 é dada por:

(𝑥 1 − 𝑥 0 ) 1 (𝑥 1 − 𝑥 0 ) 2
𝑓 (𝑥 1 ) = 𝑓 (𝑥 0 ) (𝑥 1 − 𝑥0 ) 0 + 𝑓 0 (𝑥 0 ) + 𝑓 00 (𝑥 0 ) +···
1! 2!

5 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Expansão em série
 A aproximação de uma função monovariável usando os dois primeiros termos da série
fornece a tangente no ponto 𝑥 0 ;
 Já usamos a tangente em um ponto (com aproximações sucessivas) para encontrar o
zero de uma função não-linear (método de Newton-Raphson):

g(x)

f(xi)-0

xi+1 xi
xi - xi+1

6 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Expansão em série
O método de Newton-Raphson pode ser escrito na forma de série de Taylor, truncando-se
os dois primeiros termos da série:

𝑓 (𝑥 1 ) =𝑓 (𝑥 0 ) + 𝑓 0 (𝑥 0 ) (𝑥 1 − 𝑥0 ) → equação da reta tangente


𝑓 (𝑥 0 )
𝑥1 = 𝑥0 − 0
𝑓 (𝑥 0 )
ou ainda,
𝑓 (𝑥(𝑘))
𝑥(𝑘 + 1) = 𝑥(𝑘) −
𝑓 0 (𝑥(𝑘))

7 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Representação matricial de um SNL
Por outro lado, um sistema não-linear de 𝑛 equações e 𝑛 incógnitas é dado por:


 𝑓1 (𝑥 1 , 𝑥2 , . . . , 𝑥 𝑛 ) = 0
 𝑓2 (𝑥 1 , 𝑥2 , . . . , 𝑥 𝑛 ) = 0



.. ..


 . .
 𝑓𝑛 (𝑥1 , 𝑥2 , . . . , 𝑥 𝑛 ) = 0


cuja representação vetorial é do tipo:
F(X) = 0
em que:
X = [𝑥 1 𝑥2 ... 𝑥 𝑛 ]𝑇
F(X) = [ 𝑓1 (X) 𝑓2 (X) ... 𝑓𝑛 (X)] 𝑇

8 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Representação matricial de um SNL
De modo análogo ao caso monovariável, no caso das 𝑛 funções de 𝑛 variáveis, pode-se
escrever:
𝜕 𝑓1 (𝑥) 𝜕 𝑓 (𝑥) 𝜕 𝑓 (𝑥)
𝑓1 (x) = 𝑓1 (x0 ) + (𝑥1 − 𝑥0 ) + 1 (𝑥2 − 𝑥0 ) + · · · + 1 (𝑥 𝑛 − 𝑥0 )
𝜕𝑥1 𝜕𝑥2 𝜕𝑥 𝑛
𝜕 𝑓 (𝑥) 𝜕 𝑓 (𝑥) 𝜕 𝑓 (𝑥)
𝑓2 (x) = 𝑓2 (x0 ) + 2 (𝑥1 − 𝑥0 ) + 2 (𝑥2 − 𝑥0 ) + · · · + 2 (𝑥 𝑛 − 𝑥0 )
𝜕𝑥1 𝜕𝑥2 𝜕𝑥 𝑛
.. ..
. .
𝜕 𝑓𝑛 (𝑥) 𝜕 𝑓𝑛 (𝑥) 𝜕 𝑓𝑛 (𝑥)
𝑓𝑛 (x) = 𝑓𝑛 (x0 ) + (𝑥1 − 𝑥0 ) + (𝑥2 − 𝑥0 ) + · · · + (𝑥 𝑛 − 𝑥0 )
𝜕𝑥1 𝜕𝑥2 𝜕𝑥 𝑛

9 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Expansão em série do SNL
Então, o truncamento nos dois primeiros termos da série leva a:
 𝑓1 (x)   𝑓1 (x0 ) 
   
 𝑓2 (x)   𝑓2 (x0 ) 
= +
   
 .. ..

 .  
  . 

 𝑓 (x)   𝑓 (x ) 
 𝑛   𝑛 0 
 𝜕 𝑓1 ( 𝑥) | 𝜕 𝑓1 ( 𝑥) 𝜕 𝑓1 ( 𝑥)
𝜕𝑥2 | 𝑥=𝑥0 ... 𝜕𝑥𝑛 | 𝑥=𝑥0

 𝜕𝑥1 𝑥=𝑥0   𝑥1 − 𝑥1 (0) 
 𝜕 𝑓2 ( 𝑥) 𝜕 𝑓2 ( 𝑥) 𝜕 𝑓2 ( 𝑥)   
 𝑥2 − 𝑥2 (0)
 𝜕𝑥1 | 𝑥=𝑥0 𝜕𝑥2 | 𝑥=𝑥0 ... 𝜕𝑥𝑛 | 𝑥=𝑥0
  
  
 .. .. .. ..   .. 

 . . . .



 . 

 𝜕 𝑓𝑛 ( 𝑥) 𝜕 𝑓𝑛 ( 𝑥) 𝜕 𝑓𝑛 ( 𝑥)   𝑥 − 𝑥 (0) 
 𝜕𝑥1 | 𝑥=𝑥0 𝜕𝑥2 | 𝑥=𝑥0 |
 ... 𝑥=𝑥0
  𝑛 𝑛 
𝜕𝑥𝑛 
ou ainda:
F(x) = F(x0 ) + J(x0 ) (x − x0 )

10 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Gradiente e Jacobiano
Na equação F(x) = F(x0 ) + J(x0 ) (x − x0 ), tem-se:

𝜕 𝑓𝑖 (x) 𝜕 𝑓1 ( 𝑥) 𝜕 𝑓1 ( 𝑥) 𝜕 𝑓1 ( 𝑥)

 𝜕𝑥1

  ∇ 𝑓1 (x)𝑇   𝜕𝑥1 𝜕𝑥2 ... 𝜕𝑥𝑛


𝜕 𝑓𝑖 (x) 𝜕 𝑓2 ( 𝑥) 𝜕 𝑓2 ( 𝑥) 𝜕 𝑓2 ( 𝑥)
  



  ∇ 𝑓2 (x)𝑇   ...


𝜕𝑥2 𝜕𝑥1 𝜕𝑥2 𝜕𝑥𝑛
∇ 𝑓𝑖 (𝑥) =  ; J=  =
   
..  .. .. .. .. .. 
 .  
 .  
  . . . . 
 𝜕 𝑓𝑖 (x)   ∇ 𝑓𝑛 (x)𝑇   𝜕 𝑓𝑛 ( 𝑥) 𝜕 𝑓𝑛 ( 𝑥) 𝜕 𝑓𝑛 ( 𝑥) 

 𝜕𝑥𝑛

    𝜕𝑥1 𝜕𝑥2 ... 𝜕𝑥𝑛

(gradiente) (Jacobiano)

11 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Descrição matemática
A solução é então obtida a partir de:
F(x) = F(x0 ) + J(x0 )(x − x0 )
Para F(x) = 0, tem-se:
F(x0 ) + J(x0 ) (x − x0 ) = 0
x = x0 − [J(x0 )] −1 F(x0 )

No caso geral pode-se escrever:


xk+1 = xk − [J(xk )] −1 F(xk )

12 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Descrição matemática

Escrevendo sk = xk+1 − xk , então xk+1 = xk + sk


Substituindo em xk+1 = xk − [J(xk )] −1 F(xk ), tem-se:

J(xk )sk = −F(xk )

Observe que dado o ponto xk , a matriz J(xk ) é obtida avaliando-se J(x) em xk e em


seguida, o passo de Newton, sk , é obtido a partir da solução do sistema linear acima.

13 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Exemplo

Resolver o sistema de equações não-lineares


2 2 2
 𝑥1 + 𝑥2 + 𝑥3 = 1



2𝑥 12 + 𝑥 22 − 4𝑥 3 = 0
 3𝑥 2 − 4𝑥 2 + 𝑥 2 = 0

 1 3

utilizando o Método de Newton-Raphson para um vetor inicial:

x(0) = [0, 5 0, 5 0, 5] 𝑇

14 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Exemplo
A matriz Jacobiana J(x) associada ao problema é:
 2𝑥 1 2𝑥 2 2𝑥 3 
 
J(x) =  4𝑥 1 2𝑥 2 −4 
 6𝑥 1 −4 2𝑥 3 
 
Para x(0) = [0, 5 0, 5 0, 5] 𝑇 , tem-se:
 1 1 1 

J(x(0)) =  2 1 −4  ;
 
 3 −4 1 
 
 0, 5 2 + 0, 52 + 0, 52 − 1 = −0, 25



F(x(0)) = 2 × 0, 52 + 0, 52 − 4 × 0, 5 = −1, 25
 3 × 0, 52 − 4 × 0, 5 + 0, 52

= −1, 00

15 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Exemplo
Tem-se então o sistema linear:
 1 1
 1   𝑠1 (0)   0, 25
 


 2 1 −4   𝑠2 (0)  =  1, 25 
    
 3 −4 1   𝑠3 (0)   1, 00 
    
que leva a: s(0) = [0, 375 0 − 0, 125] 𝑇 .
Assim, a solução atualizada é:
 0, 5   0, 375   0, 875 
     
x(1) = x(0) + s(0) =  0, 5  +  0  =  0, 5
 


 0, 5   −0, 125   0, 375 
     

16 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Exemplo
Atualizando a matriz Jacobiana J(x) associada ao problema:
 2𝑥 1 2𝑥 2 2𝑥 3 
 
J(x) =  4𝑥 1 2𝑥 2 −4 
 6𝑥 1 −4 2𝑥 3 
 
Para x(1) = [0, 875 0, 5 0, 375] 𝑇 , tem-se:
 1, 75 1, 00 0, 75 
 
J(x(1)) =  3, 50 1, 00 −4, 00 ;

 5, 25
 −4, 00 0, 75 




 0, 8752 + 0, 52 + 0, 3752 − 1 = 0, 1563
F(x(1)) = 2 × 0, 8752 − 0, 52 − 4 × 0, 375 = 0, 2813
 2 2
 3 × 0, 875 − 4 × 0, 5 + 0, 375 = 0, 4375

17 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Exemplo
Tem-se então o sistema linear:
 1, 75 1, 00 0, 75   𝑠1 (1)   0, 1563 
     
 3, 50 1, 00 −4, 00   𝑠2 (1)  = −  0, 2813 
     
 5, 25 −4, 00 0, 75   𝑠3 (1)   0, 4375 
     
que leva a: s(1) = [−0, 00852 − 0, 0034 − 0, 0051] 𝑇 .
Assim, a solução atualizada é:
 0, 875   −0, 00852   0, 7898 
     
x(2) = x(1) + s(1) =  0, 5  +  −0, 0034  =  0, 4966
 


 0, 375   −0, 0051   0, 3699 
     

18 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Exemplo
Atualizando a matriz Jacobiana J(x) associada ao problema:
 2𝑥 1 2𝑥 2 2𝑥 3 
 
J(x) =  4𝑥 1 2𝑥 2 −4 
 6𝑥 1 −4 2𝑥 3 
 
Para x(2) = [0, 7898 0, 4966 0, 3699] 𝑇 , tem-se:
 1, 5796 0, 9932 0, 7399 
 
J(x(2)) =  3, 1593 0, 9932 −4, 0000 ;

 4, 7389
 −4, 0000 0, 7399 




 0, 78982 + 0, 49662 + 0, 36992 − 1 = 0, 0073
F(x(2)) = 2 × 0, 78982 − 0, 49662 − 4 × 0, 36995 = 0, 0145
 2 2
 3 × 0, 7898 − 4 × 0, 4966 + 0, 3699 = 0, 0218

19 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Exemplo
Tem-se então o sistema linear:
 1, 5796 0, 9932 0, 7399   𝑠1 (2)   0, 0073 
     
 3, 1593 0, 9932 −4, 0000   𝑠2 (2)  = −  0, 0145 
     
 4, 7389 −4, 0000 0, 7399   𝑠3 (2)   0, 0218 
     
que leva a: s(2) = [−0, 0046 − 0, 0000 − 0, 0000] 𝑇 .
Assim, a solução atualizada (cuja k s k ∞ = 4, 6 × 10−3 ) é:
 0, 7898   −0, 0046   0, 7852 
     
x(3) = x(2) + s(2) =  0, 4966  +  −0, 0000  =  0, 4966
 


 0, 3699   −0, 0000   0, 3699 
     

20 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Método de Newton modificado
Definição
O Método de Newton Modificado consiste em manter a matriz Jacobiano da primeira
iteração constante em todo o processo iterativo.

O número de iterações necessárias para a convergência é normalmente maior, porém o


custo computacional de cada iteração tende a ser significativamente menor, pois não
necessita-se realizar a eliminação de Gauss a cada iteração.

A matriz é fatorada na forma LU na primeira iteração e estes fatores são mantidos


constantes em todo o processo iterativo.

A cada iteração necessita-se apenas realizar as substituições diretas e inversas.

21 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Método de Newton modificado
Exemplo
Para exemplificar, mostra-se a solução do exemplo dado anteriormente, utilizando o
Método de Newton Modificado. A matriz Jacobiana da primeira iteração é dada por:
 1 1 1 

J(x(0)) =  2 1 −4  .

 3 −4 1 
 
Fatorando a matriz Jacobiana na forma LU, tem-se:
 1 0 0   1 1 1 
  
LU =  2 1 0  ·  0 −1 −6  .

 3 7 1   0 0 40 
   

22 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Método de Newton modificado
Exemplo
Sendo 𝑥(0) = [0.5 0.5 0.5], o processo iterativo é então dado por:
0, 52 + 0, 52 + 0, 52 − 1



 = −0, 25
F(x(0)) = 2 × 0, 52 − 0, 52 − 4 × 0, 52 = −1, 25
 3 × 0, 52 − 4 × 0, 5 + 0, 52

= −1, 00

Daí, forma-se o sistema linear:
 1 0 0   1 1 1   𝑠1 (0)   0.25   0.375 
         
LU =  2 1 0 
 ·  0 −1 −6 
 ·  𝑠2 (0)  =  1.25
 
 ; s(0) = 
  0 

 3 7 1   0 0 40   𝑠3 (0)   1.00   −0.125 
         
que leva à solução atualizada:
 0.5   0.375   0.875 
     
x(1) = x(0) + s(0) =  0.5  +  0  =  0.5 
  
 0.5   −0.125   0.375 
     

23 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Método de Newton modificado
Exemplo

A repetição continuada desse método, converge para a solução com a precisão desejada (a
mesma do exemplo anterior), após 15 iterações, levado ao resultado:
 0.7852 
 
x(15) =  0.4966 
 0.3699 
 
Como pode ser visto a convergência com o Método de Newton Modificado é muito mais
lenta, entretanto o custo computacional de cada iteração é menor.

24 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Métodos Quasi-Newton
Definição

Um inconveniente no método de Newton está na necessidade de se encontrar a matriz


Jacobiana a cada iteração. Isso pode se tornar um problema se o sistema a ser resolvido é de
ordem elevada.

Nos métodos quasi-Newton o cálculo da matriz Jacobiana ocorre somente na primeira


iteração, assim como no caso do método de Newton modificado.

Porém, neste caso, a matriz Jacobiana é substituída por uma matriz de aproximação que é
atualizada a cada iteração.

25 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Métodos Quasi-Newton
Definição
A ideia baseia-se na aproximação da derivada pela equação usada no método da secante:
𝑓 (𝑥 𝑘+1 ) − 𝑓 (𝑥 𝑘 )
𝑓 0 (𝑥 𝑘+1 ) ≈ .
𝑥 𝑘+1 − 𝑥 𝑘
Em sistemas não-lineares, entretanto, o denominador x 𝑘+1 − x 𝑘 é um vetor e, neste caso, o
denominador no método da secante é indefinido.

O método de Broyden é uma generalização do método da secante (BURDEN; FAIRES,


2005) e é similar ao de Newton, em que a matriz J(x1 ) é substituída por uma matriz A1 :
A1 (x1 − x0 ) = F(x1 ) − F(x0 )
A matriz Jacobiana é necessária apenas na inicialização, quando se faz:
A0 = J(x0 )
26 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1
Métodos Quasi-Newton
Definição
Considere
yk = F(xk ) − F(xk−1 )
sk = xk − xk−1 .
A atualização da matriz Ak+1 a partir da matriz Ak é dada por (RUGGIERO; LOPES, 1996):
yk − Ak−1 sk 𝑇
Ak = Ak−1 + sk .
sk 𝑇 sk
A solução do sistema é então dada por:
xk+1 = xk − [Ak ] −1 F(xk )

27 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Métodos Quasi-Newton
Definição
Pode-se incrementar o método considerando-se a inversão de matrizes pela fórmula de
Sherman-Morrison:

Se A é uma matriz não-singular e x e y são vetores, então A + xy𝑇 é não singular, se


y𝑇 A−1 + x ≠ −1, e
A−1 xy𝑇 A−1
(A + xy𝑇 ) −1 = A−1 −
1 + y𝑇 A−1 x
Nesse contexto, aplicando-se ao método Quasi-Newton, pode-se escrever:
(sk − Ak −1 yk )sk𝑇 Ak−1 −1
Ak −1 = A−1
k−1 +
sk𝑇 Ak−1 −1 yk

28 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Métodos Quasi-Newton
Exemplo
Considere o sistema não-linear descrito por

𝑥 12 + 𝑥 22

= 2
2
2
𝑥 1 − 𝑥32 = 1

cuja condição inicial é x = [0.3 0.4] 𝑇 .

Neste caso, tem-se  


0.6 0.8
J(x(0)) = .
0.6 −0.09

29 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Métodos Quasi-Newton
Exemplo

A solução desse sistema com precisão desejada 𝜀 = 1 · 10−6 é obtida após 10 iterações:
 
1.048809
x(10) =
0.948683

A aplicação do método de Newton para esse mesmo sistema converge para o valor de
solução em 06 iterações.

30 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1


Referências

BURDEN, R. L.; FAIRES, J. D. Numerical Analysis. 8th.. ed. Belmont, CA, USA:
Thomson Higher Education, 2005.
RUGGIERO, M. A. G.; LOPES, V. L. da R. Cálculo Numérico: aspectos teóricos e
computacionais. 2𝑎 ed. São Paulo, Brasil: Makron Books, 1996.

31 TH 0168 - Métodos Numéricos Aplicados à Engenharia Elétrica 2021.1

Você também pode gostar