([MACHADO et al, 2017], Problema 5 adaptado - Cap. 1) Considere um sistema de aritmética de ponto flutuante de 4 dígitos e base decimal. Dados os números
e
, efetue as operações:
, e obtenha o erro relativo nos resultados, supondo que x e y estão exatamente representados.
Passo 1
O enunciado dá um sistema de ponto flutuante com 4 dígitos na mantissa e base decimal. Os números fornecidos são
e
As tarefas pedidas são:
- calcular
no sistema de ponto flutuante (supondo que e estão exatamente representados na máquina); - calcular
no mesmo sistema; - calcular
no mesmo sistema; - para cada operação, obter o erro relativo do resultado (erro relativo =
).
Informações relevantes extraídas do enunciado (lista para eu e você não nos perdermos):
mantissa com 4 dígitos significativos (ou seja, podemos usar apenas 4 algarismos não nulos no mantissa quando armazenamos o resultado), e vamos assumir o arredondamento para o vizinho mais próximo (arredondamento para o par mais próximo não foi especificado; adotamos o arredondamento para o mais próximo — regra usual).
Passo 2
Conceitos necessários (explicadinho passo a passo, bem mastigado):
- Um número em ponto flutuante normalizado na forma usada no enunciado tem representação
com (aqui o enunciado usa mantissa começando por um algarismo não nulo à direita da vírgula: por exemplo ). A “mantissa com 4 dígitos” significa que podemos guardar apenas 4 algarismos significativos de . - Quando somamos/subtraímos, primeiro alinhamos os expoentes (trazendo a mantissa do número de menor expoente para o expoente do maior), somamos/subtraímos as mantissas exatas, e depois arredondamos o resultado final para 4 dígitos na mantissa.
- Ao dividir, podemos separar a operação como divisão das mantissas e subtração dos expoentes:
. Depois normalizamos o resultado para ter mantissa na faixa desejada e arredondamos a mantissa a 4 dígitos. - Erro absoluto:
. Erro relativo: . Vou calcular ambos quando necessário e expressar o erro relativo em notação científica com vírgula decimal (ex.: ).
Passo 3
Primeiro escrevo
e
com o mesmo expoente para somar as mantissas:
Converter
para expoente
: como
, movemos a vírgula da mantissa duas casas para a esquerda:
Agora somamos as mantissas exatas:
Essa é a soma exata das mantissas com expoente
, ou seja, o valor exato da soma é
Passo 4
Temos mantissa exata
. Devemos arredondar para 4 dígitos significativos. Os quatro primeiros dígitos significativos são
,
,
,
(ou seja,
), e o quinto dígito é
. Pelo arredondamento para o mais próximo, o quinto dígito igual a
pede arredondar o quarto dígito para cima (convencionalmente), então:
Logo o resultado armazenado pela máquina é
Agora erro absoluto e relativo:
erro absoluto
erro relativo
erro absoluto
erro relativo
(Arredondei o número final do erro relativo a três algarismos significativos; se precisar de mais precisão eu mostro a divisão detalhada.)
Passo 5
Novamente alinhamos expoentes em
:
Subtração das mantissas exatas:
Portanto o valor exato da diferença é
Passo 6
Mantissa exata
. Os quatro primeiros dígitos são
,
,
,
(ou seja
), e o quinto dígito é
, então arredondamos para baixo (mantemos
). Assim o resultado armazenado é
Erro absoluto
Erro relativo
Erro relativo
Passo 7
Para dividir em ponto flutuante, escrevo:
Faço a divisão das mantissas (mostro o resultado com algumas casas decimais):
Já que (pode-se obter por divisão longa; aqui usei a equivalência para facilitar), então
Já que
Em notação normalizada com mantissa em
, isso é
Passo 8
Mantissa exata
. Os quatro primeiros dígitos significativos são
,
,
,
(ou seja
); o quinto dígito é
, então não arredondamos para cima. Mantissa arredondada =
. Assim o resultado armazenado é
Erro absoluto
Erro relativo
Erro relativo
Passo 9
- Tanto na soma quanto na subtração obtivemos erro absoluto igual a
(isso acontece porque o ajuste do expoente para alinhar introduziu muitos zeros à esquerda da mantissa de , de modo que a soma/subtração envolveu um arredondamento pequeno comparado ao valor grande de ). Os erros relativos para soma e subtração são da ordem de . - Na divisão o erro relativo ficou um pouco maior (
), pois a divisão produziu um número cuja mantissa tinha dígitos que causaram arredondamento relativamente maior em relação ao valor resultante. - Observação qualitativa: quando a operação leva à perda de dígitos significativos (por exemplo, ao alinhar expoentes muito diferentes), a precisão relativa pode ficar pior; aqui a subtração não apresentou perda catastrófica porque
e não eram de mesma magnitude de forma a cancelar muitos dígitos, mas a diferença de expoentes (2 ordens) já reduz a contribuição de nas últimas casas.