Baixe o app para aproveitar ainda mais
Prévia do material em texto
Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Representação Computacional dos Números Patrick Terrematte PEX0103− Cálculo Numérico C&T− Bacharelado em Ciência e Tecnologia UFERSA− Pau dos Ferros 14 de julho de 2017 img/imd.png Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Sumário 1 Caracterização de uma representação Representação dos números reais 2 Representação IEEE 754 Arredondamento Padrão IEEE 754 - Exemplos 3 Questão - Ponto Flutuante - IEE754 4 Erros na representação Representação computacional Tipos de Erros Representação de Erros 5 Adição em Ponto Flutuante 6 Multiplicação em Ponto Flutuante Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação dos números reais Sumário 1 Caracterização de uma representação Representação dos números reais 2 Representação IEEE 754 Arredondamento Padrão IEEE 754 - Exemplos 3 Questão - Ponto Flutuante - IEE754 4 Erros na representação Representação computacional Tipos de Erros Representação de Erros 5 Adição em Ponto Flutuante 6 Multiplicação em Ponto Flutuante Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação dos números reais Representação A representação dos números reais é mais delicada que a dos números inteiros, não só na versão discreta mas também em sua versão impressa. É necessário saber lidar com números extremamente grandes ou pequenos que ocorrem como resultados de medições físicas. A forma precisa pela qual os números reais devem ser representados em um computador varia entre as diferentes máquinas. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação dos números reais Antes da representação computacional de um número racional ser apresentada o número deve ser convertido a sua forma binária. Após se encontrar na forma binária ele deve ser expresso na forma binária exponencial normalizada. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação dos números reais Conceito Normalizar: Apresentar o valor assumindo um conjunto de regras padrão, de forma que todos os valores tenham a mesma estrutura. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação dos números reais Exemplos Exemplos de representação normalizada de números reais: Número de Permutações de Baralho: 52! ∼= 0, 80658175 ∗ 1068 Big bang ocorreu: 16,7 bilhões de anos atrás ∼= 0, 15503742 ∗ 1018 segundos Massa da terra ∼= 0, 5976 ∗ 1025kg Para representar um valor como 0, 5976 ∗ 1025, basta assumir uma base e registrar os valores: parte fracionária (mantissa): 5976 expoente: 25 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação dos números reais Apresentação dos números reais na base numérica Binária Como representar 45,6875 de forma normalizada em base binária? 1 Converter para binário: (45, 6875)10 = (101101, 1011)2 2 Normalizar: (1, 011011011)2 ∗ 25 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação dos números reais Apresentação dos números reais A forma normalizada apresentada pode ser visualizada, para qualquer base numérica da seguinte forma: ±1,mantissa ∗ base±expoente Observe que o número é sempre representado com “1,”. A mantissa representa os dígitos significantes do número. O expoente regula a precisão da representação, é representado por deslocamento (offset). A razão da normalização é garantir que a representação de qualquer número é única. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos IEEE 754 - Expoentes por deslocamento (offset) O expoente negativo não é representado em sinal/magnitude, nem complemento de dois, mas com offset: Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos IEEE 754 - Expoentes por deslocamento (offset) Expoente para precisão simples: Expoente −1 : −1 + 12710 = 12610 = 011111102 Expoente +1 : +1 + 12710 = 12810 = 100000002 Expoente +5 : (+5) + 12710 = 13210 = 100001002 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos IEEE 754 Exemplos em notação científica normalizada na base 2, no formato normalizado 1 mais (“1.”) com precisão simples (utilizando 32 bits): x = 8 (offset de 127) e y = 23. 1.10100012 ∗ 220 (exp. 2010 + 12710 = 14710) 0|10010011|10100010000000000000000 1.10100012 ∗ 2−20 (exp. −2010 + 12710 = 10710) 0|01101011|10100010000000000000000 −1.10100012 ∗ 2−20 (exp. −2010 + 12710 = 10710) 1|01101011|10100010000000000000000 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Número mín. e máx. positivo em precisão simples normalizado (32b): 2−126 até (2− 2−23) ∗ 2127 Overflow e Underflow: Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Padrão IEEE 754 - núm denormalizados Números com expoente menor que Emin são possíveis e possibilitam underflow gradual: x, y pequenos, se x 6= y então x− y 6= 0: Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Patrick Terrematte Representação Computacional dos Números Caracterizaçãode uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Ponto Flutuante - IEE754 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Ponto Flutuante - IEE754 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Descobrindo a machine epsilon da máquina Estimação de ε, dado que 1 + ε 6= 1: Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Sumário 1 Caracterização de uma representação Representação dos números reais 2 Representação IEEE 754 Arredondamento Padrão IEEE 754 - Exemplos 3 Questão - Ponto Flutuante - IEE754 4 Erros na representação Representação computacional Tipos de Erros Representação de Erros 5 Adição em Ponto Flutuante 6 Multiplicação em Ponto Flutuante Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Sumário 1 Caracterização de uma representação Representação dos números reais 2 Representação IEEE 754 Arredondamento Padrão IEEE 754 - Exemplos 3 Questão - Ponto Flutuante - IEE754 4 Erros na representação Representação computacional Tipos de Erros Representação de Erros 5 Adição em Ponto Flutuante 6 Multiplicação em Ponto Flutuante Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Padrão IEEE 754 - Exemplos Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Padrão IEEE 754 - Exemplos Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Padrão IEEE 754 - Exemplos Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteArredondamento Padrão IEEE 754 - Exemplos Padrão IEEE 754 - Exemplos Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questões! Dado um padrão (coerente com o IEEE-754) de ponto flutuante com 16 bits, chamado de ponto flutuante de meia-precisão, com 1 bit de sinal, 5 bits de expoente, representado por codificação por excesso (offset de 15) e 10 bits de mantissa, representada no formato normalizado 1 mais (“1.”), e sabendo-se que os códigos 00000 e 11111 no campo de expoente são reservados para excessões de formato: Qual o maior e menor valor positivo representáveis em formato normalizado? R1.: O maior expoente é “11110”, e pelo offset, 30− 15 = 15. O maior número na mantissa com 10 bits é 1.11111111112, o que corresponde a 2− 2−10. Logo, o maior valor positivo é (2− 2−10) ∗ 215. R2.: O menor expoente é “00001”, e pelo offset, 1− 15 = −14. O menor número na mantissa com 10 bits é 1.00000000002, o que corresponde a 12. Logo, o menor valor positivo é 1 ∗ 2−14. Qual é o tamanho do “buraco no zero” (hole at zero de underflow)? R.: O buraco do zero se extende do zero até o menor valor positivo representável 2−14 e até o maior valor negativo representável, −2−14. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questões! Determine a forma binária do número racional 0.7510. Qual sua representação no formato binário de 32 bits da IEEE 754 (forneça a sequência de 32 bits). Determine a forma binária do número racional (1/3)10. Qual sua representação no formato binário de 32 bits da IEEE 754 (forneça a sequência de 32 bits). Qual número decimal real é expresso pela seguinte palavra? 1|10000001|01000000000000000000000 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão - Ponto Flutuante - IEE754 Questão. Considere uma representação de acordo com o padrão IEE754 com 12 bits: 1 para o sinal, 4 para o expoente (em excesso-de-7) e 7 para a mantissa (em notação “1 mais”). Qual o maior e o menor número positivo (acima de 0) representáveis em formato normalizado? Maior: (−1)0 · 2(14−7) · (1, 1111111)2, 27 ∗ (2 − 2−7) = 28 − 1 = 255 Menor: (−1)0 · 2(1−7) · (1, 0000000)2, 1 ∗ 2−6 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão - Ponto Flutuante - IEE754 Questão. Considere uma representação de acordo com o padrão IEE754 com 12 bits: 1 para o sinal, 4 para o expoente (em excesso-de-7) e 7 para a mantissa (em notação “1 mais”). Qual o maior e o menor número positivo representável no formato denormalizado? Sabendo-se que o código 0000 para o expoente é usado para representar números em formato não normalizado, assumindo prefixo “0,” à esquerda da mantissa, com expoente implícito de “-6”. Maior: (−1)0· 2(1−7) · (0.1111111)2, 2−6 ∗ (1 − 2−7) Menor: (−1)0 · 2(1−7) · (0.0000001)2, 2−6 ∗ 2−7 = 2−13 Extra. Se nos dois itens acima a palavra “positivo” fosse substituída por negativo, como mudariam as respostas? Por que? Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão - Ponto Flutuante - IEE754 Questão. Considere uma representação de acordo com o padrão IEE754 com 12 bits: 1 para o sinal, 4 para o expoente (em excesso-de-7) e 7 para a mantissa (em notação “1 mais”). Qual é o valor do ε de máquina (machine epsilon) desta representação considerando os casos de arredondamento para o mais próximo e arredondamento por truncamento? Quando o arredondamento é por truncamento, o macheps é a distância entre o 1 e o número de máquina seguinte. Esta diferença corresponde ao peso do bit menos significativo da mantissa, e é portanto, 2−7 (já que há 7 bits no campo de mantissa). Quando o arredondamento é para o mais próximo, macheps é a metade deste valor, 2−7/2 = 2−8, pois na metade do caminho entre 1 e o número de máquina seguinte é onde se dá o limite entre os números que arredondam para baixo ou para cima, quando o critério é proximidade. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão - Ponto Flutuante - IEE754 Questão. Considere uma representação de acordo com o padrão IEE754 com 12 bits: 1 para o sinal, 4 para o expoente (em excesso-de-7) e 7 para a mantissa (em notação “1 mais”). Qual é o valor do ε de máquina (machine epsilon) desta representação considerando os casos de arredondamento para o mais próximo e arredondamento por truncamento? Quando o arredondamento é por truncamento, o macheps é a distância entre o 1 e o número de máquina seguinte. Esta diferença corresponde ao peso do bit menos significativo da mantissa, e é portanto, 2−7 (já que há 7 bits no campo de mantissa). Quando o arredondamento é para o mais próximo, macheps é a metade deste valor, 2−7/2 = 2−8, pois na metade do caminho entre 1 e o número de máquina seguinte é onde se dá o limite entre os números que arredondam para baixo ou para cima, quando o critério é proximidade. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão - Ponto Flutuante - IEE754 Questão 1. Considere 24 bits = 1 bit de sinal + 7 bits de expoente (offset de 63) + 16 bits de mantissa (1-mais). Quais são os valores dos números de máquina imediatamente maior e menor do que 220 ? 220 é representado por (−1)0 · 220 · (1.0000000000000000)2 = 210 · 210 = 1024 · 1024 = 1048576 Assim, o número imediatamente menor do que 220 é representado por (−1)0 · 219 · (1.1111111111111111)2 = 219 · (2− 2−16) = 220 − 23 = 1048576− 8 = 1048568 e que o número imediatamente maior do que 220 é o representado por (−1)0 ·220 ·(1.0000000000000001)2 = 220 +24 = 1048576+16 = 1048592 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão - Ponto Flutuante - IEE754 Questão 1. Considere 24 bits = 1 bit de sinal + 7 bits de expoente (offset de 63) + 16 bits de mantissa (1-mais). Quais são os valores dos números de máquina imediatamente maior e menor do que 220 ? 220 é representado por (−1)0 · 220 · (1.0000000000000000)2 = 210 · 210 = 1024 · 1024 = 1048576 Assim, o número imediatamente menor do que 220 é representado por (−1)0 · 219 · (1.1111111111111111)2 = 219 · (2− 2−16) = 220 − 23 = 1048576− 8 = 1048568 e que o número imediatamente maior do que 220 é o representado por (−1)0 ·220 ·(1.0000000000000001)2 = 220 +24 = 1048576+16 = 1048592 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão - Ponto Flutuante - IEE754 Questão 1. Considere 24 bits = 1 bit de sinal + 7 bits de expoente (offset de 63) + 16 bits de mantissa (1-mais). Quais são os valores dos números de máquina imediatamente maior e menor do que 220 ? 220 é representado por (−1)0 · 220 · (1.0000000000000000)2 = 210 · 210 = 1024 · 1024 = 1048576 Assim, o número imediatamente menor do que 220 é representado por (−1)0 · 219 · (1.1111111111111111)2 = 219 · (2− 2−16) = 220 − 23 = 1048576− 8 = 1048568 e que o número imediatamente maior do que 220 é o representado por (−1)0 ·220 ·(1.0000000000000001)2 = 220 +24 = 1048576+16 = 1048592 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Sumário 1 Caracterização de uma representação Representação dos números reais 2 Representação IEEE 754 Arredondamento Padrão IEEE 754 - Exemplos 3 Questão - Ponto Flutuante - IEE754 4 Erros na representação Representação computacional Tipos de Erros Representação de Erros 5 Adição em Ponto Flutuante 6 Multiplicação em Ponto Flutuante Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Computadores podem representar apenas um subconjunto finito de números do conjunto dos números racionais. Esse subconjunto é chamado de números de ponto flutuante. Os resultados das operações aritméticas são apenas aproximados. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Conceitos Alcance: Diz respeito ao número de bits ocupados para armazenar o expoente. Quanto maior for o número de bits para o expoente, maior espectro de alcance do número. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Conceitos Precisão: Se refere ao quão próximo um número representado pelo computador representa o número que ele deseja reproduzir. A precisão é determinada pela quantidade de dígitos empregados na representação (mantissa). Quanto maior o número de bits utilizado, maior o número de dígitos significativos que podem ser armazenados. A constante pi será representada com maior precisão utilizando 8 bytes do que com 4 bytes. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Conceitos Dependendo do número de bits do expoente (alcance) e da mantissa(precisão), podem ocorrer situações de overflow e underflow. Overflow. Designa que um valor não pode ser representado pois seu valor excede a capacidade de armazenamento disponível. Ocorre quando o valor do expoente não pode ser armazenado no número de bits reservados ao expoente. Underflow. Designa que um valor não pode ser representado pois está contido entre 0 e o menor valor real normalizado representável. Ocorre quando o número a ser representado é maior que 0 (zero) mas é menor que o menor número representável. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Conceitos Conclusão: a retirada de um bit da representação do expoente para representação da mantissa aumenta a precisão de representação, pois diminui o “passo” de representação do número. No entanto, a perda de um bit no expoente implica na diminuição da faixa de valores representável. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Conceitos Acurácia: Se refere ao quão próximo um número representado pelo computador está do valor correto do número que ele deseja representar. A acurácia é guiada pelos erros de truncamento e de arredondamento nos procedimentos numéricos empregados. Se os números pi1 = 3,1416304958 e pi2 = 3,1415809485 desejam representar o número pi= 3,141592654. . . , temos que o número pi2 possui maior acurácia que pi1, embora ambos possuam a mesma precisão. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Sumário 1 Caracterização de uma representação Representação dos números reais 2 Representação IEEE 754 Arredondamento Padrão IEEE 754 - Exemplos 3 Questão - Ponto Flutuante - IEE754 4 Erros na representação Representação computacional Tipos de Erros Representação de Erros 5 Adição em Ponto Flutuante 6 Multiplicação em Ponto Flutuante Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Tipos de erros Inerentes: O usuário não tem condições de evitá-los. Surgem de medidas aproximadas, modelos matemáticos, etc. Exemplo Cálculo de uma circunferência. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Tipos de erros Truncamentos: Surgem quando substituímos um processo matemático infinito por uma parte finita dele. Exemplo 1 Cálculo de S = ∞∑ k=0 ak Limitamos para um número n de parcelas. Sn ∼= n−1∑ k=0 ak Rn = S− Sn é um erro de truncamento (ou truncatura). Exemplo 2 (0.11)10 = (0.0001110000101000111101...)2 Considerando um computador que trabalhe com 6 dígitos, (0.11)10 será armazenado como (0.000111)2: S = 30000∑ k=1 xi - Resultado real: S = 3300 - No computador: S = 3299.99 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Tipos de erros Truncamentos: Surgem quando substituímos um processo matemático infinito por uma parte finita dele. Exemplo 1 Cálculo de S = ∞∑ k=0 ak Limitamos para um número n de parcelas. Sn ∼= n−1∑ k=0 ak Rn = S− Sn é um erro de truncamento (ou truncatura). Exemplo 2 (0.11)10 = (0.0001110000101000111101...)2 Considerando um computador que trabalhe com 6 dígitos, (0.11)10 será armazenado como (0.000111)2: S = 30000∑ k=1 xi - Resultado real: S = 3300 - No computador: S = 3299.99 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Tipos de erros Arredondamentos: Erros cometidos pelos computadores ao realizarem operações aritméticas. Exemplo Para pi = 3.14159265 Se a máquina tiver uma mantissa de 6 dígitos: pi ∼= 3.14159 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Tipos de erros Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Sumário 1 Caracterização de uma representação Representação dos números reais 2 Representação IEEE 754 Arredondamento Padrão IEEE 754 - Exemplos 3 Questão - Ponto Flutuante - IEE754 4 Erros na representação Representação computacional Tipos de Erros Representação de Erros 5 Adição em Ponto Flutuante 6 Multiplicação em Ponto Flutuante Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Erro absoluto É denotado por ∆x¯ e representa a diferença entre o valor exato de x e o seu valor aproximado x¯. Ou seja: ∆x¯ = x - x¯ Exemplo. Erros (absolutos, |∆pi| ) de arredondamento para pi = 3, 14159265: |pi − p¯i| = |pi − 3, 14| = 0, 0015926... < 0, 005 = 0, 5 ∗ 10−2 |pi − p¯i| = |pi − 3, 142| = 0, 0004073... < 0, 0005 = 0, 5 ∗ 10−3 |pi − p¯i| = |pi − 3, 1416| = 0, 00000735.. < 0, 00005 = 0, 5 ∗ 10−4 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Erro Relativo É denotado por σx¯ e representa o quociente entre o erro absoluto ∆x¯ e o valor exato x (x 6= 0). Ou seja: σx¯ = ∆x¯ / x σx¯ = (x− x¯) / x Exemplo. Erros (relativos, |σpi|) de arredondamento para pi = 3, 14159265: |pi−p¯i| pi = |pi−3,14|3,14159265 = 0, 00050694... < 0, 005 = 0, 5 ∗ 10−2 |pi−p¯i| pi = |pi−3,142|3,14159265 = 0, 000129648... < 0, 0005 = 0, 5 ∗ 10−3 |pi−p¯i| pi = |pi−3,1416|3,14159265 = 0, 00000234... < 0, 000005 = 0, 5 ∗ 10−5 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto FlutuanteMultiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Exemplos de Erros a) Em 10000 itens a serem contados, foram encontrados 9999. x = 10000 e x¯ = 9999 erro absoluto: |∆x¯| = 1 erro relativo: |σx¯| = 1/10000 = 0, 0001 b) Em 10 itens a serem contados, foram encontrados 9. x = 10 e x¯ = 9 erro absoluto: |∆x¯| = 1 erro relativo: |σx¯| = 1/10 = 0, 1 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto FlutuanteRepresentação computacional Tipos de Erros Representação de Erros Padrão IEEE 754 - precisão Seja x um número Real e F(x) sua representação em Ponto Flutuante. O erro absoluto de representação é F(x)− x Sejam F1 e F2 tais que F1 ≤ x ≤ F2 então F(x) pode ser F1 ou F2. Se F1 = M ∗ 2E então F2 = (M + ulp)2E e o erro máximo é 12 |F1 − F2| = ulp ∗ 2E O erro relativo de representação é δ(x) = |F(x)−x|x Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Aritmética Computacional em Ponto Flutuante Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Adição em Ponto Flutuante Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Adição em Ponto Flutuante Exemplo: 9, 999 ∗ 101 + 1, 610 ∗ 10−1 base decimal, com 3 dígitos de mantissa e 2 dígitos no expoente. 1 compara; desloca significando e ajusta expoente do menor 0, 01610 ∗ 101 trunca para quatro dígitos: 0, 016 ∗ 101 2 soma 3 normaliza 10, 015 ∗ 101 =norm 1, 0015 ∗ 102 4 arredonda e trunca para 4 dígitos se dígito à direita 0 ≤ d ≤ 4, arredonda para menos; senão (5 ≤ d ≤ 9), arredonda para mais: 9, 999 ∗ 101 + 1, 610 ∗ 10−1 = 1.002 ∗ 102 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Adição em Ponto Flutuante Exemplo: 0, 5 + (−716 ) base decimal com 3 dígitos de mantissa e 2 dígitos no expoente, converta para binário e calcule. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Multiplicação em Ponto Flutuante Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Multiplicação em Ponto Flutuante Exemplo: 1, 110 ∗ 1010 × 9, 200 ∗ 10−5 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Multiplicação em Ponto Flutuante Exemplo: 0, 5× (−0, 4375) em representação de 32b IEEE-754 1, 000 ∗ 2× (−1, 110 ∗ 2−2) Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão Considere números em ponto flutuante de acordo com o padrão de representação IEEE-754, mas com 12 bits: 1 para o sinal, 4 para o expoente (em excesso-de-7) e 7 para a mantissa (em notação “1 mais”). 1 Exiba o processo da adição por truncamento: (1, 0000001)2 ∗27 + (1, 1011001)2 ∗25 2 Sabendo que os valores originais foram (129, 5)10 e (54, 25)10. Calcule os erros absolutos de representação de cada um dos números de máquina obtidos nos dois itens anteriores em relação aos resultados originais que deveriam ser obtidos. 3 Extra: Quais seriam os erros de representação se o método de arredondamento utilizado fosse para o mais próximo? Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão Exiba o processo da adição das representações obtidas para: Ajustando para o mesmo expoente: (1, 0000001)2 ∗27 + (0, 0110110 01)2 ∗27 (1, 0110111 01)2 ∗27 Como o arredondamento é por truncamento, o resultado é (1, 0110111)2 ∗ 27.Desta forma, o bit de sinal é 0, o campo de expoente conterá 7+7=14 em binário em 4 bits, que é 1110, e o campo de mantissa 0110111. Juntando tudo, a sequencia de 12 bits da representação fica 0 1110 0110111. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão 1 Sabendo que os valores originais foram (129, 5)10 e (54, 25)10. Calcule os erros absolutos de representação de cada um dos números de máquina obtidos nos dois itens anteriores em relação aos resultados originais que deveriam ser obtidos. 2 Extra: Quais seriam os erros de representação se o método de arredondamento utilizado fosse para o mais próximo? O número de máquina usado para o qual (129, 5)10 foi arredondado para (1, 0000001)2 ∗ 27 = (10000001)2 = (129)10. O erro absoluto é, portanto, a diferença entre os dois: (0, 5)10. O número (54, 25)10 não sofreu arredondamento, e portanto o erro de representação é 0. Extra: A soma de (1, 0110111)2 ∗ 27 = (1011 0111)2 = (183)10. O resultado deveria dar (129, 5)10 + (54, 25)10 = (183, 75)10. O erro é 0, 7510. (1, 0000001)2 ∗ 2−7 Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Questão - Ponto Flutuante - IEE754 Questão. 24 bits = 1 bit de sinal + 7 bits de expoente (offset de 63) + 16 bits de mantissa (1-mais). Sabendo-se que os códigos 0000000 e 1111111 são reservados para números denormalizados e excessões de formato. Calcule, usando aritmética de ponto flutuante, o valor decimal da seguinte operação no sistema acima. 48A348hex + 4A0821hex Convertendo acima para números binários, obtemos: (010010001010001101001000)2 e (010010100000100000100001)2 Convertendo estes números, obtemos (−1)0 · 2(72−63) · (1.1010001101001000)2 = 29 · (1.1010001101001000)2 (−1)0 · 2(74−63) · (1.0000100000100001)2 = 211 · (1.0000100000100001)2. Ajusta os expoentes, movendo a mantissa do número com menor expoente: 211 · (0.011010001101001000)2 + 211 · (1.0000100000100001)2 = 211 · (1.0111000011110011)2 = (101110000111.10011)2 = (2951.59375)10. Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto Flutuante Multiplicação em Ponto Flutuante Perguntas? Patrick Terrematte Representação Computacional dos Números Caracterização de uma representação Representação IEEE 754 Questão - Ponto Flutuante - IEE754 Erros na representação Adição em Ponto FlutuanteMultiplicação em Ponto Flutuante
Compartilhar