Na máquina M(2,4,-3,3), determine:
(a) o maior número representável;
(b) o menor número positivo representável;
(c) se ocorre overflow ou underflow para:
i. 100
ii. 0,001
8. Supondo que x é representado num computador por \bar{x}, onde \bar{x} é obtido por arredondamento, obtenha os limites superiores para os erros relativos de u=2 x e w=x+x. Qual das operações é mais precisa?

Passo 1

O enunciado pede várias coisas; vou listar claramente cada pergunta e os dados fornecidos (sem resolver ainda):
  • A máquina é M(2,4,-3,3). Isso significa, explicitamente:
    • base \beta=2;
    • número de dígitos da mantissa t=4 (mantissa normalizada com t dígitos em base 2);
    • menor expoente L=-3;
    • maior expoente U=3.
As perguntas são:
(a) Determinar o maior número representável na máquina.
(b) Determinar o menor número positivo representável na máquina (menor normalizado).
(c) Para os números 100 e 0,001: dizer se ocorre overflow ou underflow ao tentar representá-los.
Além disso (questão 8):
  • Supondo que x é representado por \bar{x} obtido por arredondamento, obter limites superiores para os erros relativos de u=2x e w=x+x. Dizer qual operação é mais precisa.

Passo 2

Vou explicar o formato de números nesta máquina e as fórmulas que vou usar (aula rápida e prática).
  • Forma normalizada de um número positivo: todo número representável (normalizado) tem a forma
\pm (d_0.d_1d_2\ldots d_{t-1})_{\beta}\times\beta^{e},
onde d_0 é um dígito não nulo (em base 2, d_0=1), cada d_i\in\{0,\dots,\beta-1\}, e o expoente e satisfaz L\le e\le U.
  • Mantissa máxima: em base \beta com t dígitos, a maior mantissa normalizada é
m_{\max}= (1.\underbrace{11\ldots1}_{t-1\\ \text{uns}})_{\beta}.
Para \beta=2 isso vale
m_{\max}=1+\sum_{k=1}^{t-1}2^{-k}=2-2^{-(t-1)}.
  • O maior número positivo representável é então
X_{\max}=m_{\max}\,\beta^{U}.
  • A menor mantissa normalizada é 1.00\ldots0, portanto o menor número positivo normalizado é
X_{\min}=1\cdot\beta^{L}=\beta^{L}.
  • Erro de arredondamento (modelo padrão): se \bar{x} é a representação arredondada de x, podemos escrever
\bar{x}=x(1+\delta),\qquad |\delta|\le\epsilon,
onde \epsilon é o “unit roundoff” (meia unidade de última ordem) dado por
\epsilon=\frac{1}{2}\beta^{1-t}.
Esse parâmetro será usado para estimar erros relativos quando manipulamos \bar{x}.

Passo 3

Calcular o maior número representável (item (a)):
  • Usando t=4, a maior mantissa em base 2 é
m_{\max}=2-2^{-(t-1)}=2-2^{-3}=2-\tfrac{1}{8}=1{,}875.
  • Como U=3 e \beta=2,
X_{\max}=m_{\max}\cdot 2^{3}=1{,}875\cdot 8=15.
Portanto o maior número representável é 15.

Passo 4

Calcular o menor número positivo normalizado (item (b)):
  • A menor mantissa normalizada é 1{,}000\ldots_2 = 1.
  • Com L=-3,
X_{\min}=1\cdot 2^{-3}=2^{-3}= \tfrac{1}{8}=0{,}125.
Portanto o menor número positivo representável (normalizado) é 0{,}125.

Passo 5

Verificar overflow/underflow para 100 (item (c)(i)):
  • Compare 100 com o máximo X_{\max}=15. Como 100>15, não há como representar 100 na faixa de expoentes/mantissa normalizada desta máquina.
  • Alternativa de verificação em binário (didática): 100_{10}=1100100_2=1{,}100100\times 2^{6}. O expoente necessário é e=6, mas U=3. Como 6>U o número está fora do alcance por excesso de magnitude → overflow.
Conclusão: ocorre overflow ao tentar representar 100.

Passo 6

Verificar overflow/underflow para 0{,}001 (item (c)(ii)):
  • Compare 0{,}001 com o mínimo normalizado X_{\min}=0{,}125. Temos 0{,}001<0{,}125, portanto o valor está abaixo do menor normalizado e não pode ser representado normalmente.
  • Em binário, aproximadamente \log_2(0{,}001)\approx -9{,}97, isto é, o expoente normalizado necessário seria cerca de -10, muito menor que L=-3: novamente não representável → underflow.
Conclusão: ocorre underflow ao tentar representar 0{,}001 (será subrepresentado, tipicamente tratado como zero se não houver subnormais).

Passo 7

Agora a parte sobre erros (questão 8): montar o modelo e calcular limites superiores.
  • Modelo de arredondamento: escrevemos
