Considere uma máquina com sistema de representação de números definido por: base 10 ( \beta= 10), 4 dígitos na mantissa ( t=4 ) e expoente no intervalo: [-5 ; 5]. Pede-se:
a) Qual o menor e o maior número em módulo representado nessa máquina?
b) Como será representado o número 73758 nesta máquina se for usado o arredondamento? E se for usado o truncamento?
c) Se a=42450 e b=3, qual o resultado de a+b se for usado o arredondamento? E se for usado o truncamento? Justifique o resultado.
d) Considerando ainda a=42450 e b=3, qual o resultado da operação a+\sum_{i=1}^{10} b, considerando que está sendo realizado o truncamento?
e) Repetir o item d) para a operação \sum_{i=1}^{10} b+a.
f) Considere a=4245, b=300 e c=100. Qual o resultado obtido nets máquina para d e e, calculados de acordo com: d=(a * b) / c e e=a *(b / c). Justifique!
g) O que podemos concluir sobre a validade das propriedades como: comutativa, associativa, elemento neutro da adição de números em aritmética de ponto flutuante?

Passo 1

O enunciado trata de uma máquina de ponto flutuante em base \beta=10, com t=4 dígitos na mantissa normalizada (ou seja, da forma
\pm d_0.d_1d_2d_3\times10^e,\quad d_0\neq0,
e e varia em [-5,5]). Vamos usar esse formato para achar o menor e o maior módulo representável, depois ver como são feitos arredondamento e truncamento em exemplos de adição e multiplicação/divisão, e finalmente discutir propriedades como comutativa e associativa.

Passo 2

(a) O menor número positivo distinto de zero surge quando a mantissa é 1.000 e o expoente é e_{\min}=-5:
x_{\min}=1.000\times10^{-5}=10^{-5}.
O maior em módulo ocorre quando a mantissa é 9.999 e o expoente é e_{\max}=5:
x_{\max}=9.999\times10^{5}=9{,}999\times10^5.

Passo 3

(b) Para representar 73758 primeiro escrevemos em notação normalizada:
73758 = 7.3758\times10^4.
Temos 5 dígitos significativos (7,3,7,5,8), mas só cabem t=4.
  • Arredondamento: olhamos o 5.º dígito ( =8), como é >=5, aumentamos o 4.º dígito em 1, ficando
7.376\times10^4 = 73760.
  • Truncamento: cortamos após 4 dígitos sem olhar para o que vem depois,
7.375\times10^4 = 73750.

Passo 4

(c) Seja a=42450 e b=3. Em ponto flutuante:
a=4.2450\times10^4,\quad b=3.000\times10^0.
Para somar, alinhamos expoentes a 10^4:
b = 0.0003\times10^4, \quad a+b = (4.2450+0.0003)\times10^4 = 4.2453\times10^4.
Isso tem 5 dígitos (4,2,4,5,3). Tanto arredondando quanto truncando para 4 dígitos, o quinto dígito ( =3) não eleva o quarto, e nem aparece no truncamento, de modo que
a+b = 4.245\times10^4 = 42450.

Passo 5

(d) Se fazemos
S_0 = a,\quad S_{k+1} = \mathrm{trunc}(S_k + b),
para k=0,1,\dots,9, então já em S_1 temos S_1=\mathrm{trunc}(42450+3)=42450, e todas as somas seguintes continuam iguais a 42450. Logo
a+\sum_{i=1}^{10}b = 42450.

Passo 6

(e) Agora primeiro acumulamos \sum_{i=1}^{10}b com truncamento:
3+3+3+\cdots+3 = 30,
sempre exato em 4 dígitos: 3.000\times10^0\to6.000\to9.000\to\cdots\to3.000\times10^1. Depois somamos a a:
30 = 0.0030\times10^4,\quad a + 30 = (4.2450 + 0.0030)\times10^4 = 4.2480\times10^4.
Isso tem 5 dígitos (4,2,4,8,0), e truncando para 4 dígitos sobra
4.248\times10^4 = 42480.

Passo 7

(f) Definimos agora
a=4245,\quad b=300,\quad c=100,
isto é
a=4.245\times10^3,\quad b=3.000\times10^2,\quad c=1.000\times10^2.
Operação d=(a*b)/c:
  1. a*b = (4.245\times10^3)(3.000\times10^2) = 12.735\times10^5 = 1.2735\times10^6.
    Arredondando para 4 dígitos na mantissa obtemos 1.274\times10^6.
  2. Dividindo por c=1.000\times10^2
\frac{1.274\times10^6}{1.000\times10^2} = 1.274\times10^4 = 12740.
Para e = a*(b/c):
  1. b/c = (3.000\times10^2)/(1.000\times10^2) = 3.000\times10^0 (exato).
  2. a*3.000\times10^0 = (4.245\times10^3)(3.000\times10^0) = 12.735\times10^3 = 1.2735\times10^4, que arredondamos para 1.274\times10^4 = 12740.
    Em ambos os casos o resultado na máquina é
d = e = 12740.

Passo 8

(g) Com base nos exemplos:
  • Comutativa da adição a+b=b+a vale, pois a ordem não altera o resultado (mesmo que parte de b se perca por falta de dígitos).
  • Associativa da adição (a+b)+c = a+(b+c) falha em geral, como vimos em (d) vs. (e) para a e 10 cópias de b.
  • Elemento neutro (zero) age como esperado, mas em presença de números de ordens de grandeza muito distintas, x+0 pode ser x, porém x+\varepsilon para \varepsilon\ll x pode também ficar x, mostrando perda de significado de pequenas parcelas.

Resposta

a) x_{\min}=1.000\times10^{-5}=10^{-5},\quad x_{\max}=9.999\times10^{5}.
b) Arredondamento: 7.376\times10^4=73760. Truncamento: 7.375\times10^4=73750.
c) Em ambos os casos a+b=42450.
d) a+\sum_{i=1}^{10}b=42450 (truncamento iterado).
e) \sum_{i=1}^{10}b + a = 42480 (truncamento na soma final).
f) (a*b)/c = 12740 e a*(b/c) = 12740.
g) A adição é comutativa, mas não é associativa; o zero ainda é elemento neutro formal, mas pequenas parcelas podem ser completamente desperdiçadas.

Exercícios relacionados