Reorganize as expressões abaixo para amenizar possíveis erros de cálculo. Escolha valores para
que evidenciem os erros.
Passo 1
Beleza, então o enunciado pede pra “reorganizar” a expressão
de um jeito que evite erros numéricos (tipo a tal “catastrophic cancellation” quando x é bem grande) e, de quebra, escolher uns valores de x que mostrem que a forma original dá ruim.
Conteúdo: manipulação algébrica (racionalização de expressão) e um toque de noções de erro numérico.
O que vamos precisar:
Conteúdo: manipulação algébrica (racionalização de expressão) e um toque de noções de erro numérico.
O que vamos precisar:
- Saber que, quando subtraímos dois números quase iguais, perdemos precisão.
- Racionalizar pelo conjugado pra transformar essa diferença em uma divisão mais estável.
Passo 2
Por que dá erro?
Se x é grande, . Então
Se x é grande,
que é um número pequeno. No entanto, usando ponto-flutuante,
e
viram dois valores quase idênticos, e na subtração sobra “zero” ou um valor completamente impreciso. Esse é o famoso cancelamento catastrófico.
Passo 3
Como resolver?
Racionaliza a expressão multiplicando por
Racionaliza a expressão multiplicando por
Assim:
Pronto: virou
que para x grande não faz subtração de valores quase iguais, mas sim uma soma no denominador.
Passo 4
Vamos escolher valores pra ver a diferença:
- x = 10^8
- Forma original em ponto-flutuante (float64) dá algo tipo 0.0
- Forma reorganizada dá
que é o valor certo (em teoria ~5×10⁻⁹).
- x = 10^10
- Original vira 0.0 de novo
- Reorganizada dá ~5.0000000000000002×10⁻¹¹
Resposta
Expressão reorganizada:
Valores que evidenciam o erro: x = 10^8, x = 10^{10} (na forma original dá zero; na reorganizada dá o valor certo da ordem de 10⁻⁹ ou 10⁻¹¹).