Você está na página 1de 10

2 Erros

2.1 Introdução
No trabalho com métodos numéricos é importante saber que a solução numérica não é
solução exata. Portanto, é importante conhecer o quanto a solução obtida por meio desses
métodos está próxima da solução exata.
A solução numérica é uma mera aproximação do valor real, não tem valor se não vier acompan-
hada de alguma informação sobre o seu erro. É preciso ter uma ideia a respeito da distância
entre o valor exato e a aproximação considerada. Em resumo, é preciso ter alguma informação
sobre a qualidade da aproximação.
Essa qualidade pode ser expressa pelo erro absoluto ou pelo erro relativo. A precisão da solução
numérica pode ser melhorada de várias maneiras e esses conceitos nos ajudarão muito nessa
tarefa.

2.2 Aritmética de ponto flutuante


Um sistema de aritmética de ponto flutuante, representado por F (β, t, emin , emax ), é um subcon-
junto dos números reais F ⊂ R cujos elementos tem a forma:
 
d1 d2 d3 dt
y=± + + + · · · + t β e = ± (.d1 d2 d3 ...dt ) β e ,
β1 β2 β3 β

onde 0 ≤ di < β, i = 1, 2, . . . , t.
A aritmética de ponto flutuante F é caracterizada por quatro números inteiros: base β (binária,
decimal, hexadecimal e etc..); a precisão t (número de algarismos da mantissa–aparece depois

15
16 CAPÍTULO 2. ERROS

do ponto); variação do expoente e, inteiro tal que emin ≤ e ≤ emax ). Todo computador utiliza
algum sistema de aritmética de ponto flutuante para operar com números.

A mantissa é fracionária nesta representação, menor do que 1. A fim de assegurar unicidade


para a representação para cada y ∈ F , faz-se uma normalização no sistema de forma que d1 6= 0
para y 6= 0. Um número x representado no sistema de aritmética de ponto flutuante é denotado
por f l(x).
Com a normalização no sistema de ponto flutuante, exige-se que d1 6= 0, para obter unicidade
na representação, mas infelizmente esta restrição torna impossível representar o zero. Uma
maneira natural de representar o zero é com o menor expoente possível da máquina 0.1 × β emin .
A escolha de uma representação para o zero como sendo uma mantissa nula não é a melhor,
pois isto pode acarretar perdas de dígitos significativos corretos em operações.

O epsilon da máquina é o menor número positivo ε, em aritmética de ponto flutuante da


máquina, tal que 1 + ε > 1. Este número depende do sistema particular da máquina utilizada.
Linguagens mais recentes já possuem comandos para determinar-se o valor de ε: em MatLab é
eps em Fortran90 é EPSILON.
Como o computador e a calculadora realizam cálculos utilizando apenas um número finito de
dígitos, os números representáveis em uma máquina são em quantidade finita e portanto no
trabalho com métodos numéricos há a necessidade de trabalharmos com uma quantidade finita
de dígitos. Há duas formas de efetuarmos o descarte de dígitos excendentes: por arredondamento
simétrico ou por truncamento (chopping).
Como vimos, em toda máquina o conjunto de números reais representáveis é discreto, assim não
é possível representar em uma máquina todos os números de um intervalo [a, b] dado.
Se nos foi dado um número x 6= 0 em aritmética de ponto flutuante de base 10, então ele tem a
forma

x = ±0.a1 a2 ...at at+1 ...an × 10e ,


onde a1 6= 0. Podemos enfatizar as partes usando a tabela a seguir

Sinal Mantissa Expoente


± a1 a2 . . . a n e

A representação de x com apenas t dígitos pode ser feita de duas formas. Notemos que

x = ±0.a1 a2 . . . at at+1 . . . an × 10e (2.2.1)


= ±(0.a1 a2 . . . at + 0.000 . . . 0at+1 . . . an ) × 10e (2.2.2)
= ±0.a1 a2 . . . at × 10e + ±0.at+1 . . . an × 10e−t , (2.2.3)

chamando

