Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aritmética de Ponto Flutuante I Sistema em Ponto Flutuante Um computador ou uma calculadora representam os números num sistema chamado de ponto flutuante. Neste sistema um número 𝒙 é representado na forma: 𝒙 = ±𝟎. 𝒅𝟏𝒅𝟐𝒅𝟑 …𝒅𝒕 𝒎𝒂𝒏𝒕𝒊𝒔𝒔𝒂 × 𝜷𝒆 • 𝛽 é a base; • 𝑡 é o número de dígitos na mantissa tais que 𝑑1 ≠ 0 e • 0 ≤ 𝑑𝑗 ≤ 𝛽 − 1 para todo 𝑗 = 1,… , 𝑡; • 𝑒 é o expoente com −𝑚 ≤ 𝑒 ≤ 𝑀. Denotamos por 𝐹(𝛽, 𝑡,𝑚,𝑀) o conjunto de todos os pontos flutuantes para 𝛽, 𝑡,𝑚 e 𝑀 fixos. Sistema em Ponto Flutuante Exemplo 1 Considere o sistema 𝐹(10, 3, 2,2). a) Represente os números abaixo neste sistema. 𝑥1 = 0.35 𝑥2 = −5.17 𝑥3 = 0.0123 𝑥4 = 5390 𝑥5 = 0.0003 𝑥1 = +0.350 × 10 0 𝑥2 = −0.517 × 10 1 𝑥3 = +0.123 × 10 −1 𝑂𝑉𝐸𝑅𝐹𝐿𝑂𝑊 𝑈𝑁𝐷𝐸𝑅𝐹𝐿𝑂𝑊 Sistema em Ponto Flutuante Exemplo 1 Considere o sistema 𝐹(10, 3, 2,2). b) Quais são os maiores e os menores números representados neste sistema? • Menor número: 𝑥𝑚 = 0.100 × 10 −2 = 0.001 • Maior número: 𝑥𝑀 = 0.999 × 10 2 = 99.9 Padrão IEEE754 Trabalho publicado em 1985 e organizado pela IEEE cujo objetivo era: • Uniformizar os resultados obtidos por um mesmo programa computacional em diferentes máquinas; • Especificar como representar os números em precisão dupla e simples; • Padronizar o arredondamento nas operações neste sistema; • Estabelecer critérios para padronizar situações como: divisão por zero, operações envolvendo infinito. Padrão IEEE754 Base 𝛽 = 2 : 1 bit = dígito binário 1 byte = conjunto de 8 bits Representação em precisão simples São reservados 32 bits para armazenar o número • 1 bit é reservado para o sinal (positivo ou negativo) • 8 bits são reservados para o expoente da base • 23 bits reservados para a mantissa Padrão IEEE754 Representação em precisão dupla São reservados 64 bits para armazenar o número • 1 bit é reservado para o sinal (positivo ou negativo) • 11 bits são reservados para o expoente da base • 52 bits reservados para a mantissa Padrão IEEE754 Representação em precisão dupla São reservados 64 bits para armazenar o número • 1 bit é reservado para o sinal (positivo ou negativo) • 11 bits são reservados para o expoente da base • 52 bits reservados para a mantissa Padrão IEEE754 • O zero é representado com as sequências de bits todos nulos tanto para o expoente quanto para a mantissa: • O padrão IEEE precisão dupla é capaz de representar números positivos entre 1.79 × 10308 e 2.23 × 10−308, aproximadamente. • O padrão IEEE possui uma representação especial para a divisão por zero, ±∞, e 𝑁𝑎𝑁 (Not a Number) para expressões como 0/0. Sistema em Ponto Flutuante Algarismos significativos Um número 𝑥 = 0. 𝑑1𝑑2𝑑3 …𝑑𝑛 × 𝛽 𝑒 Tem 𝑘 dígitos significativos quando 𝑑1 ≠ 0 e 𝑑𝑗 = 0 para 𝑗 > 𝑘. Exemplo 2: O número 0.0602400 tem 4 algarismos significativos. Sistema em Ponto Flutuante Um número 𝑥 é dito uma aproximação do número 𝑥 quando existe uma pequena diferença entre eles. Tipos de aproximação: • Truncamento: Despreza-se os algarismos restantes • Arredondamento: Troca-se 𝑥 por um outro número 𝑥 de modo que 𝑥 − 𝑥 seja o menor valor possível. Para o arredondamento de um número na base 10, devemos observar o primeiro dígito a ser descartado. Se este dígito é menor que 5, deixa-se os dígitos inalterados, caso contrário, devemos somar 1 ao último dígito remanescente. Sistema em Ponto Flutuante Exemplo 3 Considere o sistema 𝐹(10, 3, 4,4). Represente os números abaixo neste sistema. 𝑥 Arredondamento Truncamento 𝑥1 = 1.25 𝑥2 = 10.053 𝑥3 = −238.15 𝑥4 = 2.71828 𝑥5 = 0.000007 𝑥6 = 718235.82 𝑥1 = +0.125 × 10 1 𝑥2 = +0.101 × 10 2 𝑥3 = −0.238 × 10 3 𝑂𝑉𝐸𝑅𝐹𝐿𝑂𝑊 𝑈𝑁𝐷𝐸𝑅𝐹𝐿𝑂𝑊 𝑥1 = +0.125 × 10 1 𝑥2 = +0.100 × 10 2 𝑂𝑉𝐸𝑅𝐹𝐿𝑂𝑊 𝑈𝑁𝐷𝐸𝑅𝐹𝐿𝑂𝑊 𝑥3 = −0.238 × 10 3 𝑥4 = +0.272 × 10 1 𝑥4 = +0.271 × 10 1 Sistema em Ponto Flutuante Tipos de erros: • Erro absoluto 𝐸𝐴𝑥 = 𝑥 − 𝑥 • Erro relativo 𝐸𝑅𝑥 = 𝑥 − 𝑥 𝑥 Exemplo 4 Considere o número 𝑥4 = 2.71828 do Exemplo 3. Truncamento: 𝐸𝐴𝑥4 = 𝑥4 − 𝑥4 = 2.71828 − 2.71 = 0.00828 𝐸𝑅𝑥4 = 𝑥4 − 𝑥4 𝑥4 = 2.71828 − 2.71 2.71 = 0.003055 Sistema em Ponto Flutuante 𝑥4 = +0.271 × 10 1 Exemplo 4 Considere o número 𝑥4 = 2.71828 do Exemplo 3. Arredondamento: 𝐸𝐴𝑥4 = 𝑥4 − 𝑥4 = 2.71828 − 2.72 = 0.00172 𝐸𝑅𝑥4 = 𝑥4 − 𝑥4 𝑥4 = 2.71828 − 2.72 2.72 = 0.000632 Sistema em Ponto Flutuante 𝑥4 = +0.272 × 10 1 Sistema em Ponto Flutuante • O arredondamento produz erros menores, porém o seu uso acarreta num maior tempo de execução e, por esta razão, o truncamento é mais utilizado. • Em geral, apenas o valor de 𝑥 é conhecido e, neste caso, é impossível obter o valor exato para o erro absoluto. O que se faz é obter um limitante superior para o erro. Exemplo 5 Seja 𝑥 = 2112.9 de tal forma que 𝐸𝐴𝑥 < 0.1. → 𝑥 ∈ (2112.8, 2113) Seja 𝑦 = 5.3 de tal forma que 𝐸𝐴𝑦 < 0.1. → 𝑦 ∈ (5.2 , 5.4) Os dois números estão representados com a mesma precisão? Sistema em Ponto Flutuante Exemplo 5 Neste caso, é melhor utilizar o erro relativo. 𝐸𝑅𝑥 = 𝐸𝐴𝑥 𝑥 ≤ 0.1 2112.9 ≈ 4.7 × 10−5 𝐸𝑅𝑦 = 𝐸𝐴𝑦 𝑦 ≤ 0.1 5.3 ≈ 0.02 Vemos que o número 𝑥 é representado com maior precisão que o número 𝑦. Sistema em Ponto Flutuante Referências Bibliográficas • Vera Lopes e Márcia Ruggiero. Cálculo Numérico - Aspectos Teóricos e Computacionais. 2. Pearson. 2000 • Neide Franco. Cálculo Numérico. 1. Pearson Prentice Hall. 2006 • Selma Arenales, Artur Darezzo. Cálculo numérico : aprendizagem com apoio de software. 1. Thomson Learning. 2008 • Richard L. Burden, J. Douglas Faires. Numerical Analysis. 9. Cengage Learning. 2011 • José Vargas, Luciano Araki. Cálculo Numérico Aplicado. 1. Manoele. 2016 Profa. Dra. Julianna Pinele julianna.pinele@ufrb.edu.br
Compartilhar