Truncamentos, Overflow

No exemplo acima mostrou que a operação de subtração de dois números cujo resultado se torna um numero muito menor que os dois, perdem os digitos efetivos no resultado. Um simples exemplo deste tipo de dificuldade pode acontecer mesmo para o cálculo de raizes de uma equacão de segundo grau,


cuja raizes são

(a)

O uso desta expressão de raíz diretamente pode causar problema em certas situações. Em particlar, temos que fazer um tratamento específico que permita o limite de a 0. Para isto, é conveniente utlizar a expressão,

(b)

onde deve escolher uma das formas mais adequadas (a) ou (b), de acordo com o sinal do valor de b.

Exercício

A função, sinh-1(x) não é uma função embutida em FORTRAN. Faça um programa que calcular sinh-1(x) evitando o erro de truncamento. Tome cuidado do sinal de x.


Um outro ponto que sempre tem que tomar cuidado é overflow. Normalmente o problema de overflow pode ser contornado combinando os seguintes procedimentos:

  1. Utlizar o sistema de unidade apropriado.
  2. Combinar os números de tal forma que sempre mantenha o resultado dentro de ordem de grandeza razoável. Por exemplo, no exemplo de EXP(x), calculamos xn/n! sem separar xn e n!.
  3. Utlizar a expressão analítica na região em que as funções ficam singulares e excluir o comportamento divergente no cálculo númerico. Por exemplo, suponhamos que queremos calcular o comportamento de uma quantidade F, resolvendo uma equação para F como a função de, digamos x, tipo ~1/x perto de x~0. Neste caso, podemos introduzir uma nova quantidade G via F=G/x e tentar resolver em relação a G .


    Prof. Takeshi Kodama


    Ultima Alteração: 04 de novembro de 1996