• Nenhum resultado encontrado

Sistema de ponto flutuante

N/A
N/A
Protected

Academic year: 2021

Share "Sistema de ponto flutuante"

Copied!
20
0
0

Texto

(1)

Sistema de ponto flutuante

Exemplo: FP(10,4,2,A) e FP(10,4,2,T) ↑ ↑ ↑ = 2 dígit 4 dígitos na mantissa base 10 A=Arredondamento T=Truncat os no

expoente ura ( , , ,_)p ( 10 , 4 , 2 , _ )

P q F

F b P

Formato normalizado – com excepção da representação do número zero, d‒1≠0  − ± − − − ± = ± × → = ±  × 2 dígitos (base 10) 1 0 1 2 3 4 4 dígitos (da base

( ) 10) (0, ) 10 t t t x m b x d d d d − ≤ ≤ → ≤ < → 1 ≤ < pelo que 0,1000 m 0,9999 0,1 m 1 b m 1

(2)

Unidade de arredondamento, u

Exemplo: FP(10,4,2,T)

Unidade de arredondamento, u – majorante do erro relativo (possível de ser cometido) na representação dum número

− × − × − = = = ×    t t t x x m b m b m m e x m b m − − ≤ < → 1 ≤ < → = 1 = min( ): 0,1m m 1 b m 1 min( )m b 0,1 − − −

→ max ( ) max=  =max  ≤ max( ) < min( ) x x m m m m e u x m m =0,1000320,  = ( ) 0,1000= → − = 0,0000320 0,0001< x x fl x x x − − −  < = → −  < max(m m) 0,0001 10 p max(m m) b p − − − − − − − < = = 3 → < = 1 → < = 1 1 1 0,0001 10 0,001 10 10 0,1 10 p p p b p u u u b b −  max(m m): =0,1000784,  = ( ) 0,1000= → − = 0,0000784 0,0001< x x fl x x x =0,1000999,  = ( ) 0,1000= → − = 0,0000999 0,0001< x x fl x x x

(3)

Unidade de arredondamento, u

Exemplo: FP(10,4,2,A)

Unidade de arredondamento, u – majorante do erro relativo (possível de ser cometido) na representação dum número

− × − × − = = = ×    t t t x x m b m b m m e x m b m − − ≤ < → 1 ≤ < → = 1 = min( ): 0,1m m 1 b m 1 min( )m b 0,1 − − −

→ max ( ) max=  =max  ≤ max( ) < min( ) x x m m m m e u x m m =0,1000320,  = ( ) 0,1000= → − = 0,0000320 0,0001 / 2< x x fl x x x − − −  ≤ ×1 = ×1 → −  ≤ ×1 max( ) 0,0001 10 max( ) 2 2 2 p p m m m m b − − − − − − − × × × < 12 = = × 3 → < 12 = × 1 → < 12 = × 1 1 1 0,0001 10 1 1 0,0005 0.5 10 10 0,1 10 2 2 p p p b p u u u b b −  max(m m): =0,1000784,  = ( ) 0,1001= → | − = −| | 0,0000216| 0,0001 / 2< x x fl x x x =0,1000500,  = ( ) 0,1000= → − = 0,0000500 0,0001 / 2x x fl x x x

(4)

Unidade de arredondamento, u

Exemplo: FP(2,24,7,T)

Unidade de arredondamento, u – majorante do erro relativo (possível de ser cometido) na representação dum número

− × − × − = = = ×    t t t x x m b m b m m e x m b m − − − ≤ < → 1 ≤ < → = 1 = 1 2 min( ): (0,10...0)m m 1 b m 1 min( )m b 2 − − −

