Seja um sistema de aritmética de ponto flutuante de quatro dígitos, base decimal e com acumulador de precisão dupla. Dados os números:
x=0.7237 times 10^4 y=0.2145 times 10^-3 e z=0.2585 times 10^1
efetue as seguintes operações e obtenha o erro relativo no resultado, supondo que x, y e z estão exatamente representados:
(x y) / z

Passo 1

Então galera, o que temos aqui é um sisteminha de ponto-flutuante em base 10 com 4 dígitos de mantissa e “acumulador” de precisão dupla (ou seja, a gente faz todas as contas intermediárias guardando 8 dígitos antes de só então arredondar pro padrão de 4 dígitos).
A matéria envolvida é:
  • Representação normalizada em ponto-flutuante (mantissa entre 0.1 e 0.9999 em base 10).
  • Arredondamento para 4 dígitos.
  • Cálculo de erro relativo: erro relativo = |valor exato - valor aproximado||valor exato|
    O que vamos usar: conversão pra forma normalizada, multiplicação e divisão exatas em “double precision” (8 dígitos), e só no final arredondar pra 4 dígitos.

Passo 2

Primeiro, veja que já nos deram os números normalizados:
x = 0.7237times10^4, y = 0.2145times10^-3, z = 0.2585times10^1
Nenhum deles precisa de ajuste; a mantissa está entre 0.1 e 0.9999 e o expoente tá certo.

Passo 3

Agora vamos calcular exatamente (com oito dígitos) o produto x = 7237, y = 0.0002145:
  1. Escrevendo em decimal puro: xcdot y = 7237times0.0002145 = 1.5523365(oito dígitos OK)
    2) Então
    1.5523365 = 0.15523365times10^1í
  2. Normaliza-se em mantissa [0.1,0.9999]:
    Mas como vamos usar esse valor diretamente na divisão, podemos guardar a forma .

Passo 4

Dividimos agora por xcdot yz = 1.55233652.585 = 0.600517;(aprox exato, 6 dígitos aqui), ainda com oito dígitos de mantissa:
0.600517 times10^0, í
Em forma normalizada:

Passo 5

Só agora a gente arredaonda pra 4 dígitos de mantissa (regra usual: arredonda pelo dígito 5 seguinte):
fll((x,y)/zr) = 0.6005times10^0,

Passo 6

Falta o erro relativo. O valor exato (com mais dígitos) é
vrm exato=0.600517ldots
e o aproximado é
vrm aprox=0.6005,
Então
varepsilonrm rel &=|0.600517ldots - 0.6005||0.600517ldots| =0.000017ldots0.600517ldots &approx 2.9times10^-5,

Resposta

O resultado no sistema de 4 dígitos é
fll((x,y)/zr)=0.6005times10^0,
e o erro relativo aproximado é
varepsilonrm relapprox2,9times10^-5

Exercícios relacionados