Cálculo Numérico / Métodos Numéricos Solução de sistemas ...€¦ · Sistema linear. Processo...

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

Transcript of Cálculo Numérico / Métodos Numéricos Solução de sistemas ...€¦ · Sistema linear. Processo...

  • 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

    ),( 00yxg

    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

    { }tsrt

    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,00833,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,00833,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: { } ε=−=∞

    ε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,00021,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,00021,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:

    { } ε=−−=∞

    εkzContinua, k = k + 1 =

    2

  • Teste de parada:{ } ε=−−=∞

    ε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,00000612,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,00000612,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: { } ε

  • 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