Erro de Aproximação, Estabilidade de computação
Problema: Considere a função f(x)=5x+3. Qual é a precisão na entrada desta função para que a saída tenha erro menor do que 10−4?
Observem que o problema acima pode surgir num problema aplicado. por exemplo quando aumentamos as dimensões de uma figura na tela de computador (5 vezes maior) e gostaríamos de que a imagem resultante não seja de má qualidade. Somar com 3 pode representar uma translação que não implicaria nada na resolução!
Bom, se inserirmos x1,x2 na função. Queremos saber quão pequena precisamos escolher |x1−x2| tal que |f(x1)−f(x2)|=|(5x1+3)−(5x2+3)|≤10−4 ou seja
|5(x1−x2)|≤10−4. portanto é claro que se tivermos |x1−x2|≤10−4/5 então teremos a precisão desejada na saída da função.
Exemplo:
Considere a função quadrática f(x)=x2. Queremos saber qual é a precisão necessária de x para que o erro de aproximação de seu quadrado seja menor do que 10−3.
Neste exemplo não podemos dar uma resposta independente do x. Vamos analisar melhor: sejam x1,x2 duas entradas da função e queremos determinar δ tal que se |x1−x2|≤δ então
|x21−x22|≤10−3 ou equivalentemente |x1+x2||x1−x2|≤10−3.
Observe que não existe algum δ universal para satisfazer a desigualdade acima. Suponhamos que por absurdo exista tal δ. Então, escolhemos x1,x2 dois números maiores que 1δ e que |x1−x2|≤δ/2. por exemplo, x1=1/δ,x2=1/δ+δ/2. Assim, |x1−x2|=δ/2<δ e |x1+x2|=2/δ+δ/2 e portanto
|x21−x22|=(2δ+δ2)(δ2)=1+δ24. ou seja nunca |x21−x22| será menor do que 10−3!
O que podemos fazer????
O ponto é que qualquer erro de aproximação de x acarreta um erro “perto” de dobro deste erro multiplicado por x. Vamos ver isto usando álgerba! (assim que álgebra entra no mundo de aproximação!)
(x+h)2−x2=h2+2hx ou seja o erro de calcular o quadrado de x, usando (x+h)2 é h2+2hx. Observe que se h é um número pequeno (<1) então h2 é menor ainda (os físicos as vezes até ignoram este termo!!!!! nós também, mas vamos fingir que não! ). Porém 2hx pode ser um número grande dependendo do x.
Considere um problema específico: seja A=15,a1a2a3⋯ que os dígitos an são calculáveis com certo custo. Queremos saber quantos dígitos são necessários para que o erro de computação de A2 seja menor do que 10−3.
Ou seja queremos achar n tal que se An=15,a1a2a3⋯an tenhamos certeza de que |A2−A2n|≤10−3.
Observe que |A−An|≤10−n e já que A e An são menor do que 16,
|A2−A2n|=|A−An||A+An|≤32×10−n. Portanto basta que
32×10−n≤10−3 e assim 10n≥32×103 e basta escolher n≥5.
Exemplo:
Considere a função f:{x∈R:x>0}→R com regra f(x)=1x. Novamente gostariamos de saber qual é a precisão necessária para determinar x tal que o erro no cálculo de f(x) seja menor do que 10−3. Neste caso, como exemplo anterior, a precisão necessária vai depender do x.
Se a diferença entre dois números grandes for 10−n então a diferença entre seus inversos é pequeno. Porém se dois números pequenos tiverem diferença 10−n suas inversas podem ser muito diferente. vamos ver o que queremos dizer com isto:
Seja x1=10,x2=10+10−3 então f(x1)−f(x2) é aproximadamente 0,000009999. Enquanto isto se x1=10−3,x2=10−3+10−3 então f(x1)−f(x2)=500!
Olhem o gráfico da função f(x) para visualizar geometricamente o que descrevemos no parágrafo anterior.
O gráfica mostra que escolhendo dois números com a mesma distância resulta distantes diferentes entre suas inversas. Assim que, para números pequenos precisamos de ter precisão mais alta para ter um erro computacional fixo.
Por exemplo suponhamos que A=0,02a3a4a5⋯ queremos determinar δ de tal maneira que se |A−A′|≤δ então |1A−1A′|≤10−2. Observe que
|1A−1A′|=|A−A′|AA′ e essa última fração mostra o cuidado que devemos ter na hora de escolher δ! se escolhermos o δ=A podemos escolher A′ muito perto de zero e assim a fração |A−A′|AA′ vai ser enorme! Por isto primeiro escolhemos um número δ1 menor do que A, tipo 0,02. Então se |A−A′|<δ1 já que A≥0,02 concluímos que A′>0,01. Sendo assim, se |A−A′|<10−2 obteremos
|1A−1A′|<|A−A′|0,01×0,02=1042|A−A′|
Agora queremos que o lado direito da desigualdade acima seja menor do que 10−2 e portanto basta que |A−A′|<2×10−6.
Afinal das contas qual será a escolha da precisão δ?
Bom, basta escolhermos δ=2×10−6 pois assim δ<δ1 e automaticamente todos os cálculos acima estarão corretos.