Seja um sistema de aritmética de ponto flutuante de quatro dígitos e base decimal. Efetue as seguintes operações e obtenha um limitante superior para o erro relativo no resultado por arredondamento, supondo que x, y e z estão exatamente representados:
x * y * z

Passo 1

O enunciado dá e pede o seguinte (vou listar bem claro para a gente não se perder):
  • Sistema de aritmética de ponto-flutuante com quatro dígitos na mantissa e base decimal.
  • As variáveis x, y e z são exatamente representadas no formato do sistema (ou seja, não há erro inicial de representação).
  • Pede-se: efetuar a operação x * y * z (multiplicação sequencial) e obter um limitante superior para o erro relativo no resultado devido ao arredondamento.

Passo 2

Definir a unidade de arredondamento (unit roundoff) do sistema: para base \beta e t dígitos, a unidade de arredondamento para arredondamento ao mais próximo é
u = \tfrac{1}{2}\,\beta^{1-t}.
Aqui \beta=10 e t=4. Portanto
u = \tfrac{1}{2}\,10^{1-4} = \tfrac{1}{2}\,10^{-3} = 5\cdot10^{-4}.

Passo 3

Apresentar o modelo padrão de erro de arredondamento para operações aritméticas: para qualquer operação binária exata a\\ \text{op}\\ b (op = +,−,×,/), o resultado arredondado pode ser modelado como
\operatorname{fl}(a\\ \text{op}\\ b) = (a\\ \text{op}\\ b)\,(1+\delta),
com algum \delta satisfazendo |\delta|\le u. Esse modelo diz: o resultado exato é multiplicado por um fator (1+\delta) com \delta pequeno.

Passo 4

Aplicar o modelo à primeira multiplicação x*y. Como x e y são exatamente representados, a multiplicação exata é xy e o valor armazenado após arredondamento será
s = \operatorname{fl}(x y) = xy\,(1+\delta_1),
onde |\delta_1|\le u.

Passo 5

Agora aplicar o modelo à segunda multiplicação, usando o resultado arredondado s multiplicado por z:
\operatorname{fl}(s\,z) = \operatorname{fl}\big(\operatorname{fl}(x y)\,z\big) = \big(s z\big)\,(1+\delta_2).
Substituindo s da etapa anterior:
\operatorname{fl}\big(\operatorname{fl}(x y)\,z\big) = \big(xy\,(1+\delta_1)\,z\big)\,(1+\delta_2) = xyz\,(1+\delta_1)(1+\delta_2),
com |\delta_2|\le u.

Passo 6

Calcular o erro relativo entre o resultado computado e o exato xyz. O erro relativo é
\left|\frac{\operatorname{fl}(\operatorname{fl}(x y)\,z)-xyz}{xyz}\right| = \big|(1+\delta_1)(1+\delta_2)-1\big|.
Expandindo:
(1+\delta_1)(1+\delta_2)-1 = \delta_1+\delta_2+\delta_1\delta_2.
Tomando o valor absoluto e usando |\delta_1|\le u, |\delta_2|\le u, obtemos o limitante superior
\big|\delta_1+\delta_2+\delta_1\delta_2\big| \le |\delta_1|+|\delta_2|+|\delta_1||\delta_2| \le u+u+u^2 = 2u+u^2.
Outra forma compacta é observar que
\big|(1+\delta_1)(1+\delta_2)-1\big| \le (1+u)^2-1 = 2u+u^2.

Passo 7

Substituir o valor numérico de u. Lembrando u=5\cdot10^{-4}:
2u+u^2 = 2\cdot(5\cdot10^{-4}) + (5\cdot10^{-4})^2 = 10\cdot10^{-4} + 25\cdot10^{-8} = 10^{-3} + 2,5\cdot10^{-7} = 0,00100025.

Passo 8

Interpretação final (curtinha e motivadora): isso significa que, se multiplicar x, depois multiplicar por z no sistema dado, o erro relativo máximo possível devido apenas ao arredondamento das duas multiplicações está limitado por 2u+u^2, que numericamente, para t=4 e base 10, é 0,00100025. É uma estimativa pessimista (limitante superior) — o erro real pode ser bem menor, mas nunca será maior que isso sob o modelo de arredondamento ao mais próximo.

Resposta

\left|\frac{\operatorname{fl}(\operatorname{fl}(x y)\,z)-xyz}{xyz}\right| \le 2u+u^2 = 0,00100025

Exercícios relacionados