Upload
ngothuy
View
223
Download
0
Embed Size (px)
Citation preview
Cálculo Numérico / Métodos Numéricos
Solução de sistemas não lineares
Método de Newton
. 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:
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
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
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)
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)
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
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)
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
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
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
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
Método de Newton
Repetindo o processo, temos o processo iterativo de Newton:
−−
=
−−
+
+
),(
),(),(
1
1
kk
kk
kk
kkkk yxg
yxf
yy
xxyxJ
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
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.
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
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
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
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
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
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
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
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
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
Teste de parada:
{ } ε<=∞ n
k zz ,,max 1 Lz
{ } 01,0025,0025,0,0021,0max =>=−−=∞
εkz
Continua, k = k + 1 = 2
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
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
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!!
Método de Newton Modificado
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
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