Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aritmética de Ponto Flutuante Operações e Propagação de Erros Épsilon de Máquina Alunos Ponto fixo e Ponto flutuante Ponto fixo: • Possui parte inteira e/ou fracionária • Possui notação limitada Ponto flutuante: • Sempre é fracionário. • Possui uma faixa de números maior Exemplo: Um número qualquer • Ponto fixo: 9.9999 ou 0.0001 • Ponto flutuante: 0.999 x 1099 ou 0.1 x 10-99 Ponto fixo e Ponto flutuante Ponto fixo: Ponto flutuante: d Espaço da parte inteira Espaço da parte fracionária Ponto decimal fixo O dígito neste local sempre será d x 𝛽−2 d Mantissa Expoente O valor depende do expoente, tornando-o um ponto flutuante. Sinal do expoente (+ ou - ) Sinal da mantissa (+ ou - ) Ponto fixo e Ponto flutuante Exemplos: • 2343.12 na base 10 • 0.0012234 na base 10 • 123456789 0 2 3 4 3 1 2 + 2 3 4 3 1 2 + 0 4 Ponto fixo Ponto flutuante 0 0 0 0 0 0 0 1 2 2 3 + 1 2 2 3 4 - 0 2 Ponto fixo Ponto flutuante + 1 2 3 4 5 6 8 + 0 7 Ponto fixo Ponto flutuante Ponto Flutuante Forma aritmética para trabalhar com uma grande faixa de números em um ambiente digitalizado. Por ter notação sempre fracionária, não há parte desperdiçada nos espaços de armazenamento no computador Por usar uma grande faixa de números, permite que o computador trabalhar com manipulação e processamento de imagens, gráficos, jogos e programas em 3D, maiores cálculos matemáticos, etc. Representação em Ponto Flutuante A representação em ponto flutuante é baseado na notação científica: De tal forma que 𝛽𝑒 é a base elevado a um expoente (e) e 𝑑𝑡 é o algarismo de acordo com o número de dígitos (t) da mantissa. • Amantissa, no caso, é um número na forma 0. 𝑑1𝑑2𝑑3…𝑑𝑡 • t é o número de dígitos • 0. é a notação do número em ponto flutuante • 𝑑𝑖 ∈ 0,1, … , 𝛽 − 1 e 𝑖 = 1,2, … , 𝑡 • O expoente 𝑒 é definido no intervalo 𝐿, 𝑈 𝑥 = ±0. 𝑑1𝑑2𝑑3…𝑑𝑡 × 𝛽 𝑒 Representação em Ponto Flutuante Um sistema de ponto flutuante pode ser definido como: Onde: β é a base do sistema t é o número de dígitos da mantissa L é o menor valor para o expoente U é o maior valor para o expoente 𝐹 𝛽, 𝑡, 𝐿, 𝑈 Representação em Ponto Flutuante Nota-se que os números em ponto flutuante são discretos. • E podem ser variáveis em seus valores de discretização. 0.25 0.5 0.625 0.75 0.875 1.25 1.5 1.75 2.5 3.5 Representação em Ponto Flutuante Considerando o sistema de um ponto flutuante 𝐹 𝛽, 𝑡, 𝐿, 𝑈 , tem-se que m e M são, respectivamente, o menor e o maior valor absoluto de um ponto flutuante x. Sendo assim, se m ≤ |x| ≤ M, então o número pode ser representado no sistema 𝐹 𝛽, 𝑡, 𝐿, 𝑈 . • Se |x| ≤ m, o número não poderá ser representado no sistema, ocorrendo um underflow. • Se |x| ≥ M, o número não poderá ser representado no sistema, ocorrendo um overflow. Representação em Ponto Flutuante Exemplo: • 𝛽=10; t=3; L=-5; U=5 Os números do sistema serão: 0. 𝑑1𝑑2𝑑3 × 10 𝑒 Onde 0 ≤ 𝑑 ≤ 9 e 𝑑1 ≠ 0 Onde −5 ≤ 𝑒 ≤ 5 Assim, o menor e o maior número representado em valor absoluto (m e M, respectivamente) são: m= 0.100 × 10−5 = 10−6 M= 0.999 × 105 = 99900 Representação em Ponto Flutuante Se o número inserido nesse sistema for 0.123 × 10−7, o sistema acusará como underflow e não poderá ser representado, já que o expoente é menor do que -5. Se o número inserido nesse sistema for 0.456 × 108, o sistema acusará como overflow e não poderá ser representado, já que o expoente é maior do que 5 Arredondamento e Truncamento Trata-se de achar um valor aproximado ҧ𝑥 para o ponto flutuante 𝑥 de tal forma que o valor do erro seja o menor possível. Arredondamento: • 𝑠 + 1 2 𝛽−𝑡 = 0. 𝑑1𝑑2𝑑3... 𝑑𝑡−1𝑑𝑡𝑑𝑡+1... • Na base 10: acontece de acordo com os valores dos dígitos que serão descartados, desde o primeiro dígito à direita ao último. Caso esse dígito tenha valor menor do que 5, seu valor permanece inalterado. Caso seja igual ou maior que 5, deve-se somar +1 ao próximo dígito à esquerda. Truncamento: • Desconsidera-se os dígitos finais da mantissa, independente do seu valor. Arredondamento e Truncamento Exemplos no sistema F(10,3,-5,5) • 10.053 Representação por arredondamento: 0.101 × 102 Representação por truncamento: 0.100 × 102 • 0.001119 Representação por arredondamento: 0.112 × 10−2 Representação por truncamento: 0.111 × 10−2 • 0.00000001 O expoente vai ser menor que -5 Representação ∞ • 7182356.82 O expoente vai ser maior que 5 Representação ∞ Erro Erro absoluto: 𝑥 − ҧ𝑥 Erro relativo: 𝑥 − ҧ𝑥 𝑥 Operações Aritméticas em Ponto Flutuante Adição/Subtração: • Deve-se ajustar o número de menor expoente para igualá-lo ao expoente do outro número. Exemplo: • Somar 0.123 × 104 e 0.45678 × 102, com t=3 Ajustando os números: 0.123 × 104 e 0.0045678 × 104 Somando os números: 0.1275678 × 104 como resultado. Com arredondamento: 0.128 × 104 Com truncamento: 0.127 × 104 Operações Aritméticas em Ponto Flutuante Multiplicação/Divisão: • Realiza-se a multiplicação/divisão nas mantissas e uma soma/subtração nos expoentes, respectivamente. Exemplo: • Multiplicar 0.123 × 104 e 0.45678 × 102, com t=3 Multiplicando as mantissas e somando os expoentes: (0.123 × 0.45678) × 104+2 Resultado: 0.05618394 × 106, ou melhor, 0.5618394 × 105 Com arredondamento: 0.562 × 105 Com truncamento: 0.561 × 105 Propagação de Erros Um grande número de operações elementares é normalmente utilizado em métodos numéricos para buscar a solução de um determinado problema. Assim, mesmo que o erro em uma operação isolada não seja significativo para a solução do problema, é necessário analisar como esses erros se propagam: • Erro ilimitado: desenvolvem-se em uma taxa crescente de propagação, gerando uma sequência de operações instáveis. • Erro limitado: : desenvolvem-se em uma taxa decrescente de propagação, gerando uma sequência de operações estáveis. Épsilon de Máquina Quando tratamos de ponto flutuante, a representação do número real, de certa forma, torna-se finita, pois, quando há um número muito pequeno para ser adicionado a outro número mais relevante, a ideia é que essa soma acrescente pouco ao valor relevante. A ideia é que essa soma acrescente pouco ao valor relevante. Sendo assim, é próprio que a resposta seja o arredondamento deste valor, que, assim, voltará ao valor relevante, sem a soma do pequeno valor inicial. Dessa forma, existe um valor máximo do erro relativo para que o computador considere o acréscimo viável ao número real. Trata-se o épsilon de máquina Épsilon de Máquina Para todo procedimento de arredondamento dentro de um sistema F de ponto flutuante, existe um erro relativo máximo, ou seja, existe uma diferença máxima entre o valor real e o valor arredondado onde a resolução do sistema ainda funcione com uma precisão relativamente adequada. Esse erro relativo máximo é o épsilon de máquina. Trata-se do menor número representável, do limite do erro relativo. É determinado sendo a distância entre o número 1 e o menor ponto flutuante maior do que 1, sem arredondamento. Épsilon de Máquina Para todo arredondamento, tem-se o número real 1, que é representado como ponto flutuante 0.1 x 101. Somando ao valor 1 um número u muito pequeno, o computador retornará o valor final ainda sendo como 1. Dessa forma, tem-se que 1+u=1. Sendo o valor u o menor valor possível para o qual ainda se considere a sua soma um acréscimo ao número, fazendo com que ele seja maior do que antes, tem-se que 1+ 𝜀𝑚𝑎𝑐ℎ > 1, onde 𝜀𝑚𝑎𝑐ℎ é o épsilon de máquina. • O erro relativo, sendo usado em uma operação aritmética de um número, é sempre no máximo o épsilon de máquina. Considerando um sistema 𝐹 𝛽, 𝑡,𝑚,𝑀 , o épsilon de máquina é 𝜀 = 1 2 𝛽1−𝑡 Exemplos Usando RStudio para achar o Épsilon de máquina: • Sendo o épsilon de máquina o menor número representável pelo sistema, de tal forma que a equação 𝑎 + 𝑏 > 𝑎 passe a ser 𝑎 + 𝑏 = 𝑎 , podemos construir o seguinte exemplo: 𝑎 = 1 e 𝑏 = 1, de tal forma que, enquanto 𝑎 + 𝑏 > 𝑎, deve-se fazer 𝑏 = 𝑏/2. Assim, quando o sistema desconsiderar o valor de 𝑏, com 𝑏 ≠ 0, e calcular a soma entre 𝑎 e 𝑏 sendo igual ao valor de 𝑎, a variável 𝑏 será o valor do épsilon de máquina. Exemplos Usando RStudio e identificando o erro relativo na aritmética de ponto flutuantes: • Tendo a identidade 1+𝑥 −1 𝑥 = 1 com 𝑥 ≠ 0, quando se tem valores próximos a 0, a função, ao invés retornar o valor 1, retorna valores próximos a 1. Trabalhando com ponto flutuante, podemos visualizar o erro relativo que ocorre entre os valores de 𝑦 e de ത𝑦. Exemplos No uso industrial e científico, temos cálculos de médias, volumes, áreas, torques, pressão, etc, feitos pelo computador com medidas variáveis que, muitas vezes, são arredondadas em seus resultados, de acordo à aritmética dos pontos flutuantes. E isso pode causar problemas. Como, por exemplo, a explosão de um míssil em 1996, por overflow no processamento de um computador. Exemplos Se um conjunto de medidas foi realizado de forma bem planejada e cuidadosa para minimizar os erros sistemáticos, de acordo com as mesmas condições experimentais, o erro relativo entre o valor médio e os valores de medida é pequeno e desconsiderado. Porém, se as medidas variam de acordo com os fatores externos e internos do sistema, tem-se a dispersão entre o valor médio e a medida, gerando uma propagação de erro que pode causar algum dano ao projeto, quando não corrigido. Exemplos A propagação de erros deve ser sempre considerada nos sistemas iterativos, para evitar erros como os citado anteriormente. Considerando uma equação de estimativa para o número de 𝜋, por exemplo, podemos visualizar o gráfico dessa propagação do erro relativo. • 𝑧 𝑛 + 1 = 2(𝑛−0.5) × 1 − 1 − 𝑧(𝑛)2 × 4(1−𝑛) • (𝑧 𝑛 − 𝜋)/𝜋 • Devido aos arredondamentos no sistema, gera uma propagação do erro.
Compartilhar