Questão 1 ( 2,0 pontos) - Sistema de Ponto Flutuante
Considere o sistema de ponto flutuante
.
(a) Determine o
-máquina do sistema e explique seu significado computacional.
(b) Encontre a maior lacuna entre dois números positivos representáveis imediatamente antes do overflow.
(c) Justifique rigorosamente por que, mesmo em base fixa, a densidade de números representáveis não é uniforme ao longo da reta real.
(a) Determine o
(b) Encontre a maior lacuna entre dois números positivos representáveis imediatamente antes do overflow.
(c) Justifique rigorosamente por que, mesmo em base fixa, a densidade de números representáveis não é uniforme ao longo da reta real.
Passo 1
O enunciado dá um sistema de ponto flutuante
e pede três coisas:
- (a) Determinar o
-máquina do sistema e explicar seu significado computacional. - (b) Encontrar a maior lacuna entre dois números positivos representáveis imediatamente antes do overflow.
- (c) Justificar rigorosamente por que, mesmo em base fixa, a densidade de números representáveis não é uniforme ao longo da reta real.
Informações relevantes fornecidas:
Vou usar a representação normalizada usual: qualquer número representável (não zero) tem a forma
com
e
, e o expoente
inteiro entre
e
.
Passo 2
Explicando a estrutura do mantissa (para entender espaçamentos): com
dígitos, a mantissa tem a forma
onde o termo menos significativo (último dígito) representa um incremento de magnitude
na mantissa. Em decimal isso significa que, para expoente fixo
, o menor incremento possível entre dois números representáveis com esse expoente é
Vou usar essa fórmula depois para calcular lacunas e densidades. Antes, cálculo do
-máquina.
Passo 3
Definição e cálculo do
-máquina (gap em torno de 1).
Definição prática que usarei: o
-máquina é a diferença entre
e o menor número representável estritamente maior que
. Para o sistema normalizado, o
é representado por mantissa
(sete dígitos) e o próximo número, aumentando o último dígito em uma unidade, tem mantissa
— observe que o incremento na mantissa é
.
Portanto o incremento entre
e o próximo número é
Substituindo
e
:
Observação prática/computacional: muitos livros definem também o “unit roundoff”
(erro relativo máximo ao arredondar para a representação mais próxima) como
quando se usa arredondamento para o mais próximo. Então aqui
Passo 4
Significado computacional do
-máquina (explicação didática e com exemplo).
-
significa que, na vizinhança de , os números representáveis formam uma grade com espaçamento relativo . Ou seja, o número representável imediatamente maior que é . - Em termos de erro relativo: se você armazena um número real
e ele é aproximado pela representação por truncamento ou arredondamento, o erro relativo típico perto de é da ordem de (ou, no pior caso de truncamento, até quase ). - Exemplo simples: se você calcula
no sistema e usa truncamento, o resultado será porque e não altera a mantissa no último dígito; isto mostra que incrementos menores que em torno de são “invisíveis” para a representação.
Passo 5
Cálculo do maior número representável (pré-overflow) — necessário para (b).
A maior mantissa possível com
dígitos em base
é
Multiplicando pelo maior expoente
, o maior número representável finito é
Esse é o valor imediatamente antes do overflow (qualquer número maior exigiria expoente
e provoca overflow).
Passo 6
Derivação da maior lacuna entre dois números positivos representáveis imediatamente antes do overflow — cálculo para (b).
Conforme explicado no Passo 2, para expoente fixo
o espaçamento entre dois números consecutivos é
Imediatamente antes do overflow os números usam o expoente máximo
. Substituindo
e
:
Logo a maior lacuna entre dois números positivos representáveis (com expoente
) é
.
Comentário numérico: isso significa que, perto de
, os números representáveis vizinhos estão separados por
— uma diferença gigantesca, mostrando que a grade fica muito esparsa em grandes magnitudes.
Passo 7
Interpretação adicional e relação entre espaçamento e densidade (preparando (c)).
A densidade local de números representáveis (número de pontos representáveis por unidade de comprimento) em uma região onde o expoente é
é o inverso do espaçamento:
Isto já sugere que a densidade depende fortemente de
: aumentando
a densidade diminui geometricamente (cada aumento de
em
divide a densidade por
).
Passo 8
Justificativa rigorosa de por que a densidade não é uniforme (resposta para (c)).
Tomemos os intervalos tipo
com
inteiro tal que o expoente normalizado seja
. Todos os números representáveis com expoente
têm espaçamento fixo
portanto a densidade naquele intervalo é
Como
depende de
(é função decrescente de
), a densidade varia de intervalo para intervalo: se
aumenta em
, a densidade é multiplicada por
. Para a base
isso significa que a densidade em
é 10 vezes menor do que em
.
Isto mostra rigorosamente que a malha de números representáveis não é uniforme ao longo da reta real: ela é mais densa perto de zero (pequenos expoentes) e mais esparsa para grandes valores (expoentes altos). Mesmo em base fixa, o fator de escala
faz com que o espaçamento dependa exponencialmente do expoente.
Passo 9
Resumo intuitivo e incentivo
- Resumindo: a precisão relativa local é controlada por
(gap perto de ); a distância absoluta entre vizinhos cresce com o expoente e causa não uniformidade da densidade de representáveis. Sei que esses conceitos parecem abstratos, mas na prática significam que pequenas variações são perdidas perto de números grandes e que erros relativos têm limite fixo (dependendo do arredondamento) — coisas úteis para a prova e para programar com segurança. Vamos com calma que você consegue!
Resposta
(a)
(unit roundoff
).\n
(b) A maior lacuna imediatamente antes do overflow é .\n
(c) A densidade não é uniforme porque, para expoente , o espaçamento vale
; logo a densidade é
, que depende de
(cresce/decresce geometricamente com o expoente), portanto não é constante ao longo da reta.
(b) A maior lacuna imediatamente antes do overflow é
(c) A densidade não é uniforme porque, para expoente