→ max ( ) max=  =max  ≤ max( ) < min( ) x x m m m m e u x m m ↑ ↑ ↑ ↑ − − − − =  = = → − = < 24 24 2 2 2 2 2 4 24 (0,10... 0 010) , ( ) (0,10... 0 ) (0,0... 0 010) (0,000 1 ) x x fl x x x − ↑ − − − −  < = 2 = → −  < 2 4 2 4 max(m m) (0,00...0 1 ) 2 2 p max(m m) b p − − − − − − − − − − < 24 = 1 24 = 23 → < = 1  < = 1 1 1 1 2 2 2 2 2 2 2 p p p p b u u b u b −  max(m m): ↑ ↑ ↑ ↑ − − − − =  = = → − = < 24 24 2 2 2 2 2 4 24 (0,10... 0 111) , ( ) (0,10... 0 ) (0,0... 0 111) (0,000 1 ) x x fl x x x ↑ ↑ ↑ ↑ − − − − =  = = → − = < 24 24 2 2 2 2 2 4 24 (0,10... 0 101) , ( ) (0,10... 0 ) (0,0... 0 101) (0,000 1 ) x x fl x x x

(5)

Unidade de arredondamento, u

Exemplo: FP(2,24,7,A)

Unidade de arredondamento, u – majorante do erro relativo (possível de ser cometido) na representação dum número

− × − × − = = = ×    t t t x x m b m b m m e x m b m − − − ≤ < → 1 ≤ < → = 1 = 1 2 min( ): (0,10...0)m m 1 b m 1 min( )m b 2 − − −

→ max ( ) max=  =max  ≤ max( ) < min( ) x x m m m m e u x m m ↑ ↑ ↑ ↑ − − − − =  = = → − = < 24 24 24 2 2 4 2 2 2 (0,10... 0 010) , ( ) (0,10... 0 ) (0,0... 0 010) (0,000 1 ) / 2 x x fl x x x − − ↑ − − −  ≤ × = × 24 = × → −  ≤ × 2 24 1 1 1 1 max( ) (0,00...0 1 ) 2 2 max( ) 2 2 2 2 p p m m m m b − − − − − − − − − − < × 24 = × 1 24 = × 23 → < × = × 1  < × = × 1 1 1 1 1 2 1 1 1 1 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 p p p p b u u b u b −  max(m m): ↑ ↑ ↑ ↑ − − − − =  = = → − = 24 24 24 2 2 2 2 24 (0,10... 0 100) , ( ) (0,10... 0 ) (0,0... 0 100) (0,000 1 ) / 2 x x fl x x x ≤ ↑ ↑ ↑ ↑ − − − − = 2  = = 2 → − = − 2 < 24 24 24 24 2 (0,10... 0 101) , ( ) (0,10... )1 | | | (0,0... 0 011) | (0,000 1 ) / 2 x x fl x x x

(6)

Exemplo 1)

Operações elementares em ponto flutuante (FP)

Passos a seguir:

1) Decomposição dos operandos nas mantissas e expoentes 2) No caso de soma e subtracção, alinhamento das mantissas 3) Operações com mantissas e com expoentes

4) Normalização da mantissa 5) Arredondamento da mantissa = + → × 3 + × 1 123,4 4,321 0,1234 10 0,4321 10 y Exemplos em FP(10,4,2,T) × + × × 3 3 3 0,1234 0,004321 0,127721 10 10 10 = = × 3 ( ) 0,1277 10 fl y y

(7)

Exemplo 2)

Operações elementares em ponto flutuante (FP)

Passos a seguir:

1) Decomposição dos operandos nas mantissas e expoentes 2) No caso de soma e subtracção, alinhamento das mantissas 3) Operações com mantissas e com expoentes

4) Normalização da mantissa 5) Arredondamento da mantissa = − → × 3 − × 1 427,3 2,183 0,4273 10 0,2183 10 y Exemplos em FP(10,4,2,T) × − × × 3 3 3 0,4273 0,002183 0,425117 10 10 10 = = × 3 ( ) 0,4251 10 fl y y

Nota: se não existirem dígitos de guarda × − 3 0,4273 0,00 10 2183 × × 3 3 0,4252 10 10 = = × 3 ( ) 0,4252 10 fl y y

(8)

Exemplo 3)

Operações elementares em ponto flutuante (FP)

Passos a seguir:

1) Decomposição dos operandos nas mantissas e expoentes 2) No caso de soma e subtracção, alinhamento das mantissas 3) Operações com mantissas e com expoentes

