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) Cálculo Numérico Aula 9 - 1/28 ©Prof. Lineu Mialaret 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. Cálculo Numérico Aula 9 - 2/28 ©Prof. Lineu Mialaret 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. Cálculo Numérico Aula 9 - 3/28 ©Prof. Lineu Mialaret 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. Cálculo Numérico Aula 9 - 4/28 ©Prof. Lineu Mialaret 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, Cálculo Numérico Aula 9 - 5/28 ©Prof. Lineu Mialaret Ponto Flutuante Normalizado (4) O expoente exp varia da seguinte maneira, onde: expmín 0; expmáx 1; 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. Cálculo Numérico Aula 9 - 6/28 ©Prof. Lineu Mialaret Ponto Flutuante Normalizado (5) Uma máquina digital (que opera em base 2) armazena um número internamente esquematizada a seguir, Cálculo Numérico Aula 9 - 7/28 da seguinte forma ©Prof. Lineu Mialaret Ponto Flutuante Normalizado (6) b n Parâmetros de aritméticas de ponto flutuante utilizadas em alguns computadores digitais. Cálculo Numérico Aula 9 - 8/28 ©Prof. Lineu Mialaret 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: Cálculo Numérico Aula 9 - 9/28 ©Prof. Lineu Mialaret 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 é, Cálculo Numérico Aula 9 - 10/28 ©Prof. Lineu Mialaret 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 é, Cálculo Numérico Aula 9 - 11/28 ©Prof. Lineu Mialaret 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, Cálculo Numérico Aula 9 - 12/28 ©Prof. Lineu Mialaret 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, Cálculo Numérico Aula 9 - 13/28 ©Prof. Lineu Mialaret Ponto Flutuante Normalizado (12) Exercício 1: Para o SPF anterior, qual é a quantidade de reais positivos exatamente representáveis? Cálculo Numérico Aula 9 - 14/28 ©Prof. Lineu Mialaret 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, Cálculo Numérico Aula 9 - 15/28 ©Prof. Lineu Mialaret Ponto Flutuante Normalizado (14) Exercício 1: Para o SPF anterior, qual é a quantidade de reais positivos exatamente representáveis? Cálculo Numérico Aula 9 - 16/28 ©Prof. Lineu Mialaret 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 é, Cálculo Numérico Aula 9 - 17/28 ©Prof. Lineu Mialaret 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 Cálculo Numérico Aula 9 - 18/28 ©Prof. Lineu Mialaret 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, Cálculo Numérico Aula 9 - 19/28 ©Prof. Lineu Mialaret 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. Cálculo Numérico Aula 9 - 20/28 ©Prof. Lineu Mialaret 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ín exp expmáx); A mantissa representa um número finito de números (bn-1 m bn-1) Cálculo Numérico Aula 9 - 21/28 ©Prof. Lineu Mialaret 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. Cálculo Numérico Aula 9 - 22/28 ©Prof. Lineu Mialaret 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. Cálculo Numérico Aula 9 - 23/28 ©Prof. Lineu Mialaret 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. Cálculo Numérico Aula 9 - 24/28 ©Prof. Lineu Mialaret 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, Cálculo Numérico Aula 9 - 25/28 ©Prof. Lineu Mialaret 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. Cálculo Numérico Aula 9 - 26/28 ©Prof. Lineu Mialaret 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. Cálculo Numérico Aula 9 - 27/28 ©Prof. Lineu Mialaret 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, Cálculo Numérico Aula 9 - 28/28 ©Prof. Lineu Mialaret