calculo numerico: raizes ufcg

Download Calculo Numerico: Raizes UFCG

Post on 15-Nov-2015

14 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

  • Clculo Numrico

    Razes de Equaes No Lineares

    Professores Marcelo Alves de Barros

    Bruno C. N. Queiroz

    J. Anto B. Moura

    Jos Eustquio R. de Queiroz

    Ulrich Schiel

  • Clculo Numrico

    Razes de Equaes No Lineares

    Mtodos Iterativos para a Obteno

    de Zeros Reais de Funes

    Bisseco (ou de Bolzano)

    Falsa Posio

    Ponto Fixo

    x1

    Newton-Raphson

    Secante

    2

    x1 = (a+b)/2

    x1 = ( a f(b) - b f(a) ) / (f(b) - f(a))

    xk+1 = g(xk), x = g(x)

    xk+1 = [xk-1 .f(xk) xk . f(xk-1)]/[f(xk) - f(xk-1)]

    xk+1 = xk f(xk)/f(xk)

  • Clculo Numrico

    Razes de Equaes No Lineares

    1. Define-se o intervalo inicial a partir da aplicao do teorema de Bolzano (encontrar a e b tal que f(a)*f(b) < 0

    2. Calcula-se o ponto mdio de a e b x1 = (a+b)/2

    3. Calcula-se um erro absoluto f(x1) ou um erro relativo |(xk xk+1)/xk| para verificar se x1 uma aproximao aceitvel da raiz da equao.

    Mtodo da Bisseco (ou de Bolzano) Dada uma funo f(x) contnua no intervalo [a,b]

    onde existe uma raiz nica , possvel determinar

    tal raiz subdividindo sucessivas vezes o intervalo que

    a contm pelo ponto mdio de a e b.

    4. Compara-se o erro desta aproximao com uma tolerncia dada (se erro de x1 < tol)

    Se verdadeiro x1 a raiz procurada (raz aceitvel)

    Caso contrrio define-se um novo intervalo para calcular x2

    5) Calcula-se o produto f(a)*f(x1) para determinar em qual dos subintervalos - [a, x1] ou [x1 , b] - se encontra a raiz

    Verifica-se se f(a)*f(x1) < 0

    Se verdadeiro (a, x1) (Logo a = a e b = x1)

    Caso contrario (x1 , b) (Logo a = x1 e b = b)

    Volta-se ao passo 2 e repete-se os passos 2 a 5 at que o mtodo atenda condio de parada

    |f(x)| tolerncia |(xk xk+1)/xk| tolerncia

  • Clculo Numrico

    Razes de Equaes No Lineares

    x a = a0

    f(x)

    b = b0

    x1 = (a + b)/2

    x1

    x a = a1

    f(x)

    x1 = b1

    x2 = (a + x1)/2

    x2

    x

    f(x)

    x1 = b2

    x3 = (x2 + x1)/2

    x2 = a2 x3

    Repete-se o processo at que o valor de x

    atenda s condies de parada (tolerncia).

    Tolerncia (aproximao de zero): um nvel

    de preciso exigido pela aplicao do clculo

    numrico. Depende do equipamento de clculo

    e principalmente do cliente do clculo.

  • Clculo Numrico

    Razes de Equaes No Lineares

    Algoritmo

    k := 0; a0 := a; b0 := b; x0 := a;

    xk+1 := (ak + bk)/2;

    while critrio de convergncia no satisfeito and k L

    if f(ak)f(xk+1) < 0 then /* raiz em [ak , xk+1] */

    ak+1 := ak; bk+1 := xk+1; else /* raiz em [xk+1, bk] */

    ak+1 := xk+1; bk+1 := bk ; endif

    k := k +1; xk+1 := (ak + bk)/2;

    endwhile

    if k > L

    convergncia falhou

    endif

    Mtodo da Bisseco (ou de Bolzano) Dada uma funo f(x) contnua no intervalo [a,b] onde existe uma raiz nica , possvel determinar tal raiz

    subdividindo sucessivas vezes o intervalo que a contm pelo ponto mdio de a e b.

  • Clculo Numrico

    Razes de Equaes No Lineares

    6

    Oficina

    Considere que temos um sistema computacional de aritmtica de

    ponto no flutuante de quatro dgitos, sem circuito arredondador,

    com base decimal e com acumulador de preciso dupla, para

    fazer clculo numrico das razes da funo abaixo:

    1. Encontre uma raiz desta funo com 3 iteraes do mtodo

    da Biseco, usando este computador.

    2. Comente sobre os erros produzidos neste clculo numrico

    f(x) = 1,7 x3 70,85x 1,0934

  • Clculo Numrico

    Razes de Equaes No Lineares

    Exemplo 6:

    Resgatando o Exemplo 5, no qual f(x) = xlogx 1

    7

    Verificou-se que [2, 3]

    g(x)

    x 1 2 3 4

    h(x) y

    5 6

    2 3

  • Clculo Numrico

    Razes de Equaes No Lineares

    Exemplo 6:

    Considerando o mtodo da bisseco e adotando [2, 3] como intervalo inicial

    8

    x1 = (2 + 3)/2 = 2,5

    f(2) = -0,3979 < 0

    f(3) = 0,4314 > 0

    f(2,5) = -5,15.10-3 < 0

    [2,5 , 3] a1 = x1 = 2,5

    b1 = b0 = 3

    x2 = (2,5 + 3)/2 = 2,75

    f(2,5) = -5,15.10-3 < 0

    f(3) = 0,4314 > 0

    f(2,75) = 0,2082 > 0

    [2,5 , 2,75] a2 = a1 = 2,5

    b2 = x2 = 2,75

  • Clculo Numrico

    Razes de Equaes No Lineares

    Exemplo 6:

    9

    x3 = (2,5 + 2,75)/2 = 2,625

    f(2,5) = -5,15.10-3 < 0

    f(2,75) = 0,2082 > 0

    f(2,625) = 0,1002 > 0

    [2,5 , 2,625] a3 = a2 = 2,5

    b3 = x3 = 2,625

    x4 = (2,5 + 2,625)/2 = 2,5625

    f(2,5) = -5,15.10-3 < 0

    f(2,625) = 0,1002 > 0

    f(2,5625) = 0,0472 > 0

    [2,5 , 2,5625] a3 = a2 = 2,5

    b3 = x4 = 2,5625

  • Clculo Numrico

    Razes de Equaes No Lineares

    Exemplo 7:

    Considere-se f(x) = x3 x 1

    10

    x 1 2 3 4

    y

    5 0 -1 -2 -3 -4

    1

    2

    3

    4

    -4

    -3

    -2

    -1

    Intervalo inicial atribudo: [1, 2]

    tol = 0,002

    f(a0) = -1

    f(b0) = 5

    f(x) = 3x2 1

    f(a0) * f(b0) = -5 < 0

    Sinal da derivada constante

    (f(a0) = 2 e f(b0) = 11)

  • Clculo Numrico

    Razes de Equaes No Lineares

    Exemplo 7

    11

    Clculo da 1 aproximao

    x1 = (a0 + b0)/ 2 = (1 + 2)/2 = 1,5

    f(x1) = 1,53 1,5 1 = 0,875

    Teste de Parada

    |f(x1)| =|0,875| = 0,875 > 0,002

    Escolha do novo intervalo

    f(a0).f(x1) = (-1).0,875 = -0,875 logo: a1 = a0 = 1,0 e b1 = x1 = 1,5

  • Clculo Numrico

    Razes de Equaes No Lineares

    Exemplo 7

    12

    Clculo da oitava aproximao x8 = (1,32032 + 1,32813) /2 = 1,32423 Teste de parada !f(x8)! = ! 0,002! = 0,002

    k ak bk f(ak) f(bk) xk+1 f(xk+1 )

    0 1,0000000 2,0000000 -1,000000 5,000000 1,50000000 0,875000

    1 1,0000000 1,5000000 -1,000000 0,875000 1,25000000 -0,296875

    2 1,2500000 1,5000000 -0,296875 0,875000 1,37500000 0,224609

    3 1,2500000 1,3750000 -0,296875 0,224609 1,31250000 -0,051514

    4 1,3125000 1,3750000 -0,051514 0,224609 1,34375000 0,082611

    5 1,3125000 1,3437500 -0,051514 0,082611 1,32812500 0,014576

    6 1,3125000 1,3281250 -0,051514 0,014576 1,32031250 -0,018711

    7 1,3203125 1,3281250 -0,018700 0,014576 1,32421875 -0,002128

    tol = 0,002

  • Clculo Numrico

    Razes de Equaes No Lineares

    Mtodo da Falsa Posio

    Dada uma funo f(x) contnua no intervalo [a,b] onde existe

    uma raiz nica, possvel determinar tal raiz a partir de

    subdivises sucessivas do intervalo que a contm,

    substituindo f(x) no intervalo [a,b] de cada iterao por uma

    reta e tomando como aproximao da raiz a interseco da

    reta com o eixo das abscissas.

    MB: calcula a mdia aritmtica entre a e b, e

    MPF: calcula a mdia ponderada entre a e b com pesos

    lf(b)l e lf(a)l, respectivamente.

    13

  • Clculo Numrico

    Razes de Equaes No Lineares

    MPF: calcula a mdia ponderada entre a e b com

    pesos l(b)l e lf(a)l, respectivamente.

    X = ( a lf(b)l + b lf(a)l ) / (lf(b)l + lf(a)l)

    = ( a f(b) - b f(a) ) / (f(b) - f(a))

    Observe que f(a) e f(b) tm sinais opostos.

    14

  • Clculo Numrico

    Razes de Equaes No Lineares

    Definio do intervalo inicial

    Atribui-se [a,b] como intervalo inicial a0 = a

    b0 = b

    Condies de aplicao

    f(a)*f(b) < 0

    Sinal da derivada constante

    15

  • Clculo Numrico

    Razes de Equaes No Lineares

    Definio dos subintervalos

    Subdivide-se o intervalo pelo ponto de interseco da reta que liga f(a) a f(b) e o eixo das abscissas

    Verifica-se se x1 uma aproximao da raiz da

    equao ()

    Se verdadeiro x1 a raiz procurada

    Caso contrrio define-se um novo intervalo

    16

  • Clculo Numrico

    Razes de Equaes No Lineares

    Determina-se em qual dos subintervalos -

    [a0, x1] ou [x1, b0] - se encontra a raiz

    Calcula-se o produto f(a)*f(x1)

    Verifica-se se f(a)*f(x1) < 0

    Se verdadeiro (a0, x1) Logo: a1 = a0 e b1 = x1

    Caso contrario (x1, b0) Logo a1 = x1 e b1 = b0)

    17

    Definio do novo intervalo

    Repete-se o processo at que o valor de x atenda s condies de parada.

  • Clculo Numrico

    Razes de Equaes No Lineares

    18

    Anlise grfica

    x a = a0

    f(x)

    b = b0

    x1 = (a|f(b)| + b|f(a)| )/ (|f(b)| + |f(a)|)

    x1

    Repete-se o processo at que o

    valor de x atenda s condies de parada.

    x a = a1

    f(x)

    b1 = x1

    x2 = (a|f(x1)| + x1|f(a)| )/ (|f(x1)| + |f(a)|)

    x2

    x a = a2

    f(x)

    b2 = x1

    x3 = (a|f(x2)| + x2|f(a)| )/ (|f(x2)| + |f(a)|)

    x2

  • Clculo Numrico

    Razes de Equaes No Lineares

    19

    Condies de parada

    Se os valores fossem exatos

    f(x) = 0

    (xk xk+1)/xk = 0

    No o sendo

    |f(x)| tolerncia

    |(xk xk+1)/xk| tolerncia

  • Clculo Numrico

    Razes de Equaes No Lineares

    Algoritmo

    k := 0; a0 := a; b0 := b; x0 := a; F0 := f(a0); G0 := f(b0);

    xk+1 := ak - Fk(bk ak)/(Gk Fk); ou xk+1 := (akGk- bkFk)/(Gk Fk);

    whi