4) Normalização da mantissa 5) Arredondamento da mantissa − − × = → = × = × × 1 1 3 2 3 8,475 0,8475 10 0,8475 10 5,478345 10 154,7 0,1547 10 0,1547 y Exemplos em FP(10,4,2,T) − = = × 1 ( ) 0,5478 10 fl y y

(9)

Operações elementares em ponto flutuante (FP)

Passos a seguir:

1) Decomposição dos operandos nas mantissas e expoentes 2) No caso de soma e subtracção, alinhamento das mantissas 3) Operações com mantissas e com expoentes

4) Normalização da mantissa 5) Arredondamento da mantissa

Notas:

1) Existindo dígitos de guarda, a simulação duma operação em FP corresponde a fazermos o cálculo (da operação elementar) e escrever o resultado obtido no formato em FP,

arredondando o resultado para o número de dígitos existentes na mantissa.

2) As operações com os expoentes são operações com números inteiros pelo que não introduzem aproximações (operações exactas).

3) As operações em FP, em geral, não respeitam as propriedades comutativas, distributiva e associativa da aritmética exacta.

(10)

Erros nas operações elementares em ponto flutuante (FP)

Nota: as operações com os expoentes são exactas, os erros provêm das operações com as mantissas = +   → = + ⋅ = ⋅ +  =  = ⋅  ( ) ( ) (1 ) fl x x E fl x x x e x e E e E x e x

[

]

= + = ⋅ + + ⋅ + ⋅ +  ( 1 2) 1 (1 1) 2 (1 2) (1 3) y fl x x x e x e e Soma: = + +1 2 1 1 + 2 2 + 3( 1 + 2)+ y x x e x e x e x x ϑ arredondamento do argumento arredondamento do resultado termos de ordem superior = +1 2 y x x = − = 1 1 + 2 2 + 3( 1 + 2)+ E y y e x e x e x x ϑ = E2 + e e u y ϑ (x1 e x2 têm o mesmo sinal) → ≤ ⋅ + ⋅ + ⋅ + + 2 1 2 1 2 ( ) E u x u x u x x ϑ u → ≤ ⋅ + +  2 1 2 2 ( ) y E u x x ϑ u

(11)

Erros nas operações elementares em ponto flutuante (FP)

Nota: as operações com os expoentes são exactas, os erros provêm das operações com as mantissas = +   → = + ⋅ = ⋅ +  =  = ⋅  ( ) ( ) (1 ) fl x x E fl x x x e x e E e E x e x

[

]

= ⋅ = ⋅ + ⋅ ⋅ + ⋅ +  ( 1 2) 1 (1 1) 2 (1 2) (1 3) y fl x x x e x e e Multiplicação:  = ... = ⋅ +1 2 1 1 2 + 2 1 2 + 3 1 2 + y x x e x x e x x e x x ϑ arredondamento do argumento arredondamento do resultado termos de ordem superior = ⋅1 2 y x x = − = 1 1 2 + 2 1 2 + 3 1 2 + E y y e x x e x x e x x ϑ

Analogamente se conclui para a divisão: e ≤ 3u

→ ≤ ⋅ ⋅3 1 2 + y E u x x ϑ = E3 + e e u y ϑ

(12)

Erros nas operações elementares em ponto flutuante (FP)

[

]

= − = ⋅ + − ⋅ + ⋅ +  ( 1 2) 1 (1 1) 2 (1 2) (1 3) y fl x x x e x e e Subtracção: = − +1 2 1 1 − 2 2 + 3( 1 − 2)+ y x x e x e x e x x ϑ arredondamento do argumento arredondamento do resultado termos de ordem superior = −1 2 y x x = − = 1 12 2 + 3( 12)+ E y y e x e x e x x ϑ

Se |x1‒x2| for “muito pequeno”, o erro relativo pode ser muito grande

-> cancelamento subtractivo

= x1(1+ + + −e1 e3 ϑ) x2(1+ + +e2 e3 ϑ)

erro absoluto “pequeno”

(em relação à grandeza dos argumentos) (x1 e x2 têm o mesmo sinal) → E ≤|e x1⋅ 1| |+ e x2⋅ 2| |+ e3⋅(x1 −x2)|+ϑ

