Você está na página 1de 28

Computação Científica II

(EEL7031)

Solução de Sistemas de Equações


Não-Lineares

1
Objetivos e Tópicos Principais
 Objetivos
 Estudar os métodos numéricos clássicos aplicáveis a resolução de
sistemas de equações algébricas não-lineares.
 Tópicos principais
 Introdução
 O método de Newton
 Métodos Quase-Newton
 O método Steepest Descent

2
Introdução
 Representação matemática de Sistemas Não-Lineares
 Um sistema de equações algébricas não-lineares tem a seguinte
representação matemática.
f1 ( x1 , x2 ,… , xn ) = 0
onde :
f 2 ( x1 , x2 ,… , xn ) = 0 F = ( f1 , f 2 ,… , f n )t
F(x) = 0
⋮ x = ( x1 , x2 ,… , xn )t
f n ( x1 , x2 ,… , xn ) = 0
 Representação geométrica
 A figura ao lado é uma
representação geométrica para
um sistema com duas
dimensões (n=2)
3
Introdução
 Exemplo de sistema de equações algébricas não-lineares
 Sistema não-linear de dimensão 3.
1
3 x1 − cos( x2 x3 ) − = 0,
2
x12 − 81( x2 + 0.1) 2 + sin x3 + 1.06 = 0,
− x1 x2 1
e + 20 x3 + (10π − 3) = 0
3
 Representação matemática geral:

 1 
 f1 ( x1 , x2 , x3 )   3 x 1 − cos( x x
2 3 ) −  0 
2
F ( x) = F ( x1 , x2 , x3 ) =  f 2 ( x1 , x2 , x3 ) =  x12 − 81( x2 + 0.1) 2 + sin x3 + 1.06 = 0
 f 3 ( x1 , x2 , x3 )   e − x1x2 + 20 x + 1 (10π − 3)  0
 3
3 
f1 , f 2 , f 3 : ℜ3 → ℜ F : ℜ3 → ℜ 3 4
O método de Newton
 Resolução de equações de uma única variável.
 Determinar a solução p para f ( x) = 0.
 Algoritmo geral usando a condição inicial p0 :

f ( pk −1 )
pk = pk −1 − , para k ≥ 1
f ′( pk −1 )
 Resolução de um sistema de equações
 Determinar a solução p para F ( x) = 0
 Algoritmo geral:  ∂f1 ( x) ∂f1 ( x) ∂f1 ( x) 
 ∂x ⋯
∂x2 ∂xn 
 1

[(
p ( k ) = p ( k −1) − J p ( k −1) )] F ( p ),
−1 ( k −1)
∴  ∂f 2 ( x)
J ( x) =  ∂x1
∂f 2 ( x)
∂x2

∂f 2 ( x) 
∂xn 
para k ≥ 1  ⋮ ⋮ ⋱ 
 
 ∂f n ( x) ∂f n ( x)

∂f n ( x) 
 Usa-se a condição inicial p ( 0 )  ∂x1 ∂x2 ∂xn 
5
O método de Newton
 Exemplo
 Considere o sistema

1
f1 ( x1 , x2 , x3 ) = 3 x1 − cos( x2 x3 ) − = 0, Para a condição inicial
2
f 2 ( x1 , x2 , x3 ) = x1 − 81( x2 + 0.1) + sin x3 + 1.06 = 0,
2 2 p ( 0)
= ( 0. 1, 0. 1, −0 .1) t

− x1 x2 1
f 3 ( x1 , x2 , x3 ) = e + 20 x3 + (10π − 3) = 0
3

 3 x3 sin x2 x3 x2 sin x2 x3   f1 ( x1 , x2 , x3 ) 
J ( x1 , x2 , x3 ) =  2 x1 − 162( x2 + 0.1) cos x3  , F ( x) =  f 2 ( x1 , x2 , x3 ) 
− x2 e − x1x2 − x1e x1x2 20   f 3 ( x1 , x2 , x3 ) 

6
O método de Newton
 Exemplo (cont.)
 Portanto: onde :
 p1k   p1k −1   y1k −1   y1k −1 
 k   k −1   k −1   k −1 
 p2  =  p2  +  y 2   y 2  = − J((
p1
( k −1)
, p ( k −1)
2 , p3
( k −1)
))
−1
(
⋅ F p1( k −1) , p2( k −1) , p3( k −1) )
 p3k   p3k −1   y3k −1   y3 
k −1
       
( k −1)
 1  Para a condição inicial
 3 p1 − cos( p p
2 3 ) − 
2
F p ( ( k −1)
) =  p12 − 81( p2 + 0.1) 2 + sin p3 + 1.06 p ( 0) = (0.1,0.1,−0.1)t
 e − p1 p2 + 20 p + 1 (10π − 3) 
 3
3 
( k −1)
 3 p3 sin p2 p3 p2 sin p2 p3 
(
J p ( k −1) ) =  2 p1 − 162( p2 + 0.1) cos p3 
− p2 e − p1 p2 − p1e p1 p2 20  7
O método de Newton
 Exemplo (cont.)
 Os resultados para 5 iterações são apresentados na tabela abaixo:

A solução exata do sistema não-linear é:

x = (0.5,0.0,−0.5235988) t

8
Métodos Quase-Newton
 Aspectos gerais
 O método de Newton exige que a cada iteração sejam calculados
todos os elementos da matriz Jacobiana e resolvido o sistema linear
associado.
 Esses cálculos envolvem elevado esforço computacional e, em
muitas aplicações, não é essencial a determinação exata das
derivadas parciais em todas as iterações.
 Uma das alternativas ao método de Newton é a técnica chamada de
método de Broyden, uma espécie de generalização do método da
secante.
 A desvantagem desta alternativa é a troca da convergência
quadrática do método de Newton para uma convergência
superlinear.
9
Métodos Quase-Newton
 O método de Broyden
 No método da secante usa-se, em substituição a f ′( p1 ) no método
de Newton, a aproximação:
f ( p1 ) − f ( p0 )
f ′( p1 ) ≈
p1 − p0
(0)
 No método de Broyden, a partir de uma condição inicial p , calcula-
(1)
se p do mesmo modo que no método de Newton. Para o cálculo
( 2)
de p e aproximações subseqüentes adota-se procedimento similar
ao método da secante, porém para sistema de equações.
( 2)
 Para o cálculo da aproximação p a matriz jacobiana J p (1) ( ) é
substituída por uma matriz A1 com as seguintes propriedades:

( ) ( ) ( )
A1 p1 − p ( 0 ) = F p (1) − F p ( 0 )
−1
p 2 = p1 − A1 F p (1) ( )
10
Métodos Quase-Newton
 O método de Broyden (cont.)
 Das propriedades de A1 tem-se ainda o seguinte resultado:

( ) [F ( p ) − F ( p ) − J ( p )⋅ ( p )]⋅ ( p )
(0) t
(1) (0) ( 0) (1)
−p ( 0) (1)
−p
A1 = J p ( 0 ) +
(0) 2
p −p
(1)
2

 Portanto, uma vez determinado p ( i ) , i ≥ 1, p ( i +1) é determinado


usando-se as seguintes equações:

yi − Ai −1Si
Ai = Ai −1 + 2
Sit e −1
p (i +1) = p (i ) − Ai F p (i ) ( )
Si 2

onde :
Si = p ( i ) − p ( i −1) e ( ) (
yi = F p ( i ) − F p ( i −1) ) 11
Métodos Quase-Newton
 O método de Broyden – Exemplo:
 Resolver o sistema linear abaixo para p = (0.1,0.1,−0.1) .
( 0) t

1  f1 ( x1 , x2 , x3 ) 
f1 ( x1 , x2 , x3 ) = 3 x1 − cos( x2 x3 ) − = 0,
2 F ( x) =  f 2 ( x1 , x2 , x3 )
f 2 ( x1 , x2 , x3 ) = x12 − 81( x2 + 0.1) 2 + sin x3 + 1.06 = 0, ,  f 3 ( x1 , x2 , x3 ) 
1
f 3 ( x1 , x2 , x3 ) = e − x x + 20 x3 + (10π − 3) = 0
1 2

3
 3 x3 sin x2 x3 x2 sin x2 x3   − 1.199950 
  F ( p (0)
) = − 2.269833
J ( x1 , x2 , x3 ) =  2 x1 − 162( x2 + 0.1) cos x3   
− x2 e − x1x2 − x1e x1x2 20   8.462025 

