O erro total de um número em aritmética de ponto flutuante é dado pelo erro nas parcelas mais o erro residual de cada operação. Dito isso, pede-se:
a) Diga quanto vale o erro relativo para u=(m+n) w / o supondo que o erro relativo dos números vale \frac{1}{2} \times 10^{-t+1} e usando o arredondamento.
b) Diga quanto vale o erro relativo para o mesmo u, mas agora supondo que os números são representados exatamente e usando o truncamento.
c) Se os valores aproximados para \mathrm{m}, \mathrm{n}, o e w valem, respectivamente, 10, 20, 30 e 40, calcule quanto valem os erros dos dois itens anteriores.
Passo 1
O enunciado pede três coisas e dá uma informação sobre erro nas representações:
Pedido (a): determinar o erro relativo em \,u=(m+n)w/o\, assumindo que os números (as representações de m,n,o,w) têm erro relativo igual a \dfrac{1}{2}\times 10^{-t+1} e que usamos arredondamento nas operações.
Pedido (b): determinar o erro relativo em \,u=(m+n)w/o\, agora supondo que os números são representados exatamente e que cada operação usa truncamento.
Pedido (c): com as aproximações m=10, n=20, o=30, w=40, calcular numericamente os erros correspondentes aos itens (a) e (b).
Informações úteis fornecidas:
Erro relativo máximo nas representações (no item a): \displaystyle \delta = \frac{1}{2}\times 10^{-t+1}.
No arredondamento, modela-se cada operação aritmética por um fator (1+\varepsilon) com |\varepsilon|\le \delta.
No truncamento (item b), o erro relativo por operação pode ser bounded por \displaystyle \delta_{\text{trunc}}=10^{-t+1}.
A sequência de operações considerada é: primeiro soma m+n, depois multiplica por w, depois divide por o. Vamos usar esse fluxo para modelar os erros.
Passo 2
Modelo de erro usado (explicando bem devagar, como numa prova):
Representação: se um número exato é x e sua representação é \tilde x, escrevemos \tilde x = x(1+e_x) com |e_x| sendo o erro relativo da representação.
Arredondamento/truncamento das operações: quando executamos uma operação aritmética (soma, subtração, multiplicação, divisão) com operandos exatos a e b, o valor armazenado da operação é modelado como\mathrm{fl}(a\\ \text{op}\\ b) = (a\\ \text{op}\\ b)\,(1+\varepsilon),onde \varepsilon é o erro relativo da operação e |\varepsilon| é limitado pela unidade de arredondamento (ou truncamento).
Para arredondamento com t dígitos em base 10, admitemos |\varepsilon|\le \delta com \delta=\dfrac{1}{2}\times 10^{-t+1}.
Para truncamento com t dígitos em base 10, admitemos |\varepsilon|\le \delta_{\text{trunc}}=10^{-t+1}.
Observação importante (cuidado com soma): o modelo multiplicativo acima é o modelo padrão de análise de erros (modelo de arredondamento), válido como bound de primeira ordem, desde que não ocorra cancelamento catastrófico na soma. Aqui assumimos situação não-catastrófica (os valores dados no item c são positivos, então não há cancelamento).
Passo 3
Vamos modelar passo a passo a computação com representações e arredondamento, com as notações:
representações iniciais: \tilde m = m(1+e_m), \tilde n = n(1+e_n), \tilde w = w(1+e_w), \tilde o = o(1+e_o) com |e_m|,|e_n|,|e_w|,|e_o|\le \delta.
operações aritméticas com erros: denotemos \varepsilon_1 o erro da soma (arredond.), \varepsilon_2 o erro da multiplicação, \varepsilon_3 o erro da divisão, com |\varepsilon_i|\le \delta para i=1,2,3.
Soma interna:
\tilde s \equiv \mathrm{fl}(\tilde m+\tilde n) = (\tilde m+\tilde n)(1+\varepsilon_1).
Escrevendo \tilde m+\tilde n = (m+n) + (m e_m + n e_n), podemos colocar
\tilde m+\tilde n = (m+n)\bigl(1+\theta_1\bigr),
onde \displaystyle \theta_1=\frac{m e_m + n e_n}{m+n} e, pelo fato de |e_m|,|e_n|\le \delta e m,n\ge0, tem-se |\theta_1|\le \delta.
Para pequenos erros, usamos a expansão de primeira ordem (desprezando termos quadráticos como \varepsilon_1\varepsilon_2, etc.). Então o erro relativo total aproximado é a soma dos pequenos termos:
Comentário intuitivo: os seis termos são (i) erro de representação combinada da soma \theta_1, (ii) erro de arredondamento da soma \varepsilon_1, (iii) erro de representação de w (e_w), (iv) erro de arredondamento da multiplicação \varepsilon_2, (v) erro de representação de o (entra com sinal negativo, mas em módulo contribui |e_o|), (vi) erro de arredondamento da divisão \varepsilon_3. Cada um tem magnitude \le \delta.
Passo 4
Agora os números m,n,o,w são representados exatamente, isto é e_m=e_n=e_w=e_o=0. Usa-se truncamento nas operações, cujo erro relativo por operação satisfaz |\varepsilon_i|\le \delta_{\text{trunc}}=10^{-t+1}.
Repetindo o modelo das operações (mas sem erros de representação), obtemos
Observação: o fator 3 vem das três operações aritméticas (soma, multiplicação, divisão). Em truncamento cada operação pode errar até 10^{-t+1} em relativo; em arredondamento os erros por operação eram no máximo \tfrac{1}{2}10^{-t+1}, mas havia também erros de representação iniciais em (a), e o balanço final levou ao mesmo fator numérico 3\cdot 10^{-t+1} para estes dados do problema.
Passo 5
Primeiro calculemos o valor exato (com os números indicados) do ideal u: