cálculo numérico / métodos numéricos solução de sistemas ... filetomando duas funções...

31
Cálculo Numérico / Métodos Numéricos Solução de sistemas não lineares Método de Newton

Upload: others

Post on 29-Oct-2019

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Cálculo Numérico / Métodos Numéricos

Solução de sistemas não lineares

Método de Newton

Page 2: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

. 15:14

Várias equações, várias incógnitas

f1 (x1, x2, ..., xm) = 0f2 (x1, x2, ..., xm) = 0...fm (x1, x2, ..., xm) = 0

Queremos resolver:

Page 3: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Exemplo1: Intersecção de duas parábolas.

Não temos soluções!!!!!!!!!!!!!!!!

( )( ) 01,

02.0,

12

2211

22

1211

=+−=

=−−=

xxxxf

xxxxf

1x

2x

2.0−1

Page 4: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Exemplo (2x2) – 2 variáveis, 2 incógnitas

y

x

raízes

x2 + y2 = 4x2 -y2 = 1

Escrevendo na formado slide anterior

f(x,y) = x2 + y2 - 4 =0g(x,y) = x2 -y2-1

Page 5: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Tomando duas funções quaisquer

f(x,y) = 0g(x,y) = 0

� Suponha que (x0, y0) é uma aproximação de uma solução do sistema.

� Vamos usar o desenvolvimento de Taylor em torno deste ponto:

f(x,y) ≈ f(x0,y0) + fx(x0,y0)(x-x0) + fy(x0,y0)(y-y0)g(x,y) ≈ g(x0,y0) + gx(x0,y0)(x-x0) + gy(x0,y0)(y-y0)

Page 6: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Exemplo - Taylor (1/2)

fx = 2x , fy = 2y , gx = 2x, gy = -2y

Pelo teorema de Taylor, sabemos que perto do ponto (x,y) = (1.5,1.5), podemos escrever:

f(x,y) = x2 + y2 - 4 =0g(x,y) = x2 -y2-1

f(x,y)em torno de (x,y)=(1.5,1.5) ≈ f(x0,y0) + 3(x-x0) + 3(y-y0) g(x,y)em torno de (x,y)=(1.5,1.5) ≈ g(x0,y0) + 3(x-x0) - 3(y-y0)

Page 7: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Exemplo - Taylor (2/2)

f(x,y) = x2 + y2 - 4g(x,y) = x2 -y2-1

f(x,y)(em torno de (x,y)=(1.5,1.5) ≈ f(x0,y0) + 3(x-x0) + 3(y-y0) g(x,y)(em torno de (x,y)=(1.5,1.5) ≈ g(x0,y0) + 3(x-x0) - 3(y-y0)

No ponto (1.6,1.6):

f(x,y) = 1.12 g(x,y) = -1

f(x,y) ≈ 0.5 + 3*0.1 + 3*0.1 = 1.1 g(x,y) ≈ -1 + 3*0.1 - 3*0.1 = -1

Page 8: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Como queremos obter uma raiz:

0 = f(x,y) ≈ f(x0,y0) + fx(x0,y0)(x-x0) + fy(x0,y0)(y-y0)0 = g(x,y) ≈ g(x0,y0) + gx(x0,y0)(x-x0) + gy(x0,y0)(y-y0)

0 ≈ f(x0,y0) + fx(x0,y0)(x-x0) + fy(x0,y0)(y-y0)

0 ≈ g(x0,y0) + gx(x0,y0)(x-x0) + gy(x0,y0)(y-y0)

-f(x0,y0) ≈ fx(x0,y0)(x-x0) + fy(x0,y0)(y-y0)-g(x0,y0) ≈ gx(x0,y0)(x-x0) + gy(x0,y0)(y-y0)

Page 9: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Em forma matricial:

-f(x0,y0) ≈ fx(x0,y0)(x-x0) + fy(x0,y0)(y-y0)-g(x0,y0) ≈ gx(x0,y0)(x-x0) + gy(x0,y0)(y-y0)

−−

=

−−

),(

),(

00

00

0

0

),( 00

yxg

yxf

yy

xx

gg

ff

yxyx

yx

J(x0,y0) = Matriz Jacobiana no ponto (x0,y0)

−−

=

−−

),(

),(

00

00

0

0),( 00 yxg

yxf

yy

xxJ yx

Page 10: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Resolvendo

−−

=

−−

),(

),(

00

00

0

0),( 00 yxg

yxf

yy

xxJ yx

−−

=

−− −

),(

),(

00

00),(

1

0

000

yxg

yxfJ

yy

xxyx

−−

+

=

),(

),(

00

00),(

1

0

000

yxg

yxfJ

y

x

y

xyx

Problema:Custoso calcular J-1

Page 11: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Resolvendo um sistema linear

� Em vez de calcular J-1, vamos chamar (x-x0) de r e (y-y0) de s:

−−

=

),(

),(

00

00),( 00 yxg

yxf

s

rJ yx

−−

=

−−

),(

),(

00

00

0

0),( 00 yxg

yxf

yy

xxJ yx

Matriz conhecida Vetor conhecidoVariáveis

Sistema linear

Page 12: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Processo iterativo

� Ao resolvermos o sistema, teremos s e r e poderemos facilmente obter os novos valores de x0 e y0

−−

=

),(

),(

00

00),( 00 yxg

yxf

s

rJ yx

x = r + x0y = s + y0

Lembre que x, y não são os valores de x, y, mas os valo-res de uma nova aproximação, ou seja:

x1 = r + x0y1 = s + y0

Page 13: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Método de Newton

Repetindo o processo, temos o processo iterativo de Newton:

−−

=

−−

+

+

),(

),(),(

1

1

kk

kk

kk

kkkk yxg

yxf

yy

xxyxJ

Page 14: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Método de Newton

� Podemos generalizar o processo iterativo de Newton para sistemas lineares de dimensão n:

−−

=

−−

+

+

+

),...,,(

),...,,(),...,,(

),...,,(2

1

1

1

1

kkkn

kkk

kkk

kk

kk

kk

kkk

zyxf

zyxfzyxf

zz

yyxx

zyxJM

Precisaremos de métodos eficientes para resolver os sistemas lineares

Page 15: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Método de Newton

Convergência

� Quando o método converge, a convergência équadrática.

� O método de Newton converge se:� As funções fi (x,y,...,z) para i = 1, ..., n e suas derivadas

parciais ate segunda ordem sejam continuas e limitadas numa vizinhança V contendo a raiz (x*,y*,...,z*).

� o determinante do Jacobiano é diferente de zero em V.� A solução inicial deve ser suficientemente próxima da raiz.

Page 16: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Método de Newton - Algoritmo

� resolva o sistema linear

� determine a nova solução

−−

=

),...,,(

),...,,(),...,,(

),...,,(2

1

kkkn

kkk

kkk

kkk

zyxf

zyxfzyxf

t

sr

zyxJ M

kk

kk

kk

ztz

ysy

xrx

+=

+=+=

+

+

+

1

1

1

M

Page 17: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Método de Newton - Algoritmo

� calcule o erro_atual

{ }tsr

t

s

r

zz

yy

xx

kk

kk

kk

,...,,max

1

1

1

==

−−

∞∞+

+

+

MM

norma infinito

Page 18: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Voltando ao exemplo

f(x,y) = x2 + y2 - 4 =0g(x,y) = x2 -y2-1 = 0

Iteração de Newton:

fx = 2x, fy = 2ygx = 2x, gy = -2y

−=

=

yx

yx

gg

ffJ

xx

yx

22

22

−−

=

−−

+

+

),(

),(),(

1

1

kk

kk

kk

kkkk yxg

yxf

yy

xxyxJ

Page 19: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Voltando ao exemplo y

x

−−

=

−−

+

+

),(

),(),(

1

1

kk

kk

kk

kkkk yxg

yxf

yy

xxyxJ

−−

=

−−

− +

+

),(

),(

22

22

1

1

kk

kk

kk

kk

kk

kk

yxg

yxf

yy

xx

yx

yx

Critério de parada: erro menor que 10-2

=

=

5,1

5,102

010

x

xx

Page 20: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Resolução do Exemplo:

Cálculo no ponto inicial:

=

=

5,1

5,102

010

x

xx

0x

−=

−=′=

−=

−−=

−−=−+=−=−=

33

33

22

22)(

1

5,0

1

5,0

1)(

4)()(

21

210

22

21

02

22

21

010

xx

xxF

xxf

xxfF

xA

x

xxb

)22()(,1)(

)22()(,4)(

21222

212

21122

211

xxfxxf

xxfxxf

−=∇−−==∇−+=

xx

xx

−=

=′∂

∂∂

∂∂

∂∂

21

21)()(

)()(

22

22)(

2

2

1

2

2

1

1

1

xx

xxF

xf

xf

xf

xf

xx

xx

Jacobianamatriz

x321

Page 21: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Resolva o sistema: bzA =Eliminação de Gauss

−=⇒

−=

− 25,0

0833,0

1

5,0

33

33

2

1 zz

z

Determine nova solução: zxx +=+ kk 1

=

−+

=+=

25,1

5833,1

25,0

0833,0

5,1

5,101 zxx

0x1x

Page 22: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Resolva o sistema: bzA =Eliminação de Gauss

−=⇒

−=

− 25,0

0833,0

1

5,0

33

33

2

1 zz

z

Determine nova solução: zxx +=+ kk 1

=

−+

=+=

25,1

5833,1

25,0

0833,0

5,1

5,101 zxx

Teste de parada: { } ε<=∞ n

k zz ,,max 1 Lz

{ } 01,025,025,0,0833,0max =>=−=∞

εkz

Continua, k = k + 1 = 1

0x1x

Page 23: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

2a. iteração:

=

=

25,1

5833,112

111

x

xx

−=

−=′=

−=

−−=

−−−+−=−=

5,21667,3

5,21667,3

22

22)(

0557,0

0693,0

0557,0

0693,0

1

4)(

21

211

22

21

22

211

xx

xxF

xx

xxF

xA

xb

Resolva o sistema:

bzA =

−−

=⇒

−=

− 025,0

0021,0

0557,0

0693,0

5,21667,3

5,21667,3

2

1 zz

z

Page 24: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

2a. iteração:

=

=

25,1

5833,112

111

x

xx

−=

−=′=

−=

−−=

−−−+−=−=

5,21667,3

5,21667,3

22

22)(

0557,0

0693,0

0557,0

0693,0

1

4)(

21

211

22

21

22

211

xx

xxF

xx

xxF

xA

xb

Resolva o sistema: bzA =

−−

=⇒

−=

− 025,0

0021,0

0557,0

0693,0

5,21667,3

5,21667,3

2

1 zz

z

Determine nova solução:

zxx +=+ kk 1

=

−−

+

=+=

225,1

5812,1

025,0

0021,0

25,1

5833,112 zxx

0

1

2

Page 25: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Teste de parada:

{ } ε<=∞ n

k zz ,,max 1 Lz

{ } 01,0025,0025,0,0021,0max =>=−−=∞

εkz

Continua, k = k + 1 = 2

Page 26: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Teste de parada:{ } ε<=

∞ nk zz ,,max 1 Lz

{ } 01,0025,0025,0,0021,0max =>=−−=∞

εkz

Continua, k = k + 1 = 23a. iteração:

=

=

225,1

5812,122

212

x

xx

−=

−=′=

−=

−−=

−−−+−=−=

45,21624,3

45,21624,3

22

22)(

000431,0

000818,0

000431,0

000818,0

1

4)(

21

211

22

21

22

212

xx

xxF

xx

xxF

xA

xb

Page 27: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Resolva o sistema: bzA =

−−

=⇒

−=

− 000255,0

0000612,0

000431,0

000818,0

45,21624,3

45,21624,3

2

1 zz

z

Determine nova solução: zxx +=+ kk 1

=

−−

+

=+=

2247,1

5811,1

000255,0

0000612,0

225,1

5812,123 zxx

Page 28: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Resolva o sistema: bzA =

−−

=⇒

−=

− 000255,0

0000612,0

000431,0

000818,0

45,21624,3

45,21624,3

2

1 zz

z

Determine nova solução: zxx +=+ kk 1

=

−−

+

=+=

2247,1

5811,1

000255,0

0000612,0

225,1

5812,123 zxx

Teste de parada: { } ε<=∞ n

k zz ,,max 1 Lz

{ } 01,0000255,0000255,0,0000612,0max =<=−−=∞

εkz

Pare = VerdadeiroSolução: k = 3

=

=

2247,1

5811,1

2

13

x

xx Método convergiu

em 3 iterações!!

Page 29: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Método de Newton Modificado

Page 30: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

MÉTODO DE NEWTON MODIFICADO

� O Método de Newton Modificado tem a vantagem de calcular uma única vez a matriz Jacobiana .

� No caso de resolver por fatoração LU, os fatores L e U também serão calculados uma única vez.

( )( )0xJ

Page 31: Cálculo Numérico / Métodos Numéricos Solução de sistemas ... fileTomando duas funções quaisquer f(x,y) = 0 g(x,y) = 0 Suponha que (x 0, y 0) é uma aproximação de uma solução

Aplique o método de Newton Modificadoy

x

−−

=

−−

+

+

),(

),(),(

1

1

kk

kk

kk

kkkk yxg

yxf

yy

xxyxJ

−−

=

−−

− +

+

),(

),(

22

22

1

1

kk

kk

kk

kk

kk

kk

yxg

yxf

yy

xx

yx

yx

Critério de parada com erro menor que 10-2

=

=

5,1

5,102

010

x

xx