Os números
e
são fornecidos a uma máquina que trabalha em ponto flutuante e com quatro dígitos na mantissa. Nesta máquina as operações têm arredondamento no corte de dígitos, ou seja, se o primeiro dígito a ser desprezado for maior ou igual a cinco, o último dígito significativo é arredondado para cima. Caso contrário, despreza-o. Sendo assim, calcule o resultado da expressão:
Passo 1
O enunciado pede: calcular o valor da expressão
numa máquina de ponto flutuante com mantissa de quatro dígitos e arredondamento (arredonda para cima se o primeiro dígito descartado
, caso contrário descarta). Os dados fornecidos são:
Observação sobre ordem de avaliação: a subtração é feita da esquerda para a direita, ou seja vamos calcular primeiro
e depois
. Vou seguir essa ordem, simulando o arredondamento da máquina em cada operação.
Passo 2
Primeiro, converto os números para valores decimais para intuição (apenas para entender as ordens de grandeza; a máquina trabalha com as formas em notação científica fornecidas):
As entradas já têm mantissa com quatro dígitos significativos, logo ao serem armazenadas inicialmente na máquina elas ficam exatamente como dadas (não há truncamento inicial).
Explicação didática rápida sobre mantissa e unidade de last place (ULP):
- A máquina representa números na forma
. - Para um número com expoente
, o menor incremento representável na vizinhança desse número (a ULP) tem ordem . Ou seja, o dígito menos significativo da mantissa corresponde a na escala decimal.
Passo 3
Agora calculo
. Para somar/subtrair precisamos alinhar os expoentes.
tem expoente
e
tem expoente
. Escrevendo
com expoente
:
Compare as mantissas (com expoente
):
Aqui a ULP para expoente
é
Isto significa que, ao representar números com expoente
e mantissa de 4 dígitos, a menor variação possível é
. O termo
reescrito com expoente
tem ordem
na mantissa, muito menor que a ULP; ao alinhar e limitar a quatro dígitos na mantissa, todos os dígitos relevantes de
ficam muito à direita e serão descartados. Em termos práticos, ao realizar
na máquina,
é “inapagável” dentro da precisão disponível — ele é arredondado a zero no alinhamento.
Portanto, o resultado armazenado pela máquina para
é igual a
sem alteração:
Passo 4
Agora calculo
. Usarei o resultado arredondado do passo anterior:
.
Escrevo
com expoente
para alinhar:
Faço a subtração das mantissas (com expoente
):
Agora aplico o arredondamento da máquina para manter apenas quatro dígitos na mantissa. A mantissa atual é
; os quatro primeiros dígitos significativos são
e o quinto dígito é
. Como o quinto dígito é menor que
, pelo critério dado descartamos os dígitos extras sem aumentar o quarto dígito. Assim o número arredondado fica
Convertendo para decimal, isso é
.
Passo 5
Resumo do que aconteceu com a precisão (explicação pedagógica rápida): o subtraendo
era tão pequeno comparado a
que, ao alinhar expoentes para a subtração, seus dígitos ficaram além da capacidade da mantissa de quatro dígitos e foram descartados (efeito de underflow relativo ou “flush to zero” relativo). Já o
tem magnitude suficiente para afetar os quatro primeiros dígitos de
quando subtraído, e o resultado final foi arredondado à mantissa de quatro dígitos como mostrado.