Considere a máquina de ponto flutuante
com arredondamento.
Escreva os números abaixo na forma da máquina e determine o erro absoluto e o erro relativo em cada caso:
20
20
Passo 1
O enunciado dá uma máquina de ponto flutuante
com arredondamento e pede para escrever o número
na forma da máquina e determinar o erro absoluto e o erro relativo.
Informações dadas (peguei diretamente do enunciado):
- base
; - precisão
dígitos binários significativos (isto é, a mantissa tem dígitos, contando o dígito implícito ); - expoente mínimo
e máximo ; - arredondamento para o número representável mais próximo (quando aplicável).
O que precisa ser entregue:
- a representação do número
na máquina (se existir); - o erro absoluto
e o erro relativo , onde e é a aproximação que a máquina fornece.
Passo 2
Relembrando como é o formato normalizado desta máquina (explicação didática, passo a passo):
- Números normalizados em base
com precisão têm a forma
onde os
são bits (0 ou 1) e há exatamente
bits fracionários armazenados além do
implícito. Então a mantissa armazenável tem, no máximo, os dígitos
.
-
O expoente
deve satisfazer , ou seja . Se o expoente necessário para representar o número cair fora desse intervalo ocorre overflow (número maior do que o maior representável) ou underflow (muito pequeno). -
Arredondamento: se a expansão binária tiver mais de
dígitos significativos, arredonda-se para o representável mais próximo (com regra usual de arredondamento para o par se houver empate). Mas isso só vale se o expoente resultante ficar dentro de .
Passo 3
Converter
para binário e normalizar (mostrar os passos):
-
Converter
para binário: pois. -
Escrever na forma normalizada
: Ou seja, a representação normalizada exata é. -
Agora verificar a precisão: precisamos de
dígitos binários significativos (o primeiro é o antes do ponto e há bits fracionários). A expansão exata tem bits fracionários (depois são zeros), então truncando/ajustando para obtemos que é exatamente igual à expansão porque os bits seguintes são zeros — portanto, não há erro de arredondamento da mantissa.
Passo 4
Verificar a faixa de expoente: aqui está o ponto crítico
- O expoente necessário para representar
é . - A máquina aceita expoentes apenas até
. Portanto .
Conclusão direta: o número
exige um expoente fora da faixa permitida; ou seja,
está fora do intervalo de números normais finitos representáveis por
. Isso é um caso de overflow.
Passo 5
Calcular o maior número finito representável (útil para ver “o quão fora” estamos):
- A maior mantissa possível com
é (todos os bits fracionários iguais a 1), que vale em decimal - Multiplicando pelo maior expoente
, o maior número finito representável é
Portanto o maior número finito possível na máquina é
. Como
, confirma-se overflow.
Passo 6
Interpretações práticas e cálculo de erros (expliquei as duas alternativas que aparecem em exercícios, pois depende da política do sistema):
-
Política padrão em muitos modelos formais e na IEEE: overflow resulta em um resultado especial +
(ou sinal de overflow). Nesse caso não existe representação finita e não faz sentido definir um erro absoluto finito; podemos dizer que houve overflow e o erro é “não representável” (ou infinito). -
Alternativamente, se alguém pedir explicitamente a aproximação pelo maior número finito representável (isto é, “arredondar por saturação” ao número finito mais próximo), então a aproximação finita mais próxima de
é o máximo representável . Nesse caso podemos calcular erros: - erro absoluto:
- erro relativo (usar vírgula decimal conforme pedido):
- erro absoluto:
Passo 7
Resumo final e resposta objetiva (vou apresentar as duas respostas possíveis: a correta segundo a definição da máquina — overflow — e a alternativa se for pedida a “saturação” para o maior finito).
Resposta
20 não é representável em
(overflow), pois a representação normalizada exigiria expoente
.
Se a máquina usa overflow → representação = (nenhuma aproximação finita; erro indefinido/infinito).
Se, por outro lado, aproximarmos por saturação ao maior número finito representável, então , erro absoluto
e erro relativo
.
Se a máquina usa overflow → representação =
Se, por outro lado, aproximarmos por saturação ao maior número finito representável, então