Considere um sistema de números em ponto flutuante na base 10. Considere os números
(a) Escreva os números
e
no formato do sistema de ponto flutuante com 4 dígitos na mantissa.
(b) Calcule o valor de
utilizando essa representação.
(c) Calcule o valor exato de
.
(d) Determine o erro relativo percentual entre o valor obtido no sistema de ponto flutuante e o valor exato.
(e) Discuta por que, em sistemas de ponto flutuante com mantissa limitada, números muito pequenos podem ter pouca influência quando somados a números muito grandes.
(b) Calcule o valor de
(c) Calcule o valor exato de
(d) Determine o erro relativo percentual entre o valor obtido no sistema de ponto flutuante e o valor exato.
(e) Discuta por que, em sistemas de ponto flutuante com mantissa limitada, números muito pequenos podem ter pouca influência quando somados a números muito grandes.
Passo 1
O enunciado dá um sistema de ponto flutuante em base 10 com mantissa de 4 dígitos e apresenta os números
As perguntas são:
(a) Escrever e
no formato do sistema de ponto flutuante com 4 dígitos na mantissa.
(b) Calcular usando essa representação (isto é, fazendo a soma com mantissa limitada a 4 dígitos).
(c) Calcular o valor exato de .
(d) Determinar o erro relativo percentual entre o valor obtido no sistema de ponto flutuante e o valor exato.
(e) Discutir por que, em ponto flutuante com mantissa limitada, números muito pequenos podem ter pouca ou nenhuma influência ao somar com números muito grandes.
(a) Escrever
(b) Calcular
(c) Calcular o valor exato de
(d) Determinar o erro relativo percentual entre o valor obtido no sistema de ponto flutuante e o valor exato.
(e) Discutir por que, em ponto flutuante com mantissa limitada, números muito pequenos podem ter pouca ou nenhuma influência ao somar com números muito grandes.
Passo 2
Breve explicação do formato de ponto flutuante e da regra de arredondamento que vou usar (importante para a soma).
- Num sistema de ponto flutuante normalizado em base 10 com 4 dígitos na mantissa, cada número é representado como
onde
(isto é, o primeiro dígito é não nulo) e temos exatamente 4 dígitos significativos
.
- Quando for necessário reduzir mais dígitos do que cabem na mantissa, vou usar arredondamento para o mais próximo (arredondamento para o vizinho mais próximo): se o primeiro dígito suprimido for
incrementa-se o último dígito mantido; se for mantém-se. (Se houver empate exato em 5, o critério pode ser empate para par, mas neste exercício não aparece empate exato que influencie.)
Explicação didática curta: esse arredondamento minimiza o erro introduzido pela representação finita; é o procedimento padrão em muitas arquiteturas.
Passo 3
(a) Escrever
e
com 4 dígitos na mantissa.
- Para
: queremos 4 dígitos significativos em . Mantemos porque o 5.º dígito (o primeiro suprimido) é (ou seja, , o dígito seguinte é ou maior), então arredondamos o quarto dígito para cima. Logo
- Para
: já tem 4 dígitos significativos em , então cabe exatamente na mantissa sem arredondamento:
Comentário didático: aqui já vimos uma coisa importante —
sofreu arredondamento quando forçado a 4 dígitos;
não.
Passo 4
(b) Calcular
usando a representação em ponto flutuante com 4 dígitos.
Passos da soma em ponto flutuante (método padrão):
- Colocar os dois operandos com o mesmo expoente (alinhar mantissas).
- Somar as mantissas (em precisão maior, idealmente).
- Normalizar e então arredondar o resultado para caber em 4 dígitos.
Aplicando:
-
Usamos as REPRESENTAÇÕES obtidas no passo anterior:
e . -
Alinhar
para o mesmo expoente . Para isso multiplicamos a mantissa de por :
- Somar as mantissas (com expoente comum
):
- Agora normalizar (já está normalizado, pois começa com
) e arredondar para 4 dígitos da mantissa. Mantemos e analisamos o quinto dígito da mantissa resultante: a mantissa é , o quinto dígito (primeiro suprimido) é (menor que ), então não incrementamos o quarto dígito. Assim o resultado armazenado é
Observação didática: a pequena contribuição de
aparece na soma exata como um aumento pequeno de
, mas depois de arredondar a soma para 4 dígitos o valor volta a ser
, isto é, o valor final armazenado é igual ao
— a pequena adição foi “absorvida” pelo arredondamento.
Passo 5
(c) Calcular o valor exato de
.
Aqui usamos os valores exatos iniciais do enunciado (não as versões arredondadas):
Somando exatamente:
Em notação normalizada:
Comentário didático: note que o valor exato difere do valor armazenado em ponto flutuante arredondado por apenas
.
Passo 6
(d) Determinar o erro relativo percentual entre o valor obtido no sistema de ponto flutuante e o valor exato.
Definição: erro relativo é
. Para transformar em percentual multiplica-se por
.
- Valor aproximado (armazenado) obtido no passo 4:
- Valor exato do passo 5:
- Erro absoluto:
- Erro relativo:
Calculemos numericamente e expressemos em percentual:
Multiplicando por
:
(Aproximado com 3 algarismos significativos:
.)
Passo 7
(e) Discussão didática e intuitiva sobre por que números pequenos podem ter pouca influência ao somar com números muito grandes em ponto flutuante com mantissa limitada.
-
Ideia-chave: a mantissa tem número fixo de dígitos significativos; quando alinham-se expoentes para somar, a mantissa do número menor é deslocada (é multiplicada por uma potência negativa de 10) e muitos dos seus dígitos significativos acabam ficando à direita do último dígito que a mantissa pode guardar, então são cortados ou usados apenas para decisão de arredondamento. Isso chama-se “absorção” ou “loss of significance” por deslocamento.
-
Exemplo concreto (relacionado ao exercício): para somar
com foi preciso transformar em . Observe que para caber numa mantissa de 4 dígitos só restariam os primeiros 4 dígitos da sequência após o ponto (e esses são zeros até aparecerem os algarismos úteis), então a contribuição real de fica em posições muito à direita e geralmente desaparece ou tem efeito muito pequeno depois do arredondamento. -
Consequência prática: se a diferença de escalas (expoentes) entre os dois números for grande — por exemplo, somar algo da ordem de
com algo da ordem de — quase toda a informação do número menor pode ficar fora da mantissa do número maior após alinhamento, e a soma aritmética rondada não mudará o valor armazenado. Por isso, em cálculos numéricos devemos nos preocupar com a ordem das operações (somar primeiro os termos de magnitudes semelhantes costuma reduzir esse problema) e com algoritmos que reduzam a perda de precisão (por exemplo, somas compensadas como o algoritmo de Kahan).
Resposta
(a)
(b)
(c)
(d) Erro relativo percentual
(e) Porque, ao alinhar expoentes para somar, a mantissa do número menor é deslocada para a direita; muitos de seus dígitos ficam fora da mantissa limitada e são descartados por arredondamento, de modo que a contribuição do número pequeno pode ser praticamente perdida (efeito de “absorção”).
(b)
(c)
(d) Erro relativo percentual
(e) Porque, ao alinhar expoentes para somar, a mantissa do número menor é deslocada para a direita; muitos de seus dígitos ficam fora da mantissa limitada e são descartados por arredondamento, de modo que a contribuição do número pequeno pode ser praticamente perdida (efeito de “absorção”).