A0 = J ( p1( 0) , p2( 0 ) , p3( 0) )


 3 9.999836 × 10 −4 − 9.999833 × 10 −4 
 
= 0.2 − 32.4 0.995042 
− 9.900498 × 10 −2 − 9.900498 × 10 −2 20  12
 
Métodos Quase-Newton
 O método de Broyden – Exemplo (cont.):
(
A0−1 = J p1( 0 ) , p2( 0 ) , p3( 0) )
−1

 0.32222212 1.023852 × 10 −3 1.615701×10 −5 


 
= 2.108607 ×10 −3 − 3086883 × 10 − 2. 1.535836 ×10 −3 
1.660520 ×10 −3 − 1.527577 × 10 −4 5.000768 × 10 −2 

 0.4998697  − 3.394465 ×10 −4 


,  
p (1)
=p (0) −1
− A0 F p ( ) ( 0)
= 1.946685 ×10 − 2  F ( p (1) ) =  − 0.3443879 
 3.188238 ×10 − 2 
 − 0.5215205   

 1.199611   0.3998697 
y1 = F ( p (1) ) − F ( p ( 0 ) ) =  1.925445  S1 = p (1) − p ( 0 ) = − 8.053315 ×10 − 2 
− 8.430143  − 0.4215204 

S1t A0−1 y1 = 0.3424604 13


Métodos Quase-Newton
 O método de Broyden – Exemplo (cont.):
 Para o cálculo de Ai−1diretamente:
A =A −1 −1
+
(S − A y )⋅ S A
i
−1
i −1 i i
t −1
i −1
i i −1 t −1
S A y
i i −1 i


A1−1 = A0−1 + 
1 
 [(S 1 )
− A0−1 y1 ⋅ S1t A0−1 ]
 0.3424604 
 0.3333781 1.11050 ×10 −5 8.967344 × 10 −6 
 
= − 2.021270 ×10 −3 − 3.094849 × 10 − 2 2.196906 × 10 −3 
 1.022214 ×10 −3 − 1.650709 × 10 −4 5.010986 ×10 − 2 

 0.4999863 
−1
( )
p ( 2 ) = p (1) − A1 F p (1) = 8.737833 ×10 −3 
 − 0.5231746 

14
Métodos Quase-Newton
 O método de Broyden – Exemplo (cont.):
 Os resultados para 5 iterações são apresentados na tabela abaixo:

A solução exata do sistema não-linear é:

x = (0.5,0.0,−0.5235988)t
15
O método Steepest Descent
 Aspectos gerais
 A vantagem dos métodos de Newton e Quase-Newton, para a
resolução de sistemas de equações não-lineares, é a velocidade de
convergência (convergência quadrática), porém, exigem que seja
conhecida uma aproximação inicial suficientemente próxima da
solução para assegurar a convergência.
 O método Steepest Descent ou Gradiente Descendente determina
um mínimo local para uma função multi-variável da forma g : ℜ → ℜ
n

 É um método de natureza global por apresentar convergência a


qualquer condição inicial, porém com comportamento linear.
 Assim, esse método é freqüentemente usado para gerar
aproximações inicias para as técnicas baseadas no método de
Newton.

16
O método Steepest Descent
 Formulação matemática
 Considere o sistema de equações não-lineares do tipo:

f1 ( x1 , x2 ,… , xn ) = 0 F(x) = 0 , onde
f 2 ( x1 , x2 ,… , xn ) = 0 F = ( f1 , f 2 ,… , f n )t

x = ( x1 , x2 ,… , xn ) t
f n ( x1 , x2 ,… , xn ) = 0
 A solução do sistema acima, x = ( x1 , x2 ,… , xn ),t é precisamente o
mesmo ponto em que a função g : ℜ n → ℜ , definida abaixo, atinge o
seu valor mínimo.
n 2

g ( x1 , x2 ,… , xn ) = ∑ [ f i ( x1 , x2 ,… , xn )]
i =1

17
O método Steepest Descent
 Algoritmo conceitual base
 O algoritmo para encontrar um mínimo local de g : ℜ n → ℜ , é
