Reorganize as expressões abaixo para amenizar possíveis erros de cálculo. Escolha valores para x que evidenciem os erros.
raizx^2+1-x

Passo 1

Beleza, então o enunciado pede pra “reorganizar” a expressão
raizx^2+1-x
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:
  • 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, raizx^2+1-x approx l(x+tfrac12xr) - x = tfrac12x, . Então
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
raizx^2+1+xraizx^2+1+x
Assim:
raizx^2+1-x = l(raizx^2+1-xr);raizx^2+1+xraizx^2+1+x = (raizx^2+1)^2 - x^2raizx^2+1+x = x^2+1 - x^2raizx^2+1+x = 1raizx^2+1+x
Pronto: virou
boxed1raizx^2+1+x,
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á 1raiz(10^8)^2+1 + 10^8 approx 5.0000000000000004 times 10^-9, 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:
boxedraizx^2+1-x = 1raizx^2+1+x
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⁻¹¹).

Exercícios relacionados