f = ±0.a1 a2 . . . at (2.2.4)
g = ±0.at+1 . . . an (2.2.5)
2.3. ERRO ABSOLUTO E ERRO RELATIVO 17

temos que
x = f × 10e + g × 10e−t (2.2.6)
notamos que 0 < |f | < 1 e 0 ≤ |g| < 1.
No arredondamento simétrico, se o primeiro dígito a ser desprezado é inferior a cinco, simples-
mente abandonamos os dígitos restantes e mantemos os demais. E se o primeiro dígito a ser
desprezado é igual ou superior a cinco, adicionamos um ao último dígito a ser retido.
No arredondamento
√ por truncamento, simplesmente desprezamos os dígitos restantes.
Por exemplo,√ 2 ≈ 1.4142135623730950488 utilizando-se√ apenas 10 dígitos após o ponto dec-
imal tem-se 2 ≈ 1.4142135623 por truncamento e 2 ≈ 1.4142135624 por arredondamento
simétrico.
As limitações no sistema de aritmética de ponto flutuante provocam fenômenos importantes
chamados de “overflow” e “underflow”. A faixa de variação dos expoentes leva ao underflow e ao
overflow, e quantidade de dígitos na mantissa ocasionam erros de arredondamento.
Operações que resultem em expoente superior ao expoente máximo ocasionam o fenômeno de
overflow. Analogamente, operações que resultem em expoente inferior ao expoente mínimo
ocasionam o fenômeno de underflow.

Observação: As operações são realizadas em computador na seguinte sequência:

1) Decomposição dos operandos em mantissa e expoente;

2) Alinhamento das mantissas e dos expoentes para a soma e a subtração;

3) Operação com as mantissas e /ou os expoentes;

4) Normalização da mantissa;

5) Arredondamento da mantissa;

6) Recomposição do resultado (reunião da mantissa com o expoente).

2.3 Erro absoluto e erro relativo


Como pudemos observar, em qualquer das duas formas de realizar as aproximações, obriga-
toriamente comete-se um erro. É importante que se conheça a magnitude dos erros nestas
representações.
Suponha que x seja uma aproximação para o valor exato x. O erro absoluto é definido por
EAx = |x − x|
e o erro relativo é
|x − x|
ERx = , x 6= 0.
|x|
18 CAPÍTULO 2. ERROS

Note que em geral o valor exato x não é conhecido. Portanto, é comum utilizarmos a seguinte
definição de erro relativo:
|x − x|
ERx = , x 6= 0.
|x|
As informações fornecidas pelos erros absoluto e relativo são diferentes. Seja x = 1234.9 uma
aproximação para x com erro absoluto menor do que 0.1 , isto é, EAx < 0.1, então o valor
exato pertence ao intervalo (1234.8; 1235.0). Do mesmo modo, suponha que y = 7.2 seja uma
aproximação para y com EAy < 0.1, então y pertence ao intervalo (7.1; 7.3). Note que nos
dois exemplos os majorantes para os erros absolutos são os mesmos. Mas nesses casos, os erros
relativos são diferentes. No primeiro caso, temos
EAx 0.1
ERx = < ≈ 0.81 × 10−4
|x| 1234.9
e
EAy 0.1
ERy = < ≈ 0.14 × 10−1 .
|y| 7.2
Comparando os erros relativos, vemos que a precisão no primeiro exemplo é maior, pois a ordem
de grandeza de x é maior que a ordem de grandeza de y. Isto explica porque o erro relativo é
mais amplamente utilizado.
O erro relativo é dado frequentemente com uma porcentagem. Por exemplo, 2% de erro relativo
significa que o erro relativo é 0.02.
Voltando à representação em aritmética de ponto flututante com t dígitos dada em (2.2.6),
podemos observar que f tem t dígitos e está na forma normalizada. Além disso, x e = f × 10e é
uma aproximação para x. A essa aproximação chamamos de arredondamento por trucamento.
É claro que nesse caso o erro de arredondamento por trucamento é dado por

e| = |g| × 10e−t .
EAx = |x − x

Como já vimos, o arrendodamento simétrico é obtido observando-se a magnitude da parte a ser


desprezada g. Quando consideramos a aproximação x e dada por