(

)

→ ≤ ⋅ + + 2 1 2 2 ( ) E u x x ϑ u

(

)

→ ≤ ⋅ + ⋅ + ⋅ + + 2 1 2 1 2 ( ) E u x u x u x x ϑ u + = =  − − + 1 2 1 2 1 2 2 x x E E e e u y x x x x ϑ

(13)

Erros nas operações elementares em ponto flutuante (FP)

Soma: y = +x1 x2 +ϑ 2 2 ( ) e u u (x1 e x2 têm o mesmo sinal) Multiplicação e divisão: y = ⋅x x1 2 , y = x1 / x2 e≤3u+ϑ( )u2 Subtracção: y = −x1 x2 ≤ +ϑ + 1 2 1 2 2 | | | | 2 | | ( ) x x e x u u x

(14)

Processos que podem originar acumulação de erros

Somatório: = =

1 n i i y x ϑ + → e ≤ +(n 1)u ( )u2

(xi – números positivos e negativos)

Algoritmo: Inicialização: s0=0 para i=1 até n fazer

si=si–1 +xi

fim do ciclo i

y=sn

No caso de os xi possuírem o mesmo sinal é possível estimar um majorante do erro relativo

Notar que a ordem pelo qual o cálculo é efectuado não é indiferente

Para minimizar o erro, a variável “auxiliar” si pode ser declarada com precisão acrescida. Se não ocorrer cancelamento subtractivo, o erro raramente ultrapassa uma unidade de

(15)

Processos que podem originar acumulação de erros

Produto interno (de vectores):

= = ⋅ = 

⋅ 1 n i i i s x y x y ϑ + → ≤ + 2 (n 2)u ( )u e Algoritmo: Inicialização: s0=0

para i=1 até n fazer

si=si–1 +xi . yi fim do ciclo i

y=sn

No caso dos termos (xi yi) possuírem o mesmo sinal é possível encontrar um majorante do erro relativo

Tal como no caso do somatório, para minimizar o erro, a variável “auxiliar” si pode ser declarada com precisão acrescida

(16)

Norma IEEE754 – formato simples

Formato simples 32 bits = 4 bytes S Expoente Mantissa

bits -> 1 8 23 Formato normalizado = − ×  × − 1 || 2 127 0 4 bits 1 23 2 ( 1)S ( , ) 2e x d d d ≤ ≤ ⇔ ≤ ≤ ⇔ − ≤ − ≤ 2 2 Expoente: (00000001) e (11111110) 1 e 254 126 e 127 1 72 − − × = × = − × ×  254 127  127 23 127  128  38 2 2 Limite de overflow: (1,11 11) 2 (1,11 11) 2 (2 2 ) 2 2 3,4 10 − − − − × = × = ×  1 127  126 126  38 2 2 Limite de underflow: (1,00 00) 2 (1,00 00) 2 2 1,2 10 − − − − − ↑ − × = × = ×  126 23 126 149  45 2 23

Limite de underflow gradual: (0,00 0 1 ) 2 2 2 2 1,4 10

− − − −

= 1 = 1 24 = 23  × 7

Unidade de arredondamento c/ truncatura: u b p 2 2 1,2 10

− − − −

= ×1 1 = ×1 1 24 = ×1 23  × 7

Unidade de arredondamento c/ arredondamento: 2 2 0,6 10

2 2 2

p

(17)

Norma IEEE754 – formato duplo

Formato simples 64 bits = 8 bytes S Expoente Mantissa

bits -> 1 11 52 Formato normalizado ≤ ≤ ⇔ ≤ ≤ ⇔ − ≤ − ≤ 2 2 Expoente: (00000000001) e (11111111110) 1 e 2046 1022 e 1023 1023 + − + + + × = − × ×  1023 52 1023  1024  308 2 Limite de overflow: (1,11 11) 2 (2 2 ) 2 2 1,8 10 − − − − × = × = ×  1 1023  1022 1022  308 2 2 Limite de underflow: (1,00 00) 2 (1,00 00) 2 2 2,2 10 − − − − − ↑ − × = × = ×  1022 52 1022 1074  324 2 52

