A2 Considere uma máquina com sistema de F(10,4,5,5). Pede-se:
a) Qual o menor e o maior número em módulo representado nesta máquina?
b) Como será representado o número 23456 nesta máquina?
c) Se a=42450 e b=3 qual o resultado de a+b se for usado o arredondamento? Considerando ainda, a=42450 e b=3, qual o resultado da operação:
a+sumi=1^10 b sumi=1^10 b+a
Justifique a melhor a forma.
d) Considere o cálculo de z=(a * b) / c, onde a=4 times 10^4, b=3 times 10^2 e c=2 times 10^3. Qual o resultado obtido no cálculo de z nas duas opções:
calcula m=a cdot b e em seguida obtém z=m / c;
calcula m=a / c e em seguida z=m cdot b. Justifique qual a melhor forma.

Passo 1

Beleza, temos aqui um exercício de aritmética de ponto flutuante numa “máquina” com base 10, mantissa de 4 dígitos e expoentes entre –5 e +5, ou seja, .
Conteúdo: representação normalizada, arredondamento e propagação de erro em soma e produto/divisão.
O que precisamos saber:
  • Como se normaliza um número (mantissa × base^expoente).
  • Como funciona o ULP (unidade no último lugar) e o tal do arredondamento.
  • O intervalo de expoentes ( , ).

Passo 2

(a) Menor e maior módulo representável
  1. Numeração normalizada em base 10, mantissa 1.000times10^-5=10^-5 com 9.999times10^5 .
  2. Exponente mínimo → menor positivo é
Negativo seria .
3. Expoente máximo , mantissa máxima → maior módulo

Passo 3

(b) Representar 23456approx 2.346times10^4 em
  1. Normaliza: .
  2. Mantissa só tem 4 dígitos: temos “2.3456”, vamos arredondar para 4 dígitos significativos.
    • O quinto dígito é ‘6’ (>5), então a mantissa vira .
  3. Resultado:

Passo 4

(c.1) Calcular 4.245times10^4 =42450 com arredondamento, onde e
  1. Escreve em ponto flutuante:
  2. Soma aritmética exata: .
  3. Mas, ao alinhar expoentes e somar mantissas, o resultado intermediário é . Temos 5 dígitos “42453”, mas só cabem 4. O 5º dígito é ‘3’ (<5) → ao arredondar, fica
Ou seja, o “some” por causa do arredondamento.

Passo 5

(c.2) Comparar duas maneiras de somar vezes com
  1. Jeito 1: comece com e faça 10 vezes , arredondando a cada passo.
    • No primeiro passo já dá (como vimos), e daí em diante nunca muda. Resultado final:
  2. Jeito 2: primeiro soma todos os entre si, depois adiciona a .
    • , exatamente .
    • Depois . Em ponto flutuante:
  3. Conclusão: é melhor somar primeiro os números pequenos (aqui o b’s) entre si, e só depois juntar com o grande, pra diminuir os efeitos do arredondamento.

Passo 6

(d) Calcular a=4times10^4, b=3times10^2, c=2times10^3 de dois jeitos e ver qual funciona melhor, sendo
  1. Jeito 1: multiplica primeiro .
    • Exato:
    • Mas tem expoente , cai fora do alcance → overflow.
  2. Jeito 2: divide antes, , depois multiplica por .
    • , que é , ok.
    • Agora .
      → sem overflow, dá .
  3. Conclusão: melhor dividir primeiro, aí sim multiplico.

Resposta

a) Menor módulo . Maior módulo .
b) .
c)
  • Somando direto com arredondamento dá .
  • Somando 10-vezes depois com . Melhor somar primeiro os .
    d)
  • “direto” dá overflow.
  • Fazendo a máquina lida bem e retorna .

Exercícios relacionados