f × 10e , se 0 < |g| < 0.5
e=
x
f × 10e + 10e−t , se 0.5 ≤ |g| < 1

o erro no arredondamento simétrico é dado por



|g| × 10e−t , se 0 < |g| < 0.5
EAx = |x − x
e| = .
(1 − g) × 10e−t , se 0.5 ≤ |g| < 1

Proposição 2.3.1 (a) Utilizando aritmética com t casas decimais e arrendodamento por trun-
camento o erro relativo máximo cometido é dado por 101−t .
(b) Utilizando aritmética com t casas decimais e arrendodamento simétrico o erro relativo máx-
1
imo cometido é dado por 101−t .
2
2.4. DÍGITOS SIGNIFICATIVOS 19

(a) De fato, observe que


|x − xe| |g| × 10e−t 10e−t 10e−t
ERx = = < = = 101−t .
|e
x| |f | × 10e (0.1) × 10e 10e−1
(b)


 |g| × 10e−t
 , se 0 < |g| < 0.5
|x − xe| |f | × 10e
ERx = = .
|e
x| 
 (1 − g) × 10e−t
 , se 0.5 ≤ |g| < 1
|f | × 10e + 10e−t
Como 0 ≤ |g| < 12 , então |1 − g| < 12 , podemos escrever



 |g| × 10e−t 1
 < 101−t , se 0 < |g| < 0.5
|x − xe| |f | × 10 e 2
ERx = = e−t .
|e
x| 
 (1 − g) × 10 |g − 1| × 10e−t 1
 < < × 101−t , se 0.5 ≤ |g| < 1
|f | × 10e + 10e−t |f | × 10e 2

2.4 Dígitos Significativos


Ao utilizarmos um método numérico para obter a resposta de um problema, devemos ter confi-
ança nesse número. Vamos ilustrar isso: por exemplo,
√ a hipotenusa, de um triângulo retângulo
com lados medindo 10 cm de comprimento, mede 200 cm de comprimento.
Tomando
√ uma régua comum para fazer a medida da hipotenusa, o máximo que vamos perceber
é que 200 está entre 14,1 e não ultrapassa 14,2. Se quiséssemos adicionar mais uma casa
1

decimal, teríamos dúvida sobre qual dígito incluir: 14,15? e por que não 14,18?
Em virtude da limitação da régua, apenas podemos garantir que os dígitos 1, 4 e 1 podem ser
usados com segurança. Há dúvidas sobre o quarto valor. A esses três primeiros algarismos mais
o quarto algarismo duvidoso chamamos de algarismos significativos.
A relação entre o erro relativo e o número de dígitos significativos é dado pela proposição:

Proposição 2.4.1 Se o erro relativo do valor aproximado de um número não excede

0.5 × 10−n ,

então esse valor tem n dígitos significativos.

Assim, dizemos que x aproxima x com d dígitos significativos se d é o maior inteiro positivo
para o qual se tem

|x − x| 1
< × 10−d .
|x| 2

1
aprox. 14.14213562
20 CAPÍTULO 2. ERROS

Se x = 1.414214 e x = 1.414 então


|x − x| 1
= 0.1513208043 × 10−3 < × 10−3 ,
|x| 2
assim x aproxima x com três dígitos significativos.
Se x = 2000000 e x = 1999994 então
|x − x| 1
= 0.3 × 10−5 < × 10−5 ,
|x| 2
assim x aproxima x com cinco dígitos significativos.

Dígitos não nulos são sempre dígitos significativos. Em 0.057 tem-se dois dígitos significativos;
em 0.507 temos três dígitos significativos. O número de dígitos significativos num cálculo de-
penderá do número de dígitos significativos dos dados iniciais.

Perda de dígitos significativos:

Sejam x = 1.4142135623 e y = 1.4142146734 ambos com 11 dígitos de precisão. Como os 6


