Aula 1 Representação e Operações Aritméticas em Ponto Flutuante.



Documentos relacionados
Transcrição:

Aula 1 Representação e Operações Aritméticas em Ponto Flutuante. MS211 - Cálculo Numérico Marcos Eduardo Valle Departamento de Matemática Aplicada Instituto de Matemática, Estatística e Computação Científica Universidade Estadual de Campinas

Atualmente, além dos estudos em laboratório, muita pesquisa científica é feita por simulação no computador. Na disciplina de cálculo numérico, estudamos alguns métodos que são usados em simulações numéricas ou para resolução de problemas científicos! Iniciaremos estudando a representação de números num computador digital (usual).

Representação de um Número Real Os computadores (usuais) usam a chamada representação em ponto flutuante: Definição 1 (Sistema de Ponto Flutuante) Um número real x 0 é um ponto flutuante (normalizado) se pode ser escrito como em que β é a base; x 0.d 1 d 2 d 3... d t ˆ β e, t é o número de dígitos na mantissa, com d 1 0 e 0 ď d j ď β 1, para todo j 1,..., t. e é o exponente, com m ď e ď M. Denotamos por Fpβ, t, m, Mq o conjunto de todos os pontos flutuantes para β, t, m e M fixos e adicionando algumas exceções como o zero.

Exemplo 2 Considere o sistema F p10, 3, 2, 2q. Represente nesse sistema, se possível, os números: x 1 0.35, x 2 5.17, x 3 0.0123, (1) x 4 5390, x 5 0.0003. (2) Esboce, na reta, o conjunto Fp10, 3, 2, 2q.

Exemplo 2 Considere o sistema F p10, 3, 2, 2q. Represente nesse sistema, se possível, os números: x 1 0.35, x 2 5.17, x 3 0.0123, (1) x 4 5390, x 5 0.0003. (2) Esboce, na reta, o conjunto Fp10, 3, 2, 2q. Resposta: x 1 0.350 ˆ 10 0, x 2 0.517 ˆ 10 1, x 3 0.123 ˆ 10 1. O número 5390 0.539 ˆ 10 4 não pode ser representado porque seu expoente é maior que 2. Tem-se overflow. O número 0.0003 0.300 ˆ 10 3 não pode ser representado porque seu exponente é menor que -2. Tem-se um underflow.