descrito como segue:
 Calcular g para uma aproximação inicial p ( 0) = ( p1( 0) , p2( 0) ,… , pn( 0) ) t
 Determinar uma direção a partir de p ( 0 ) que resulta em decréscimo no
valor de g.
 Deslocar uma quantidade adequada nesta direção e denominar o novo
(1)
ponto de p .
 Repetir os dois passos anteriores atribuindo o valor de p (1) para p ( 0 ) e,
assim, sucessivamente até a convergência da solução.
 Observe-se que no algoritmo acima escolhe-se o negativo da
direção do gradiente de g : ℜ → ℜ como direção de
n

deslocamento, daí a denominação do método.

18
O método Steepest Descent
 Direção do gradiente
 Define-se o gradiente de g : ℜ → ℜ , ∇g (x) , para x = ( x1 , x2 ,… , xn ),
n t

como a seguir: t
 ∂g ( x) ∂g ( x) ∂g ( x) 

∇g ( x ) =  , ,…, 
 ∂x1 ∂x2 ∂xm 

 Observe-se que um valor mínimo para g (x) é obtido quando o vetor


gradiente, ∇g (x), for nulo.
 Derivada direcional n

∑ i =1
2
 Suponha que v = ( v ,
1 2v , … , v n ) t
é um vetor ∈ ℜ n
com v 2
= v 2

i =1
 A derivada direcional de g (x) na direção de v é definida por:
1
Dv g ( x) = lim
h →0 h
[g ( x + hv) − g ( x)] = v ⋅ ∇g ( x) Dv g ( x) = v ⋅ ∇g ( x)
 Note que para v paralelo a ∇g (x) ocorre o máximo de Dv g (x)19
O método Steepest Descent
 Direção de maior decrescimento da função multivariável
 A direção de maior decrescimento no valor de g (x) é a direção dada
pelo negativo do vetor gradiente, − ∇g (x) , conforme ilustrado na
figura abaixo.

 Observe-se que o objetivo do


processo de solução é reduzir o
valor de g (x) para o seu valor
mínimo, a partir de uma condição
( 0)
inicial p .

( )
p (1) = p ( 0) − α∇g p ( 0 ) ,
para α > 0.

20
O método Steepest Descent
 Determinação do passo de deslocamento
 Definida a direção de minimização p = p − α∇g p
(1) (0)
( )
( 0)
o problema
reduz-se ao problema clássico de encontrar o mínimo de uma função
( ) ( )
de uma variável, no caso α , tal que g p (1) < g p ( 0) , usando-se:

(
h(α ) = g p ( 0) − α ∇g ( p ) )
(0)

 A resolução deste problema para α não é trivial, sendo feita


alternativamente, aproximando-se h(α ) por um polinômio quadrático
interpolante, P2 (α ) , que passa pelos pontos α1 , α 2 e α 3 ,
supostamente próximos ao valor mínimo de h(α ).
 Assim, P2 (αˆ ) é um mínimo em [α1 , α 3 ] e, então, α̂ é usado para
determinar a nova iteração para aproximar o valor mínimo de g ( x ) ,
pela equação:
p(1)
=p
( 0)
( )
− αˆ∇g p
( 0)

21
O método Steepest Descent
 Determinação do intervalo [α1 , α 3 ]
 No início de cada iteração atribui-se α1 = 0 e α 3 = 1.
 Se h(α 3 ) ≥ h(α1 ) , faz-se sucessivas divisões de α 3 por 2 até que
ocorra h(α 3 ) < h(α1 ).
 Finalmente, escolhe-se α 2 = α 3 / 2 .

22
O método Steepest Descent
 Exemplo
 Considere o sistema:
1 Para a condição
f1 ( x1 , x2 , x3 ) = 3 x1 − cos( x2 x3 ) − = 0,
2 inicial p (0)
= ( 0, 0, 0) t

f 2 ( x1 , x2 , x3 ) = x12 − 81( x2 + 0.1) 2 + sin x3 + 1.06 = 0,


1
f 3 ( x1 , x2 , x3 ) = e − x1x2 + 20 x3 + (10π − 3) = 0
3
 A função multivariável é, então:

