Considere um sistema de números em ponto flutuante na base 10. Considere os números
x=1.234567 \times 10^{5}, \quad y=4.321 \times 10^{1}
(a) Escreva os números x e y no formato do sistema de ponto flutuante com 4 dígitos na mantissa.
(b) Calcule o valor de x+y utilizando essa representação.
(c) Calcule o valor exato de x+y.
(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
x=1.234567\times10^{5},\qquad y=4.321\times10^{1}.
As perguntas são:
(a) Escrever x e y no formato do sistema de ponto flutuante com 4 dígitos na mantissa.
(b) Calcular x+y usando essa representação (isto é, fazendo a soma com mantissa limitada a 4 dígitos).
(c) Calcular o valor exato de x+y.
(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
\pm d_0.d_1d_2d_3\times10^{e}
onde d_0\in\{1,2,\dots,9\} (isto é, o primeiro dígito é não nulo) e temos exatamente 4 dígitos significativos d_0,d_1,d_2,d_3.
  • 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 \ge5 incrementa-se o último dígito mantido; se for <5 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 x e y com 4 dígitos na mantissa.
  • Para x=1.234567\times10^{5}: queremos 4 dígitos significativos em 1.234567. Mantemos 1.235 porque o 5.º dígito (o primeiro suprimido) é 6 (ou seja, 1.234\underline{5}67, o dígito seguinte é 5 ou maior), então arredondamos o quarto dígito para cima. Logo
x\\ \text{(representado)} = 1.235\times10^{5}.
  • Para y=4.321\times10^{1}: já tem 4 dígitos significativos em 4.321, então cabe exatamente na mantissa sem arredondamento:
y\\ \text{(representado)} = 4.321\times10^{1}.
Comentário didático: aqui já vimos uma coisa importante — x sofreu arredondamento quando forçado a 4 dígitos; y não.

Passo 4

(b) Calcular x+y usando a representação em ponto flutuante com 4 dígitos.
Passos da soma em ponto flutuante (método padrão):
  1. Colocar os dois operandos com o mesmo expoente (alinhar mantissas).
  2. Somar as mantissas (em precisão maior, idealmente).
  3. Normalizar e então arredondar o resultado para caber em 4 dígitos.
Aplicando:
  • Usamos as REPRESENTAÇÕES obtidas no passo anterior: x_{\text{fl}}=1.235\times10^{5} e y_{\text{fl}}=4.321\times10^{1}.
  • Alinhar y_{\text{fl}} para o mesmo expoente 10^{5}. Para isso multiplicamos a mantissa de y_{\text{fl}} por 10^{1-5}=10^{-4}:
y_{\text{fl}} = 4.321\times10^{1} = 0.0004321\times10^{5}.
  • Somar as mantissas (com expoente comum 10^{5}):
1.235 + 0.0004321 = 1.2354321.
  • Agora normalizar (já está normalizado, pois começa com 1) e arredondar para 4 dígitos da mantissa. Mantemos 1.235 e analisamos o quinto dígito da mantissa resultante: a mantissa é 1.2354321, o quinto dígito (primeiro suprimido) é 4 (menor que 5), então não incrementamos o quarto dígito. Assim o resultado armazenado é
(x+y)_{\text{fl}} = 1.235\times10^{5}.
Observação didática: a pequena contribuição de y aparece na soma exata como um aumento pequeno de x, mas depois de arredondar a soma para 4 dígitos o valor volta a ser 1.235\times10^{5}, isto é, o valor final armazenado é igual ao x_{\text{fl}} — a pequena adição foi “absorvida” pelo arredondamento.

Passo 5

(c) Calcular o valor exato de x+y.
Aqui usamos os valores exatos iniciais do enunciado (não as versões arredondadas):
x_{\text{exato}} = 1.234567\times10^{5} = 123456{,}7, \qquad y_{\text{exato}} = 4.321\times10^{1} = 43{,}21.
Somando exatamente:
x_{\text{exato}}+y_{\text{exato}} = 123456{,}7 + 43{,}21 = 123499{,}91.
Em notação normalizada:
x+y = 1.2349991\times10^{5}.
Comentário didático: note que o valor exato difere do valor armazenado em ponto flutuante arredondado por apenas 0{,}09.

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 é \dfrac{|\,\text{aproximado} - \text{exato}\,|}{|\text{exato}|}. Para transformar em percentual multiplica-se por 100\%.
  • Valor aproximado (armazenado) obtido no passo 4:
(x+y)_{\text{fl}} = 1.235\times10^{5} = 123500.
  • Valor exato do passo 5:
(x+y)_{\text{exato}} = 123499{,}91.
  • Erro absoluto:
\Delta = |123500 - 123499{,}91| = 0{,}09.
  • Erro relativo:
\text{erro relativo} = \frac{0{,}09}{123499{,}91}.
Calculemos numericamente e expressemos em percentual:
\frac{0{,}09}{123499{,}91}\approx 7{,}2913\times10^{-7}.
Multiplicando por 100\%:
\text{erro relativo percentual}\approx 7{,}29\times10^{-5}\%.
(Aproximado com 3 algarismos significativos: 7{,}29\times10^{-5}\%.)

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 1{,}235\times10^{5} com 4{,}321\times10^{1} foi preciso transformar 4{,}321\times10^{1} em 0{,}0004321\times10^{5}. Observe que para caber numa mantissa de 4 dígitos só restariam os primeiros 4 dígitos da sequência 0{,}0004321 após o ponto (e esses são zeros até aparecerem os algarismos úteis), então a contribuição real de y 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 10^{5} com algo da ordem de 10^{0} — 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) x=1.235\times10^{5},\quad y=4.321\times10^{1}.
(b) (x+y)_{\text{fl}}=1.235\times10^{5}.
(c) x+y=123499{,}91=1.2349991\times10^{5}.
(d) Erro relativo percentual \approx 7{,}29\times10^{-5}\%.
(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”).

Exercícios relacionados