A maioria dos computadores trabalha com a base β 2. Esse não é um problema, pois o mesmo número pode ser representado usando bases diferentes. Veja no livro texto como é feita a mudança de base! Muitos softwares científicos usam o padrão IEEE precisão dupla com 64 bits: 1 para o sinal, 11 para o expoente, 52 para a mantissa. O padrão IEEE precisão dupla é capaz de representar números positivos entre 1.79 ˆ 10 308 e 2.23 ˆ 10 308, aproximadamente. O padrão IEEE possui uma representação especial para o zero, 8 (obtido após a divisão por zero), e NaN (Not a Number, e.g. 0{0).

Arredondamento em Ponto Flutuante O arredondamento em ponto flutuante é usado para representar um número real x, dentro dos limites de representação do sistema, que não pertence ao conjunto Fpβ, t, m, Mq. Especificamente, arredondar um número x em ponto flutuante consiste em encontrar x P Fpβ, t, m, Mq tal que x x seja o menor possível Denotaremos por fl a função que associa um número real x ao seu arredondamento em ponto flutuante. O valor x x é chamado erro absoluto de arredondamento. x x De um modo similar, o valor é chamado erro relativo x de arredondamento.

Exemplo 3 Represente no sistema Fp10, 3, 5, 5q os números x 1 1234.56, x 2 0.00054962, x 3 0.9995, x 4 123456.7, x 5 0.0000001.

Exemplo 3 Represente no sistema Fp10, 3, 5, 5q os números x 1 1234.56, x 2 0.00054962, x 3 0.9995, x 4 123456.7, x 5 0.0000001. Resposta: flpx 1 q 0.123 ˆ 10 4, flpx 2 q 0.550 ˆ 10 3, flpx 3 q 0.100 ˆ 10 1. Para x 4 e x 5 tem-se overflow e underflow, respectivamente. Em linhas gerais, para arredondar um número na base β 10, devemos apenas observar o primeiro dígito a ser descartado. Se ele for menor que 5, deixamos os dígitos inalterados; Se ele é maior ou igual a 5, devemos somar 1 ao último dígito remanescente.

Épsilon da Máquina Definição 4 (Épsilon da Máquina) O épsilon da máquina, denotado por ε mach, é a metade da distância entre 1 e o menor ponto flutuante estritamente maior que 1. No padrão IEEE precisão dupla, a precisão é ε mach 2 52 «2.2 ˆ 10 16. Exemplo 5 Determine o épsilon da máquina considerando Fpβ, t, m, Mq.

Épsilon da Máquina Definição 4 (Épsilon da Máquina) O épsilon da máquina, denotado por ε mach, é a metade da distância entre 1 e o menor ponto flutuante estritamente maior que 1. No padrão IEEE precisão dupla, a precisão é ε mach 2 52 «2.2 ˆ 10 16. Exemplo 5 Determine o épsilon da máquina considerando Fpβ, t, m, Mq. Resposta: A precisão é ε 1 2 β1 t.

O ε mach fornece um limitante superior para o erro relativo do arredondamento em ponto flutuante. Especificamente, para qualquer x dentro dos limites de representação do sistema, existe x P Fpβ, t, m, Mq tal que x x ď ε x. Esta última inequação resulta no seguinte afirmação: Proposição: Para qualquer número real x dentro dos limites de representação do sistema, existe ε com ε ď ε mach tal que flpxq xp1 ` εq.

Aritmética de Ponto Flutuante Além de representar números no computador, precisamos também efetuar operações com eles. As operações aritméticas básicas `,,ˆ e com números reais, quando realizadas no computador com sistema F pβ, t, m, Mq, serão denotadas por, a, b e c. As operações aritméticas de ponto flutuante são definidas de modo a satisfazer o axioma: Axioma das Operações de Ponto Flutuante: Sejam uma operação aritmética básica e g seu análogo em ponto flutuante. Para todo x, y P Fpβ, t, m, Mq, deve-se ter: x g y flpx yq. É razoável assumir que o padrão IEEE satisfaz essa axioma!

Exemplo 6 Considere o sistema Fpβ, t, m, Mq. Sejam x flp11.4q, y flp3.18q e z flp5.05q. Efetue as operações: (a) px yq z e x py zq. (b) y b x e y z z b x. (c) y b pz xq e y b z b y b x.

Exemplo 6 Considere o sistema Fpβ, t, m, Mq. Sejam x flp11.4q, y flp3.18q e z flp5.05q. Efetue as operações: (a) px yq z e x py zq. (b) y b x e y z z b x. (c) y b pz xq e y b z b y b x. Resposta: (a) px yq z 0.197 ˆ 10 2 e x py zq 0.196 ˆ 10 2. (b) x b y y 0.719 ˆ 10 1 e x b 0.718 ˆ 10 1. z z (c) y b pz xq 0.523 ˆ 10 1 e py b zq py b xq 0.524 ˆ 10 1. Ao contrário das operações com números reais, as operações de ponto flutuante não são nem associativas e nem distributivas!

Em vista do axioma das operações de ponto flutuante, tem-se: Proposição: Para quaisquer x, y P Fpβ, t, m, Mq, existe ε com ε ď ε mach tal que x g y px yqp1 ` εq, em que denota uma operação aritmética básica e g seu análogo em ponto flutuante. Essa proposição estabelece uma relação entre a operação aritmética com números reais e seu análogo em ponto flutuante. Essa relação possui um papel importante na análise de erros de algoritmos! Na próxima aula exploraremos melhor os efeitos dos erros da representação e das operações em ponto flutuante.