aritimetica ponto flutuante e erros

Upload: vilmar-ferreira

Post on 07-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Aritimetica Ponto Flutuante e Erros

    1/8

    1

    Clculo NumricoFaculdade de Cincias Sociais Aplicadas e Comunicao FCSAC

    Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

    Prof. Dr. Sergio Pilling (IPD/ Fsica e Astronomia)

    REVISO DA 1 PARTE DO CURSO

    1 Aritmtica de Ponto Flutuante e Erros em Maquinas digitaisa. Notao ponto flutuanteb. Converso decimal binrioc. Principais fontes de erros de maquinas digitais (Mantissa finita)d. Erro absoluto e erro relativo

    d1. Erros em operaes aritmticasd2. Erros devido a representao truncada ou arredondada dos nmeros

    2 Mtodos iterativos para achar zeros (razes) de funes reaisa. Identificando intervalos que contem razes de funes.b. Quando parar de fazer as contas? Critrios de paradac. Mtodos iterativos

    - Met. Bisseco- Met. Posio Falsa- Met. Ponto Fixo- Met. Newton- Met. Secante.

    3 - Mtodos numricos para resolver sistema de equaes.a. Met. Direto de eliminao de Gauss.b. Met. Iterativos.

    - Critrios de parada- Mtodo de Gauss-Jacobi- Mtodos de Gauss-Seidel

    c. Critrios de convergncia dos Met. Iterativos: Linhas para o met. Gauss-Jacobi e Sassenfeld para omet. Gauss-Seidel

  • 8/6/2019 Aritimetica Ponto Flutuante e Erros

    2/8

    2

    1 Aritmtica de Ponto Flutuante e Erros em Maquinas digitais

    Como um mquina digital armazena um nmero internamente:

    (N)10 Not. Ponto flutuante (exp)10 Converso para binrio (exp)2 Palavra do(mantissa)10 (mantissa)2 Computador

    a. Notao ponto flutuante

    - t =mantissa

    - o que overflow?

    - o que underflow?

    b. Converso decimal binrioEx3. (23)10 (x)2 Usando o mtododas divises sucessivas.

    23 21 11 2 Resposta: (x)2 = (10111)2

    1 5 2

    1 2 2

    0 1

    Ex5. (0,1875)10 (x)2 Usando o mtododas multiplicacoes sucessivas.

    0,1875 0,3750 0,750 0,50 Resposta: (x)2 = (0,0011)2x 2 x 2 x 2 x 2

    0,3750 0,750 1, 50 1, 00

    Ex7. (23,1875)10 (10111,0011)2

    Leitura

    Dividir at que o ltimo quociente

    seja menor que a base

    Parar quando no existir mais a

    parte fracionriaLeitura

    Parte inteira: Mtodo da diviso sucessiva

    Parte fracionria: Mtodo da multiplicao sucessiva

    t

    t

    01010010101010101

    exp mantissa

  • 8/6/2019 Aritimetica Ponto Flutuante e Erros

    3/8

    3

    Ex9. (110,11)2 (x)10 Usando o mtododas multiplicaes pelas potencias da base

    (110,11)2 = 1x22

    + 1x21

    + 0x20

    + 1x2-1

    +1x2-2

    = 6,75 = (6,75)10

    c. Principais fontes de erros de maquinas digitais (Mantissa finita)c1. Representao infinita de um numero binrio!

    (0,11)10 = (0,000111000010100011110101110000101000111101............)2

    Numa maquina com 6 digitos na matissa teremos:

    (0,11)10 (0,000111)2 (0,109375)10

    c2. Mantissa finita para representao de nmeros!

    d. Erro absoluto (EA) e erro relativo (EA)

    || xxEAx = xxx

    x

    EAER xx

    ==

    onde x o valor preciso e x o valor aproximado (armazenado na mquina). x pode ser ainda um valor

    truncado ou arredondado.

    d1. Erros em operaes aritmticas (propagao dos erros)i) Propagao dos erros absolutos:

    Soma e Subtrao Multiplicao Diviso

    ii) Propagao dos erros relativos:

    Soma e Subtrao Multiplicao Diviso

    onde o fator , associado ao erro devido ao fato do computador trabalhar com nmeros truncados ouarredondados dado por:

    = 10-t+1 (no caso de truncamento)

    = 10-t+1 (no caso de arredondamento)

    4 + 2 + 0 + 1/2 + 1/4

    d2

    d0

    d -1

    Repeties

    Truncado

    ||)( yxyx EAEAEA = ||)( xyxy EAyEAxEA += 2)/( y

    EAx

    y

    EAEA

    yx

    yx =

    +

    = yxyx ERyx

    yER

    yx

    xER )( += ||)/( yxyx ERERER++= ||)( yxxy ERERER

    t = nmero de dgitos da mantissa

  • 8/6/2019 Aritimetica Ponto Flutuante e Erros

    4/8

    4

    2 Mtodos iterativos para achar zeros (razes) de funes reaisa. Identificando intervalos que contem razes de funes.

    Seja f(x) contnua num intervalo [a,b]- Se f(a)f(b) < 0 existe PELO MENOS uma raiz dentro desse intervalo.- Se f(a)f(b) > 0 existe 1 nica raiz dentro desse intervalo.

    b. Quando parar de fazer as contas? Quando se atingir a preciso desejada.- Critrios de paradas dos mtodos iterativos

    b1. Nos mtodos com intervalo inicial I=[a,b] (Bisseco e posio falsa). Paramos de fazer a conta quandof(xk)< ou bk-ak< . Qualquer uma das duas condies, a que vier primeiro!

    b2. Nos mtodos com chute inicial (MPF, Newton ou Secante). Paramos de fazer a conta quando

    f(xk)< ou |xk xk-1| < . Qualquer uma das duas condies, a que vier primeiro!

    Em geral (preciso estipulada) um nmero muito pequeno, por exemplo, ~ 0,000001 = 10-6

    c. Os mtodos iterativos.- Mecanismos de iterao dos Mtodos de obteno de zeros de funes reais:I) Mtodo da Bisseco

    A cada iterao diminui-se o intervalo tomando uma media dos valores anteriores.

    Numero de iteraes no mtodo da bisseco:

    II) Mtodo da Posio Falsa

    Intervalo inicial

    2)( kkkk

    baxx

    +==

    Funo recursiva

    )()(

    )()()(

    kk

    kkkkkk

    afbf

    afbbfaxx

    ==Funo recursiva

  • 8/6/2019 Aritimetica Ponto Flutuante e Erros

    5/8

    5

    Os mtodos da bissecao e da Posio Falsa tem convergncia garantida pois os intervalos a cadainterao sempre contem a raiz. Para ambos os mtodos temos o seguinte esquema iterativo:

    Paramos de fazer a conta quando satisfeito o critrio de parada f(xk)< ou bk-ak < , o que vierprimerio e a soluo aproximada ser x =xk

    III) Mtodo da Ponto Fixo (MPF)

    Transformar f(x)=0 numa equao equivalente x=(x) ea partir de um chute inicial x0 gerar uma seqncia { xk}

    de aproximaes atravs da relao

    xk+1 = (xk)Graficamente, uma raiz da equao x=(x) a abscissado ponto de intercesso da reta y =x e da curva y=(x)

    OBS: Esse mtodo nem sempre converge. Uma condio para convergncia que a funo equivalente

    escolhida tenha uma inclinao baixa nas proximidades da raiz, ou seja, que |(xk) | < 1 nas proximidades daraiz . Alem disso, a convergncia ser mais rpida quanto menor for ()

    IV) Mtodo de Newton ou Newton-RaphsonEsse mtodo bem parecido com o MPF, contudo para

    acelerar a convergncia escolhe-se uma () tal que()= 0. Nesse mtodo utilizamos a expresso abaixo no oprocesso iterativo:

    onde xk=0 um chute inicial para a raiz

    OBS: Esse mtodo nem sempre converge. Se f (xk) ~ 0 o mtodo pode divergir.

    Chute

    inicial

    tangente

    Funo recursiva

    a0 x0 b0

    Sinal da fun o

    a1 x 1 b1

    Sinal da fun o a2 x 2 b2

    Sinal da fun o

    .

    .

    .

    Funo recursiva

    xk+1 = (xk)

  • 8/6/2019 Aritimetica Ponto Flutuante e Erros

    6/8

    6

    IV) Mtodo da SecanteUma das desvantagens no mtodo de Newton a

    necessidade de se obter f(x) e calcular seu valor numrico

    a cada iterao, nesse mtodo a derivada da funo

    aproximada pela expresso abaixo:

    onde xk=0 xk=1 so chutes iniciais para a raiz. Nesse

    mtodo utilizamos a expresso abaixo no o processo

    iterativo:

    OBS: Se nesse ltimo mtodo tivermos f(xk) ~ f(xk-1) o mtodo pode divergir!

    3 Mtodos numricos para resolver sistemas de equaes lineares

    a. Mtodo direto de eliminao de Gauss

    Sistema Matriz sanduche Aplicar estratgias para pivoteamento (parcial ou total) Triagularizar a matriz sanduche (Calcular o fator multiplicado e realizar operacoes envolvendo aslinhas) Soluo trivial (de baixo pra cima)Obs. Nas estratgias de pivoteamento parcial trocar a posio de linhas e na estratgia de pivoteamento parcial

    trocar a posio de colunas. Antes de eliminar os termos da prxima coluna aplicar as estratgias de

    pivoetamento novamente se necessrio.

    Exemplo de operaes:

    b. Mtodos Iterativos

    Sistema Verificar se tem convergncia garantida para um dado mtodo (critrio das linhas ouSassenfeld) Escrever o sistema equivalente (isolar xi de cada linha i) Aplicar o mtodo escolhido parar o clculo ao atingir o critrio de parada.Obs. Se o critrio de verificao de convergncia falhar, trocar a posio das linhas e colunas do sistemae aplicar o critrio de verificao novamente.

    Chutes

    iniciais

    tangente

    secante

    xk+1 = (xk;xk-1) =Funo recursiva

  • 8/6/2019 Aritimetica Ponto Flutuante e Erros

    7/8

    7

    Exerccio resolvido mostrando uma comparao entre dois mtodos iterativos: Calcule as duas primeirasiteraes dos mtodos Gauss-Jacobi e Gauss-Seidel do sistema linear abaixo:

    4x1 + 2x2 9x3 = 7

    5x1 6x2 8x3 = 3

    1x1 2x2 + 15x3 = 5

    x1(0)

    1

    Use como chute inicial o vetor (matriz coluna) x(0)

    = x2(0)

    = 2x3

    (0)3

    Etapa inicial Isolar os xi de cada linha i e escrever o sistema de equaes equivalentes.

    4x1 + 2x2 9x3 = 7 x1 = + 7 2x2 + 9x3

    5x1 6x2 8x3 = 3 4

    1x1 2x2 + 15x3 = 5

    x2 = + 3 5x1 + 8x3

    - 6x

    3 = 5 1x

    1+ 2x

    2

    15

    Abaixo temos um diagrama mostrando de forma esquemtica a dependncia de cada um dos termos nas trs

    primeiras iteraes de uma matriz A:3x3 dos mtodos de Gauss-Jacobi e Gauss-Seidel.

    Mtodo de Gauss-Jacobi Mtodo de Gauss-Seidel1(0)

    x1(1)

    x1(2)

    x1(3)

    x1(0)

    x1(1)

    x1(2)

    x1(3)

    x2(0)

    x2(1)

    x2(2)

    x2(3)

    x2(0)

    x2(1)

    x2(2)

    x2(3)

    x3(0)

    x3(1)

    x3(2)

    x3(3)

    x3(0)

    x3(1)

    x3(2)

    x3(3)

    Segue abaixo exemplos para o calculo das trs primeiras iteraes (x(1)

    ,x

    (2)e

    x

    (3)) pelo

    mtodo de Gauss-Jacobi usando como chute inicial:

    x1(1)

    = (+ 7 2x2(0)

    + 9x3(0)

    )/4 = 7.50x2

    (1)= (+ 3 5x1

    (0)+ 8x3

    (0))/(-6) = -3.667

    x3(1)

    = ( 5 1x1(0)

    + 2x2(0)

    )/(15) = -0.133

    x1(2)

    = (+ 7 2x2(1)

    + 9x3(1)

    )/4 = 3.882

    x2(2)

    = (+ 3 5x1(1)

    + 8x3(1)

    )/(-6) = 5.572

    x3(2)

    = ( 5 1x1(1)

    + 2x2(1)

    )/(15) = -1.322

    x1(3)

    = (+ 7 2x2(2)

    + 9x3(2)

    )/4 = -4.010

    x2(3)

    = (+ 3 5x1(2)

    + 8x3(2)

    )/(-6) = 4.497x3

    (3)= ( 5 1x1

    (2)+ 2x2

    (2))/(15) = 0.150

    x1(3)

    -4.010

    x(3) = x2(3) = 4.497

    x3(3)

    0.150

    x1(1)

    7.50x(1)

    = x2(1)

    = -3.667

    x3(1)

    -0.133

    x1(2)

    3.882

    x(2)

    = x2(2)

    = 5.572

    x3(2)

    -1.322

  • 8/6/2019 Aritimetica Ponto Flutuante e Erros

    8/8

    8

    Segue abaixo exemplos para o calculo das trs primeiras iteraes (x(1)

    ,x

    (2)e

    x

    (3)) pelo

    mtodo de Gauss-Seidel usando como chute inicial:

    x1(1)

    = (+ 7 2x2(0)

    + 9x3(0)

    )/4 = 7.50

    x2(1)

    = (+ 3 5x1(1)

    + 8x3(0)

    )/(-6) = 1.75

    x3(1)

    = ( 5 1x1(1)

    + 2x2(1)

    )/(15) = -0.60

    x1(2)

    = (+ 7 2x2(1)

    + 9x3(1)

    )/4 = -0.475

    x2(2)

    = (+ 3 5x1(2)

    + 8x3(1)

    )/(-6) = -0.095

    x3(2)

    = ( 5 1x1(2)

    + 2x2(2)

    )/(15) = -0.314

    x1(3)

    = (+ 7 2x2(2)

    + 9x3(2)

    )/4 = 1.091

    x2(3)

    = (+ 3 5x1(3)

    + 8x3(2)

    )/(-6) = 0.827

    x3(3)

    = ( 5 1x1(3)

    + 2x2(3)

    )/(15) = -0.295

    Se for dada uma preciso quando parar de fazer os clculos? Quando tivermos satisfeito o critrio deparada.

    Critrio de paradaDistancia relativa entre duas iteraes numa certa etapa k, d

    (k), deve ser menor que

    Obs: No exemplo anterior no fizemos nenhum teste para saber se os mtodos iterativos teriam convergncia assegurada ou no. Na prtica antes de utilizarmos esses mtodosnuma maquina digital verificamos se ocritrio das linhas satisfeito (no caso da utilizaoo mtodo de Gauss-Jacobi) ou ocritrio de Sassenfeld(no caso da utilizao do mtodo deGauss-Seidel).

    Critrio das linhas (i < 1) Critrio de Sassenfeld (i < 1)

    x1(1)

    7.50

    x(1)

    = x2(1)

    = 1.75

    x3(1)

    -0.60

    x1(2)

    -0.475

    x(2)

    = x2(2)

    = -0.095

    x3(2)

    -0.314

    x1(3)

    1.091

    x(3)

    = x2(3)

    = 0.827

    x3(3)

    -0.295

    (ex A:4x4)