primeiros dígitos são iguais, y − x = 0.1111 × 10−5 contém 5 dígitos de precisão. Essa redução
na precisão chama-se perda de dígitos significativos por cancelamento na subtração.
Um exemplo importante
√ onde
√ esse fenômeno ocorre é em funções quadráticas, como por exemplo
em f (x) = x( x + 1 − x ). Vemos que uma expressão algebricamente equivalente a f (x) é
x √ √
dada por h(x) = √ √ . Notemos que f (500) = 500( 501 − 500 ) = 500(22.3830 −
x+1 + x
500
22.3607) = 11.1500 e h(500) = = 11.1748, esse último valor envolve menos
22.3830 + 22.3607
erro, usando 6 dígitos e arredondamento.

2.5 Propagação de Erros


Nessa seção, veremos como os erros se propagam ao efetuarmos uma das operações fundamentais
de adição, multiplicação e divisão.
Consideremos dois valores exatos x e y e suas respectivas aproximações x e y. Existem números
ε1 e ε2 tais que
x − x = ε1 ,
y − y = ε2 .
Logo,
x + y = (x + ε1 ) + (y + ε2 ) = (x + y) + (ε1 + ε2 ).
Portanto,
|(x + y) − (x + y)| = |ε1 + ε2 | ≤ |ε1 | + |ε2 |.
Segue que o erro absoluto da soma é menor ou igual à soma dos erros absolutos:
EAx+y ≤ EAx + EAy .
2.5. PROPAGAÇÃO DE ERROS 21

De modo análogo,
EAx−y ≤ EAx + EAy .
Agora passamos ao erro relativo na soma.
EAx+y EAx + EAy
ERx+y = ≤
|x + y| |x + y|
EAx EAy
≤ +
|x + y| |x + y|
EAx |x| EAy |y|
≤ +
|x| |x + y| |y| |x + y|
|x| |y|
≤ ERx + ERy
|x + y| |x + y|
≤ ERx + ERy .

Consideremos agora o produto xy, temos que,

x · y = x.y + xε2 + yε1 + ε1 ε2 .

Da expressão acima vemos que se |x| > 1 ou |y| > 1, então as parcelas xε2 e yε1 contribuirão
para o aumento do erro no produto.
Supondo xy 6= 0, rearranjando e dividindo por xy, podemos escrever,
xy − x.y xε2 yε1 ε1 ε2
= + + .
xy xy xy xy
Se x é uma boa aproximação para x e se y é uma boa aproximação para y, então
xε2 ε2
≈ ,
xy y
yε1 ε1
≈ ,
xy x
ε1 ε2
≈ 0.
xy
Segue que
xy − x.y ε1 ε2
ERxy = ≤ + = ERx + ERy .
xy x y
Portanto, para boas aproximações, o erro relativo do produto é no máximo, a soma dos erros
relativos.
No caso da divisão,
x x + ε1 x + ε1 1
= = · .
y y + ε2 y 1 + εy2
 
1 ε2
O termo lembra a série geométrica de razão − :
1 + εy2 y
22 CAPÍTULO 2. ERROS

X∞  k
1 ε2
= − .
1 + εy2 k=0
y
Supondo que y seja uma boa aproximação para y, podemos desprezar os termos da série de
potência superior a 2, assim, obtemos
 
x x + ε1 x + ε1 ε2
= = · 1− .
y y + ε2 y y
Donde, obtemos  
x x + ε1 ε2 x ε1 xε2 ε1 ε2
= · 1− ≈ + − 2 − 2 .
y y y y y y y
ε1 ε2
Desprezando o termo 2 , segue que
y
x x ε1 xε2
EA xy = − ≈ − 2 .
y y y y
O Erro relativo do quociente é então
EA xy y ε1 xε2 y ε1 ε2
ER xy = = EA xy · = − 2 ≈ + ≤ ERx + ERy .
x x y y x x y
y