g ( x1 , x2 ,… , xn ) = [ f1 ( x1 , x2 , x3 )] + [ f 2 ( x1 , x2 , x3 )] + [ f 3 ( x1 , x2 , x3 )]
2 2 2

23
O método Steepest Descent
 Exemplo (cont.)
g ( x1 , x2 ,… , xn ) = [ f1 ( x1 , x2 , x3 )] + [ f 2 ( x1 , x2 , x3 )]
2 2

+ [ f 3 ( x1 , x2 , x3 )]
2
 O gradiente é:

 ∂f1 ( x) ∂f 2 ( x) ∂f 3 ( x) 
2 f1 ( x) + 2 f 2 ( x) + 2 f 3 ( x) 
 ∂ x 1 ∂ x 1 ∂ x 1 
∂f ( x) ∂f ( x) ∂f ( x)
∇g ( x1 , x2 , …, xn ) ≡ 2 f1 ( x) 1 + 2 f 2 ( x) 2 + 2 f 3 ( x) 3 
 ∂x2 ∂x2 ∂x2 
 ∂f1 ( x) ∂f 2 ( x) ∂f 3 ( x) 
2 f1 ( x) + 2 f 2 ( x) + 2 f 3 ( x) 
 ∂x3 ∂x3 ∂x3 

 ∂f1 ( x) ∂f 2 ( x) ∂f 3 ( x) 
 
ou  ∂x1 ∂x1 ∂x1   f ( x) 
1
∂f ( x) ∂f 2 ( x) ∂f 3 ( x)   
∇g ( x1 , x2 , …, xn ) ≡ 2 ⋅  1 f ( x )
 ∂x2 ∂x2   
2
∂x2
 ∂f ( x)  
∂f 2 ( x) ∂f 3 ( x)   f 3 ( x) 
 1 
 ∂x3 ∂x3 ∂x3  24
O método Steepest Descent
 Exemplo (cont.)
 Para p = (0,0,0) , tem-se:
( 0) t

2
 1
[
g ( x1 , x2 , x3 ) = 3 x1 − cos( x2 x3 ) −  + x12 − 81( x2 + 0.1) 2 + sin x3 + 1.06
2
]
 2
2
 1 
+ e − x1x2 + 20 x3 + (10π − 3)
 3 

( )
g p ( 0) = 111.975 e ( )
z 0 = ∇g p ( 0 )
2
= 419.554
 Então, a direção do gradiente é dada por:

1
( )
z = ∇g p ( 0) = (−0.0214514,−0.0193062,0.999583) t
z0

25
O método Steepest Descent
 Determinação do polinômio interpolante P2 (α )
 Define-se, arbitrariamente, α1 = 0, α 2 = 0.5, α 3 = 1.0, obtendo-se:
( ) ( )
g1 = g p ( 0 ) − α1 z = g p ( 0 ) = 111.975 ( )
g 2 = g p ( 0 ) − α 2 z = 2.53557
g3 = g(p (0)
− α z ) = 93.5649
3

 O polinômio P (α ) = g1 + h1α + h3α (α − α 2 ) interpola, nos pontos


( ) (
definidos acima, a função g p − α∇g ( p = g p − αz (ver tabela)
( 0) ( 0) (0)
)

P(α ) = 111.975 − 218.878α + 400.973α (α − 0.5) 26


O método Steepest Descent
 Exemplo (cont.)
 Determinar α̂ , tal que P(α ) = 111.975 − 218.878α + 400.973α (α − 0.5)
seja mínimo.
P′(α ) = −218.878 + 2(400.973α ) − (0.5)(400.937) = 0 αˆ = 0.522959

g 0 = g ( p ( 0 ) − αˆz ) = 2.32762
g 0 < g1 e g 0 < g 3
 Então:

p (1) = p ( 0 ) − αˆz = p ( 0 ) − 0.522959 z = (0.0112182 , 0.0100964 , − 0.522741) t

( )
g p (1) = 2.32762
27
O método Steepest Descent
 Exemplo (cont.)
 A tabela abaixo contém os resultados para 4 iterações.

 A solução exata do sistema não-linear é:

x = (0.5,0.0,−0.5235988)t
( 2)
 Observe-se que p pode ser considera uma condição inicial
apropriada para o método de Newton.
28

Você também pode gostar