Questão 1 ( 2,0 pontos) - Sistema de Ponto Flutuante

Considere o sistema de ponto flutuante F(10,7,-80,80).
(a) Determine o \varepsilon-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.

Passo 1

O enunciado dá um sistema de ponto flutuante F(10,7,-80,80) e pede três coisas:
  1. (a) Determinar o \varepsilon-máquina do sistema e explicar seu significado computacional.
  2. (b) Encontrar a maior lacuna entre dois números positivos representáveis imediatamente antes do overflow.
  3. (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:
\beta = 10,\quad t = 7,\quad e_{\min} = -80,\quad e_{\max} = 80.
Vou usar a representação normalizada usual: qualquer número representável (não zero) tem a forma
\pm (d_1.d_2d_3\ldots d_t)_{\beta}\times \beta^{e},
com 1\le d_1\le \beta-1 e d_i\in\{0,\dots,\beta-1\}, e o expoente e inteiro entre e_{\min} e e_{\max}.

Passo 2

Explicando a estrutura do mantissa (para entender espaçamentos): com t=7 dígitos, a mantissa tem a forma
d_1.d_2d_3d_4d_5d_6d_7
onde o termo menos significativo (último dígito) representa um incremento de magnitude \beta^{-(t-1)} na mantissa. Em decimal isso significa que, para expoente fixo e, o menor incremento possível entre dois números representáveis com esse expoente é
\Delta(e)=\beta^{-(t-1)}\times \beta^{e}=\beta^{\,e-t+1}.
Vou usar essa fórmula depois para calcular lacunas e densidades. Antes, cálculo do \varepsilon-máquina.

Passo 3

Definição e cálculo do \varepsilon-máquina (gap em torno de 1).
Definição prática que usarei: o \varepsilon-máquina é a diferença entre 1 e o menor número representável estritamente maior que 1. Para o sistema normalizado, o 1 é representado por mantissa 1.0000000 (sete dígitos) e o próximo número, aumentando o último dígito em uma unidade, tem mantissa 1.0000010 — observe que o incremento na mantissa é 10^{-(t-1)}.
Portanto o incremento entre 1 e o próximo número é
\varepsilon_{\text{mach}}=\beta^{-(t-1)}.
Substituindo \beta=10 e t=7:
\varepsilon_{\text{mach}}=10^{-(7-1)}=10^{-6}.
Observação prática/computacional: muitos livros definem também o “unit roundoff” u (erro relativo máximo ao arredondar para a representação mais próxima) como u=\tfrac{1}{2}\varepsilon_{\text{mach}} quando se usa arredondamento para o mais próximo. Então aqui
u=\tfrac{1}{2}\cdot 10^{-6}=5\times 10^{-7}.

Passo 4

Significado computacional do \varepsilon-máquina (explicação didática e com exemplo).
  • \varepsilon_{\text{mach}}=10^{-6} significa que, na vizinhança de 1, os números representáveis formam uma grade com espaçamento relativo 10^{-6}. Ou seja, o número representável imediatamente maior que 1 é 1+10^{-6}.
  • Em termos de erro relativo: se você armazena um número real x e ele é aproximado pela representação \hat x por truncamento ou arredondamento, o erro relativo típico perto de 1 é da ordem de u (ou, no pior caso de truncamento, até quase \varepsilon_{\text{mach}}).
  • Exemplo simples: se você calcula 1+10^{-7} no sistema e usa truncamento, o resultado será 1 porque 10^{-7}<10^{-6} e não altera a mantissa no último dígito; isto mostra que incrementos menores que \varepsilon_{\text{mach}} em torno de 1 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 t=7 dígitos em base 10 é
9.9999999 = 10 - 10^{-7}.
Multiplicando pelo maior expoente e_{\max}=80, o maior número representável finito é
x_{\max}=(10-10^{-7})\times 10^{80}=10^{81}-10^{73}.
Esse é o valor imediatamente antes do overflow (qualquer número maior exigiria expoente >80 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 e o espaçamento entre dois números consecutivos é
\Delta(e)=\beta^{e-t+1}.
Imediatamente antes do overflow os números usam o expoente máximo e=80. Substituindo \beta=10 e t=7:
\Delta(80)=10^{80-7+1}=10^{74}.
Logo a maior lacuna entre dois números positivos representáveis (com expoente 80) é 10^{74}.
Comentário numérico: isso significa que, perto de x_{\max}\approx 10^{81}, os números representáveis vizinhos estão separados por 10^{74} — 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 é e é o inverso do espaçamento:
\text{densidade}(e)=\frac{1}{\Delta(e)}=\beta^{-e+t-1}.
Isto já sugere que a densidade depende fortemente de e: aumentando e a densidade diminui geometricamente (cada aumento de e em 1 divide a densidade por \beta).

Passo 8

Justificativa rigorosa de por que a densidade não é uniforme (resposta para (c)).
Tomemos os intervalos tipo [\beta^{k},\beta^{k+1}) com k inteiro tal que o expoente normalizado seja k. Todos os números representáveis com expoente k têm espaçamento fixo
\Delta(k)=\beta^{k-t+1},
portanto a densidade naquele intervalo é
\text{densidade}(k)=\beta^{-k+t-1}.
Como \beta^{-k+t-1} depende de k (é função decrescente de k), a densidade varia de intervalo para intervalo: se k aumenta em 1, a densidade é multiplicada por \beta^{-1}. Para a base \beta=10 isso significa que a densidade em [10^{k+1},10^{k+2}) é 10 vezes menor do que em [10^{k},10^{k+1}).
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 \beta^{e} faz com que o espaçamento dependa exponencialmente do expoente.

Passo 9

Resumo intuitivo e incentivo
  • Resumindo: a precisão relativa local é controlada por \varepsilon_{\text{mach}} (gap perto de 1); 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) \varepsilon_{\text{mach}}=10^{-6} (unit roundoff u=\tfrac{1}{2}10^{-6}=5\times10^{-7}).\n
(b) A maior lacuna imediatamente antes do overflow é 10^{74}.\n
(c) A densidade não é uniforme porque, para expoente e, o espaçamento vale \Delta(e)=\beta^{e-t+1}; logo a densidade é \beta^{-e+t-1}, que depende de e (cresce/decresce geometricamente com o expoente), portanto não é constante ao longo da reta.

Exercícios relacionados