Segue que para boas aproximações o erro relativo na divisão é no máximo a soma dos erros
relativos.
Observação 2.5.1
Em problemas matemáticos gerais as soluções, em última análise, estão no conjunto dos números
reais, que é infinito e contínuo. Segue que uma das consequências dessa representação em
máquina é o arredondamento, exceto para números demasiadamente grandes ou demasiada-
mente pequenos para serem representados na máquina, dão origem a situações denominadas de
overflow e underflow, respectivamente. Resumindo, toda operação pode conter erros.
Além desses casos, que o erro tem origem na máquina, existem outras fontes de erros. As
principais fontes de erros são:
a) erros nos dados de entrada,
b) erros no estabelecimento do modelo (simplificação),
c) erros de truncamentos (troca de séries por soma finita).
Imagine que desejamos calcular a área da superfície do nosso planeta Terra. Resolvemos usar
a fórmula S = 4πr2 , onde r é o raio da Terra. Quando fazemos isso estamos cometando alguns
erros. Primeiramente, estamos simplificando o problema, pois estamos supondo que a Terra
é uma esfera perfeita. Em seguida, como só conhecemos um valor aproximado para π, somos
obrigados a utilizar uma aproximação. Erramos mais uma vez pois não conhecemos exatamente
o raio r.
Quando simplificamos o problema cometemos um erro no modelo e quando tomamos uma
aproximação para π e r cometemos erro nos dados iniciais.
2.6. CONDICIONAMENTO E ESTABILIDADE 23

2.6 Condicionamento e Estabilidade


Dois conceitos importantes na análise numérica são a noção de estabilidade matemática e esta-
bilidade numérica.
A estabilidade numérica é uma propriedade do algoritmo. Pode haver várias maneiras de resolver
um determinado problema matemático e estes se comportam de diferentes maneiras com relação
à propagação de erros.
Existem métodos que são muito sensíveis a variações nos dados, isto é, pequenas variações nos
dados provocam variações muito grandes na solução. Esse fenômeno é independente do método
usado para resolver o problema. O condicionamento de um problema descreve a sensibilidade
do problema a variações nos dados. Um problema matemático cuja solução pode ser muito
sensível a variações nos dados e parâmetros é dito mal condicionado ou apresenta instabilidade.
Alguns métodos são estáveis apenas para certas escolhas dos dados iniciais, esses métodos são
chamados de condicionalmente estáveis.
Por outro lado, um problema é dito bem condicionado se pequenas variações nos dados e
parâmetros induzem sempre pequenas variações na solução.
Como exemplo, os sistemas de equações lineares são mal condicionados.
Já vimos como os erros se propagam em cálculos numéricos. A resolução de um problema
numérico requer, em geral, um grande número de operações aritméticas e, originando de cada
uma erro de arredondamento. O efeito cumulativo destes erros pode afetar significamente o
resultado calculado. A estabilidade de um método descreve a sensibilidade do método relativa-
mente à acumulação dos erros gerados durante o cálculo.
Um método estável produz sempre bons resultados para problemas bem condicionados.
Como exemplo, a fórmula de Báskara é um método instável. As raízes de uma equação do
segundo grau ax2 + bx + c = 0 estão relacionadas pela relação de Viète
b
x1 + x2 = − (2.6.7)
a
c
x1 x2 = (2.6.8)
a
que podem ser utilizadas na determinação das raízes. Esse método é estável.
Exercício 2.6.1

1. Considere e ≈ 2.718282, 131
≈ 0.076923, 200 ≈ 14.1421 e ln 2 ≈ 0.69315. Assu-

mindo que e ≈ 2.71828182846... 131
≈ 0.076923076..., 200 ≈ 14.1421356... e ln 2 ≈
0.69314718... Obtenha limites superiores para os erros absolutos, erros relativos e por-
centagens de erros em cada caso.

2. Qual o número de dígitos significativos em cada caso acima?

3. Arredonde os seguintes números reais representando-os com três e com cinco algarismos:
2 1 √ 1
, , − 5 , − , e, e−1 .
9 256 44
24 CAPÍTULO 2. ERROS
√ √
4. Use a sua calculadora para calcular 1
3
× 3, 2 × 2 usando apenas 4 dígitos.

5. Para valores grandes calcule f (x) = √1


x
1
− √x+1 . Apresente outra forma de calcular f (x).

2.7 Resumo do capítulo


Neste capítulo apresentamos o conceito de erro e sua propagação no desenvolvimento dos
cálculos numéricos.

Você também pode gostar