300 likes | 604 Views
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba Licenciatura em Matemática 1 0 Semestre de 2013. Cálculo Numérico – CN Prof. Lineu Mialaret Aula 9: Noções Básicas sobre Erros (3). Erros de Representação.
E N D
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba Licenciatura em Matemática 10 Semestre de 2013 Cálculo Numérico – CN Prof. Lineu Mialaret Aula 9: Noções Básicas sobre Erros (3)
Erros de Representação • Na construção de um equipamento computacional, uma questão importante a ser considerada em sua arquitetura é a forma que será adotada para representar os dados numéricos. • Basicamente, na memória de um equipamento, cada número é armazenado em uma posição que consiste de um sinal que identifica se o número é positivo ou negativo e um número fixo e limitado de dígitos significativos.
Ponto Flutuante Normalizado (1) • Nas maquinas digitais, um digito binário é denominado BIT (do inglês, binary digit). • Um grupo de oito bits corresponde a 1 byte. Dessa forma, percebe-se que a representação dos números binários num computador é feita com um número finito de bits. • A esse tamanho finito de bits é dado o nome palavra de computador. • O tamanho da palavra do computador depende de características internas à arquitetura do mesmo. • Em geral, os microcomputadores padrão PC têm tamanho de palavra de 16 e 32 bits. • Computadores modernos tem palavras de 64 bits ou mais. • Quanto maior o tamanho da palavra do computador mais veloz e mais preciso será o computador.
Ponto Flutuante Normalizado (2) • Um número no sistema de ponto flutuante é caracterizado por uma base b, um número de dígitos significativos n e um expoente exp. • Diz-se que um número real nr está representado no sistema de ponto flutuante se for possível escrevê-lo da seguinte maneira: • Onde: • m é a mantissa do número; • b 2 é a base do número; e • exp é o expoente da base.
Ponto Flutuante Normalizado (3) • Neste sistema de ponto flutuante, as seguintes condições devem ser verificadas, • Onde: • n é o número máximo de dígitos da mantissa; e • d1,d2,...,dn são os dígitos significativos da mantissa do sistema de representação, com o primeiro dígito satisfazendo a condição • E os demais dígitos satisfazem a condição a seguir,
Ponto Flutuante Normalizado (4) • O expoente exp varia da seguinte maneira, onde: • expmín0; • expmáx1; e • e os expoentes são inteiros. • Exemplo 1: Seja x = 34,2 e seja b = 10 e n = 4. • Logo, x = 0,3420 × 102. • Exemplo 2: Seja x = 0,1 e seja b = 2 e n = 9. • Logo, x = 0,110011001 × 2-3.
Ponto Flutuante Normalizado (5) • Uma máquina digital (que opera em base 2) armazena um número internamente da seguinte forma esquematizada a seguir,
Ponto Flutuante Normalizado (6) b n Parâmetros de aritméticas de ponto flutuante utilizadas em alguns computadores digitais.
Ponto Flutuante Normalizado (7) • A união de todos os números em ponto flutuante, juntamente com a representação do zero, constitui o denominado Sistema de Ponto Flutuante Normalizado (SPF), que se indica por • No SPF o zero é representado da seguinte maneira:
Ponto Flutuante Normalizado (8) • Dado um SPF na forma genérica abaixo, • O menor positivo exatamente representável, não nulo, é o real formado pela menor mantissa multiplicada pela base elevada ao menor expoente, isto é, • O maior positivo exatamente representável é o real formado pela maior mantissa multiplicada pela base elevada ao maior expoente, isto é,
Ponto Flutuante Normalizado (9) • O número máximo de mantissas positivas possíveis é dado por, • O número máximo de expoentes possíveis é dado por, • O número de elementos positivos representáveis é dado pelo produto entre o número máximo de mantissas pelo máximo de expoentes, isto é,
Ponto Flutuante Normalizado (10) • Considerando-se que dado um número real nr SPF tem-se que −nr SPF e a representação do zero também, pode-se concluir que o número total de elementos exatamente representáveis NRt é dado por,
Ponto Flutuante Normalizado (11) • Exemplo 3: Considere o sistema de ponto flutuante SPF (b, n, expmín, expmáx) = SPF (3, 2, – 1, 2), isto é, de base 3, 2 dígitos na mantissa, menor expoente igual a –1 e maior expoente 2. Para este sistema tem-se que, • a) O menor número exatamente representável, • b) O maior número exatamente representável,
Ponto Flutuante Normalizado (12) • Exercício 1: Para o SPF anterior, qual é a quantidade de reais positivos exatamente representáveis?
Ponto Flutuante Normalizado (13) • Exercício 1: Para o SPF anterior, qual é a quantidade de reais positivos exatamente representáveis? • Tem-se que a quantidade de reais positivos exatamente representáveis é dada pelo produto entre todas as mantissas possíveis de dois dígitos, formadas com os dígitos da base 3, isto é, • 0,10; 0,11; 0,12; 0,20; 0,21; 0,22; e • todas as possibilidades de expoentes, que no caso são 1, 0, 1, 2. • Desta forma, os 24 positivos exatamente representáveis estão listados a seguir,
Ponto Flutuante Normalizado (14) • Exercício 1: Para o SPF anterior, qual é a quantidade de reais positivos exatamente representáveis?
Ponto Flutuante Normalizado (15) • Considerando-se o exemplo anterior, sabe-se que se um real x ∈ SPF, então -x ∈ SPF e, como no sistema de ponto flutuante normalizado o zero é uma representação, tem-se que os números reais representáveis de SPF pertencem ao conjunto a seguir, • Todos os reais que não pertencem à união dos intervalos anteriores não são representáveis e qualquer tentativa de representação fora dos intervalos anteriores constitui-se em uma mensagem de erro, isto é,
Ponto Flutuante Normalizado (16) • Erro de Underflow, se a tentativa de representação satisfizer, • Erro de Overflow, se a tentativa de representação satisfizer, • Lembrar que
Ponto Flutuante Normalizado (17) • Exemplo 4: Considere o sistema de ponto flutuante SPF (b, n, emín, emáx) = SPF (2, 2, – 1, 2), isto é, de base 2, 2 dígitos na mantissa, menor expoente igual a –1 e maior expoente 2. Para este sistema tem-se que, • Os números serão • Convertendo para decimal, tem-se • Com isso, os únicos números positivos representáveis nesse computador são,
Ponto Flutuante Normalizado (18) • Ou seja, tem-se os números 1/4,1/2,1,2,3/8,3/4,3/2 e 3, representados na reta numerada abaixo, • Alem desses números, os seus respectivos números negativos e o numero zero também serão representados. • E o número total de elementos é 17. • Obs.: • O conjunto dos números de ponto flutuante é discreto, e não contínuo como os números reais. Não se tem mais o conceito que entre dois números sempre existe um outro. Esse fato pode ter consequência desastrosa.
Erros na Representação dos Números (1) • O conjunto dos números reais é infinito, entretanto, a sua representação em um sistema de ponto flutuante é limitada, pois é um sistema finito. • Essa limitação tem duas origens: • A faixa dos expoentes é limitada (expmínexpexpmáx); • A mantissa representa um número finito de números (bn-1 m bn-1)
Erros na Representação dos Números (2) • Relembrando, sempre que uma operação aritmética produz um número com expoente superior ao expoente máximo, tem-se o fenômeno de Overflow. De forma similar, operações que resultem em expoente inferior ao expoente mínimo tem-se o fenômeno de Underflow. • Exemplo 5: Considerando o Exemplo 4 já apresentado, pode-se observar na figura abaixo quais as regiões que ocorrem overflow e underflow.
Erros na Representação dos Números (3) • Exemplo 6: Considere o sistema de ponto flutuante SPF (b, n, emín, emáx) = SPF (10, 2, - 5, 5), isto é, de base 10, 2 dígitos na mantissa, menor expoente igual a -5 e maior expoente 5. Sejam x = 875 e y = 3172, e deseja-se calcular x×y. • Primeiro, deve-se arredondar os números e armazena-los no formato indicado. • A operação de multiplicação é efetuada usando 2n dígitos. • x = 0,88 × 103, y =0,32 x 104 e x × y = 0,2816 x 107 • Como o expoente é maior que 5, resulta em overflow.
Erros na Representação dos Números (4) • Exemplo 7: Considere o sistema de ponto flutuante SPF (b, n, emín, emáx) = SPF (10, 2, - 5, 5), isto é, de base 10, 2 dígitos na mantissa, menor expoente igual a -5 e maior expoente 5. Sejam x = 0,0064 e y = 7312, e deseja-se calcular x÷y. • Primeiro, deve-se arredondar os números e armazena-los no formato indicado. • A operação de divisão é efetuada usando 2n dígitos. • x = 0,64 × 10-2, y =0,73 x 104 e x÷y = 0,8767 x 10-6 • O resultado dessa operação resultou em um valor menor que o computador pode armazenar, ou seja, resulta em underflow.
Erros na Representação dos Números (5) • Exemplo 8: Seja um computador que opere com apenas 6 dígitos na mantissa, ou seja, que só possa armazenar números no formato nr = ± 0,d1d2d3d4d5d6× 10exp. Como armazenar nessa máquina o número que se segue, • Como o número (0,11)10 que não tem representação binária finita, tem-se neste caso,
Erros na Representação dos Números (6) • Exemplo 9: Seja a representação binária de 0,6 e 0,7, conforme apresentada a seguir, • Se esses dois números forem representados no sistema de ponto flutuante SPF (2, 2, -1, 2), eles serão representados igualmente por 0,10 × 20. • Esse número equivale a 0,5 em decimal. Portanto, tanto o 0,6 quanto o 0,7 serão considerados 0,5.
Erros na Representação dos Números (7) • Exercício 2: Sejam x = 5/3, y = 7/27 e z =8/9, e o sistema de ponto flutuante normalizado SPF (3, 2, –1, 2). Calcular x+(y+z) e (x+y)+z.
Erros na Representação dos Números (8) • Exercício 2: Sejam x = 5/3, y = 7/27 e z =8/9, e o sistema de ponto flutuante normalizado SPF (3, 2, –1, 2). Calcular x+(y+z) e (x+y)+z. • Tem-se então que, • Logo,