1. Represente 5.7 no sistema binário ( \beta=2 ) de ponto flutuante com 8 dígitos da mantissa ( t=8 ).
  2. Seja
f(x)=\sqrt{x^{2}+1}+x .

Passo 1

Enunciado e dados fornecidos (resumindo o que é pedido):\n
  • (1) Representar 5{,}7 no sistema binário ( \beta=2) como número de ponto flutuante com t=8 dígitos da mantissa. Não foi especificado o modo de arredondamento; vou usar o modo padrão mais comum: arredondamento para o mais próximo (round-to-nearest). Também vou adotar a definição padrão de precisão t: t é o número total de dígitos na mantissa (no caso binário, t bits na significand), isto é, conta-se o dígito líder normalizado (em base 2 este dígito é 1) mais os bits fracionários. Logo, com t=8 mantemos 8 bits na significand total (1 bit líder + 7 bits fracionários).\n
  • (2) Dada a função
f(x)=\sqrt{x^{2}+1}+x ,
precisa-se manipular/avaliar essa expressão (normalmente a tarefa aqui é analisar estabilidade numérica e dar uma forma alternativa para computação sem perda de precisão).

Passo 2

Como converter um número decimal para binário (breve aula):\n
  • Para a parte inteira: dividir por 2 sucessivamente e escrever os restos (ou decompor em potências de 2). Cada resto é um bit.\n
  • Para a parte fracionária: multiplicar a fracção por 2 repetidamente; a parte inteira de cada produto (0 ou 1) é o próximo bit fracionário; continuar até ter bits suficientes ou até a fracção chegar a zero.\n
  • Depois juntamos parte inteira e fracionária. Para ponto flutuante normalizado em base 2 escrevemos o número como
(\text{signo})\;1.\text{(bits)}\times 2^{e},
onde há exatamente um dígito não-nulo à esquerda do ponto (no binário isso é sempre 1 para números não nulos). Com t dígitos, mantemos t bits no total na significand (o primeiro é o 1 normalizado).

Passo 3

Converter a parte inteira de 5{,}7:\n
  • 5 em binário é 101_{2} porque 5 = 1\cdot 2^{2} + 0\cdot 2^{1} + 1\cdot 2^{0}.\n
    Portanto a parte inteira fornece 101.

Passo 4

Converter a parte fracionária 0{,}7 por multiplicação sucessiva (mostro as multiplicações e os bits gerados):\n
\begin{aligned} 0{,}7\cdot 2 &= 1{,}4 &\Rightarrow&\\ \text{bit}_1 = 1,\\ \text{frac}=0{,}4\\\\ 0{,}4\cdot 2 &= 0{,}8 &\Rightarrow&\\ \text{bit}_2 = 0,\\ \text{frac}=0{,}8\\\\ 0{,}8\cdot 2 &= 1{,}6 &\Rightarrow&\\ \text{bit}_3 = 1,\\ \text{frac}=0{,}6\\\\ 0{,}6\cdot 2 &= 1{,}2 &\Rightarrow&\\ \text{bit}_4 = 1,\\ \text{frac}=0{,}2\\\\ 0{,}2\cdot 2 &= 0{,}4 &\Rightarrow&\\ \text{bit}_5 = 0,\\ \text{frac}=0{,}4\\\\ 0{,}4\cdot 2 &= 0{,}8 &\Rightarrow&\\ \text{bit}_6 = 0,\\ \text{frac}=0{,}8\\\\ 0{,}8\cdot 2 &= 1{,}6 &\Rightarrow&\\ \text{bit}_7 = 1,\\ \text{frac}=0{,}6\\\\ 0{,}6\cdot 2 &= 1{,}2 &\Rightarrow&\\ \text{bit}_8 = 1,\\ \text{frac}=0{,}2\\\ \end{aligned}
Observação: a partir daqui os restos repetem ( 0{,}2\to0{,}4\to0{,}8\to0{,}6\to0{,}2 …), então os bits fracionários repetem o padrão. Os primeiros bits fracionários obtidos são
\text{frac bits} = 1,\;0,\;1,\;1,\;0,\;0,\;1,\;1,\;\dots
Logo a expansão binária completa (infinita periódica) é
5{,}7_{10} = 101{.}101100110011\ldots_{2}.

Passo 5

Normalizar para formato ponto flutuante em base 2:\n
  • A forma normalizada desloca o ponto de forma a deixar um único 1 antes do ponto: 101{.}101100\ldots_{2} = 1{.}0110110011\ldots_{2}\times 2^{2}.

Passo 6

Aplicar a precisão t=8 (explicação detalhada):\n
  • Lembrando: escolhemos t=8 como número total de bits na significand (1 bit líder + 7 bits fracionários).\n
  • Da expansão normalizada 1{.}0110110011\ldots os primeiros bits fracionários (após o 1.) são