\bar{x}=x(1+\delta),\qquad |\delta|\le\epsilon,
com \epsilon=\dfrac{1}{2}\beta^{1-t}. Para a máquina dada ( \beta=2,\\ t=4):
\epsilon=\tfrac{1}{2}\,2^{1-4}=\tfrac{1}{2}\,2^{-3}=2^{-4}=\tfrac{1}{16}=0{,}0625.
Vou analisar as duas operações considerando como se obtém o resultado a partir de \bar{x}.

Passo 8

Erro relativo para u=2x:
  • Se simplesmente usamos \bar{x} (valor arredondado) e multiplicamos por 2 sem mais arredondamentos, o valor obtido é
\widetilde{u}=2\bar{x}=2x(1+\delta).
A diferença relativa em relação a u=2x é
\frac{\widetilde{u}-u}{u}=\frac{2x(1+\delta)-2x}{2x}=\delta,
logo
\left|\frac{\widetilde{u}-u}{u}\right|\le\epsilon.
  • Observação prática (importante e didática): multiplicar por 2 em base 2 equivale a aumentar o expoente em 1 — isto é, a operação é exata (não induz arredondamento adicional) desde que não aconteça overflow. Assim, no caso real dessa máquina, normalmente não há arredondamento extra ao calcular 2\bar{x}; logo o único erro relativo é o erro já presente em \bar{x} e o limite é \epsilon.
  • Caso mais conservador (se considerarmos que a multiplicação final também sofre arredondamento): escreveríamos
\mathrm{fl}(2\bar{x})=(2\bar{x})(1+\delta'),\qquad |\delta'|\le\epsilon,
então
\mathrm{fl}(2\bar{x})=2x(1+\delta)(1+\delta'),
e a diferença relativa é (1+\delta)(1+\delta')-1 cujo valor absoluto é \le 2\epsilon+\epsilon^{2}. Mas, como expliquei, para multiplicar por 2 em base 2 normalmente não há arredondamento extra.

Passo 9

Erro relativo para w=x+x:
  • Primeiro usamos \bar{x} (o valor arredondado) e calculamos \bar{x}+\bar{x}=2\bar{x}. Mesmo antes de qualquer arredondamento adicional temos 2\bar{x}=2x(1+\delta).
  • Porém a soma em ponto flutuante será novamente arredondada ao formato da máquina; modelando isso:
\widetilde{w}=\mathrm{fl}(\bar{x}+\bar{x})=(\bar{x}+\bar{x})(1+\delta''),\qquad |\delta''|\le\epsilon.
Portanto
\widetilde{w}=2x(1+\delta)(1+\delta''),
e a diferença relativa em relação a w=2x é
\frac{\widetilde{w}-w}{w}=(1+\delta)(1+\delta'')-1=\delta+\delta''+\delta\delta''.
Tomando o valor absoluto e usando |\delta|\le\epsilon,\\ |\delta''|\le\epsilon, obtemos o limite
\left|\frac{\widetilde{w}-w}{w}\right|\le 2\epsilon+\epsilon^{2}.
Numericamente, com \epsilon=\tfrac{1}{16},
2\epsilon+\epsilon^{2}=2\cdot\tfrac{1}{16}+\left(\tfrac{1}{16}\right)^{2}=\tfrac{1}{8}+\tfrac{1}{256}=\tfrac{33}{256}=0{,}12890625.

Passo 10

Comparação de precisão (resposta final à pergunta “Qual das operações é mais precisa?”):
  • Se multiplicar por 2 for realizado sem arredondamento adicional (caso típico em base 2, por ser deslocamento de expoente), então o erro relativo em u=2x é \le\epsilon (apenas o erro de \bar{x}), enquanto para w=x+x é \le 2\epsilon+\epsilon^{2}. Como \epsilon>0, tem-se
\epsilon < 2\epsilon+\epsilon^{2},
portanto u=2x é mais precisa que w=x+x.
  • Se quisermos ser extremamente conservadores e admitir que também a multiplicação final sofre arredondamento, ambos poderiam ter o mesmo limite \le 2\epsilon+\epsilon^{2}. Mas, na prática e na modelagem padrão, multiplicar por uma potência da base é exato (sem arredondamento extra), então a operação 2x é mais precisa.

Resposta

(a) 15
(b) 0{,}125
(c)(i) overflow
(c)(ii) underflow
Erro relativo máximo para u=2x: \epsilon=\dfrac{1}{2}\beta^{1-t}=\dfrac{1}{16}=0{,}0625 (quando multiplicar por 2 não causa arredondamento adicional).
Erro relativo máximo para w=x+x: 2\epsilon+\epsilon^{2}=\dfrac{33}{256}=0{,}12890625.
Operação mais precisa: u=2x (mais precisa que w=x+x).

Exercícios relacionados