Limite de underflow gradual: (0,00 0 1 ) 2 2 2 2 4,9 10

− − − −

= 1 = 1 53 = 52  × 16

Unidade de arredondamento c/ truncatura: u b p 2 2 2,2 10

− − − −

= ×1 1 = ×1 1 53 = ×1 52  × 16

Unidade de arredondamento c/ arredondamento: 2 2 1,1 10

2 2 2 p u b − − − = − ×  × 1023 0 1 52 1 || 3 bits 2 5 ( 1)S ( , ) 2e x d d d

(18)

Número de condição

Avaliar a propagação de erros: análise directa vs. análise indirecta

Dedução de número de condição → − − = → − −       ( ) ( ) ( ) ( ) '( ) lim '( ) x x f x f x f x f x f x f x x x x x

Análise indirecta – número de condição

xx f x( )f x( ) situação 1  ( ) f x situação 2 perturbação de x situação mal condicionada situação bem condicionada

(

)

− −    ( ) ( ) '( ) f x f x f x x x  − ⋅ −          cond ( ) ( ) ( ) '( ) ( ) ( ) x f f e e x f x f x x f x x x f x f x x

(19)

Número de condição

Ou seja, =cond ( )× , cond ( ) ⋅ '( ) ( )

f x

x f x

e f x e f x

f x

cond f(x) representa o factor de ampliação entre o erro relativo do argumento x e o erro do valor da função f(x)

Se cond f(x) for grande, então uma perturbação no valor do argumento x é muito ampliada

Se cond f(x) ≈ 1 (valor pequeno) – função é bem condicionada Se cond f(x) ≈ 106 (valor “grande” (?)) – função é mal condicionada

Nota 1: Se uma função for bem condicionada (num ponto), então deverá existir algoritmo que permita calcular (nesse ponto) o valor da função com precisão. Contudo, podem existir algoritmos que originem imprecisões no cálculo da função.

(20)

Número de condição

Nota 2: cond f(x) é “grande” ou “pequeno” dependendo do nosso objectivo e da incerteza dos argumentos

Considerar, por hipótese, cond ( ) 10f x = 3 → y y− ≈103× x x−

y x

a) se os erros dos argumentos forem da ordem da representação

dos números em computador (por exemplo em formato simples) − ≤ ≈ −7 10 x x u x − − − ≈ × =  3 7 4 10 10 10 y y

y erro inferior a 0,01% erro pequeno (?)(depende da aplicação) b) se os erros dos argumentos forem erros de leitura numa escala (temperatura, distância, velocidade, etc), por exemplo se os erros forem inferiores a 10–4

− −

− ≈ × =

3 4 1

10 10 10

y y

Referências

Documentos relacionados

SEM - Sistema de Estoque Mínimo - QP-PP - 3 Em nossa empresa, a POLIVET - Itapetininga SP Policlínica Cardiologia &amp; Odontologia Veterinária, utilizamos o Sistema de Lote

Mesmo sabendo dos resultados clínicos satisfatórios da resina acrílica odontológica na coluna vertebral de cães e gatos, pouco se sabe sobre o comportamento desse composto,

Assim, o objetivo do presente relato foi descrever as complicações e tratamento de um caso de estenose do canal pélvico decorrente da ausência de redução e fixação de corpo de

Pela análise dos estudos, foi possível observar que a utilização de probióticos em caninos e felinos pode provocar efeitos benéficos na saúde desses animais, como a melhora

Estudo retrospectivo dos aspectos clí nico-patológicos e epidemiológicos de neoplasias oculares e anexiais de animais atendidos no Hospital Veterinário da Universidade Federal da

Seis semanas após a cirurgia, observou-se estreitamento pélvico de 25% em média (variação de cinco a 60%) em todos os 21 gatos deste estudo. Cinco gatos apresentaram

Após quatorze dias de tratamento de ferida, foi possível notar o crescimento do tecido de granulação sadio, dessa forma o paciente foi submetido a um procedimento

This course includes: (i) theoretical expositive lectures, with periods for student questioning and participation; (ii) computing-practical sessions addressing