f_{1} = 0,\\ f_{2}=1,\\ f_{3}=1,\\ f_{4}=0,\\ f_{5}=1,\\ f_{6}=1,\\ f_{7}=0,\\ f_{8}=0,\\ \ldots
  • Como vamos armazenar 7 bits fracionários (além do bit líder), mantemos f_{1} até f_{7}: 0\;1\;1\;0\;1\;1\;0. O bit seguinte (para decidir arredondamento) é f_{8}=0.\n
  • Regra de arredondamento para o mais próximo: se o bit imediatamente após os bits mantidos ( f_{8}) for 0 e os bits seguintes não fazem um caso de “meio caso” favorável, arredondamos para baixo (mantemos o que temos). Aqui f_{8}=0, então não arredondamos para cima.\n
  • Portanto a representação com t=8 é
\boxed{1{.}0110110_{2}\times 2^{2}}.
Isto é a representação normalizada em binário com t=8.

Passo 7

Calcular o valor decimal aproximado correspondente (para verificar o erro):\n
  • Primeiro calcule a mantissa em decimal:
1{.}0110110_{2} = 1 + \frac{0}{2} + \frac{1}{4} + \frac{1}{8} + \frac{0}{16} + \frac{1}{32} + \frac{1}{64} + \frac{0}{128}.
  • Somando as frações:
\frac{1}{4}+\frac{1}{8}+\frac{1}{32}+\frac{1}{64} = \frac{16+8+2+1}{64} = \frac{27}{64} = 0{,}421875.
  • Então a mantissa vale 1{,}421875 e multiplicando por 2^{2}=4 obtemos
\text{valor aproximado} = 4\times 1{,}421875 = 5{,}6875.
  • Erro em relação a 5{,}7: 5{,}6875 - 5{,}7 = -0{,}0125. (Ou seja, representação resultou em 5{,}6875, com erro -0{,}0125.)

Passo 8

Agora a função f(x)=\sqrt{x^{2}+1}+x. Objetivo: manipular para evitar cancelamento numérico e explicar por que a manipulação melhora a estabilidade.\n
  • Aula rápida sobre cancelamento numérico: quando somamos ou subtraímos dois números grandes e de sinais opostos e o resultado é muito menor que os operandos, há perda de dígitos significativos — isto é o cancelamento. Para f(x), quando x é negativo com grande magnitude, \sqrt{x^{2}+1}\approx |x| = -x, então estamos somando dois números grandes em módulo e de sinais opostos, causando cancelamento e perda de precisão.

Passo 9

Fazer uma manipulação algébrica que evita subtracting de duas quantidades próximas (passo a passo):\n
  • Multiplico e divido por \sqrt{x^{2}+1}-x (não altera o valor, desde que o denominador não seja zero):
\begin{aligned} f(x) &= \sqrt{x^{2}+1}+x\\\ &= \frac{(\sqrt{x^{2}+1}+x)\,(\sqrt{x^{2}+1}-x)}{\sqrt{x^{2}+1}-x}\\\ &= \frac{(\sqrt{x^{2}+1})^{2}-x^{2}}{\sqrt{x^{2}+1}-x}\\\ &= \frac{x^{2}+1 - x^{2}}{\sqrt{x^{2}+1}-x}\\\ &= \frac{1}{\sqrt{x^{2}+1}-x}. \end{aligned}
  • Conclusão: matematicamente vale a identidade
\boxed{\,\sqrt{x^{2}+1}+x \;=\; \dfrac{1}{\sqrt{x^{2}+1}-x}\,}
para todo x real (com denominação não nula — e de fato \sqrt{x^{2}+1}-x\neq 0 para todo x).

Passo 10

Interpretação numérica e recomendação prática (como computar na prova/num computador sem perder precisão):\n
  • Para x positivo e moderado a grande: calcular diretamente f(x)=\sqrt{x^{2}+1}+x é estável, porque os termos têm mesmo sinal e não ocorre cancelamento.\n
  • Para x negativo (especialmente |x| grande): calcular f(x) pela forma original envolve subtrair dois números próximos (pois \sqrt{x^{2}+1}\approx -x), o que causa perda de precisão. Neste caso é mais estável usar a forma alternativa
f(x)=\frac{1}{\sqrt{x^{2}+1}-x},
pois aí soma-se valores de mesmo sinal no denominador (por exemplo para x<0 temos \sqrt{x^{2}+1}-x grande e positivo), evitando o cancelamento.\n
  • Em resumo, algoritmo prático para avaliar f(x) com boa estabilidade numérica:\n
\text{se } x\ge 0 \text{ então } f(x)=\sqrt{x^{2}+1}+x;\quad\text{se } x<0 \text{ então } f(x)=\dfrac{1}{\sqrt{x^{2}+1}-x}.ãã
Este procedimento recupera o mesmo valor exato, mas evita subtrações de grandezas quase iguais e, portanto, minimiza perda de precisão.

Resposta

(1) \;5{,}7 \approx 1{.}0110110_{2}\times 2^{2} (com t=8); valor aproximado correspondente =5{,}6875.\n
(2) \; \sqrt{x^{2}+1}+x = \dfrac{1}{\sqrt{x^{2}+1}-x}. Para avaliação numérica: usar f(x)=\sqrt{x^{2}+1}+x se x\ge 0 e usar f(x)=\dfrac{1}{\sqrt{x^{2}+1}-x} se x<0, para evitar cancelamento.

Exercícios relacionados