Você está na página 1de 12

1 - Erros:

Nos próximos tópicos estudaremos métodos numéricos para a solução de problemas que surgem no
cotidiano. Primeiramente, neste capítulo, faremos algumas considerações sobre alguns erros que
frequentemente surgem.

Observemos a sequência abaixo, que nos fornece as etapas na solução de um problema real:

- levantamento de dados,
- construção do modelo matemático,
- escolha do método numérico adequado,
- implementação computacional deste método,
- análise dos resultados obtidos,
- se necessário, reformular o modelo matemático e/ou escolher novo método.

A etapa “implementação computacional” não raramente poderá deixar de ser executada, uma vez
que, para os principais métodos numéricos, existem programas que facilmente podem ser adquiridos, quando
necessário.

Muitos leigos em cálculo numérico desprezam a última etapa da sequência acima, porém esta é tão
ou mais importante do que as demais etapas. Não é raro se chegar a resultados finais distantes do que se
esperava obter, ou até mesmo a outros que não tem relação alguma com o problema original. Se tal surpresa
ocorrer em primeiro lugar devemos verificar o processo de levantamento de dados, uma vez que esta etapa é
inerente ao processo de resolução. Outra ocorrência, bastante frequente, que também pode nos causar
resultados inesperados é o erro na representação de números. Por exemplo, se necessitarmos do número
para os nossos cálculos, teremos de nos contentar com uma aproximação deste, uma vez que o número é
irracional. Não devemos nos esquecer também que em geral os computadores operam na base 2 e existem
casos onde a representação de um número fracionário na base 2 possui infinitos dígitos, e assim sendo o
computador considerará uma quantidade finita destes dígitos, e é claro que esta quantidade depende da
máquina que estamos utilizando. Este tipo de erro é chamado de erro de truncamento ou erro de
arredondamento, dependendo do processo que se utiliza para representar tais tipos de números.

Em poucas palavras podemos dizer que o erro de arredondamento ocorre quando não podemos
utilizar todas as casas de um número e assim a(s) última(s) casas(s) a ser(em) considerada(s) é(são)
arredondada para uma unidade a mais ou a menos por alguma regra, enquanto que no erro de truncamento as
casas excedentes são simplesmente desconsideradas sem impactar as casas a serem utilizadas.

Na base decimal geralmente efetua-se o arredondamento. Em poucas palavras podemos dizer que o
erro de arredondamento ocorre quando não podemos utilizar todas as casas de um número e assim a(s)
última(s) casas(s) a ser(em) considerada(s) é(são) arredondada para uma unidade a mais ou a menos por
alguma regra, enquanto que no erro de truncamento as casas excedentes são simplesmente desconsideradas
sem impactar as casas a serem utilizadas. Na base decimal geralmente efetua-se o arredondamento, e para
isto várias regras existem, sendo que a mais utilizada estabelece que se consideraremos apenas até o p-ésimo
dígito de um número, para arredondá-lo devemos observar o (p+1)-ésimo dígito sendo que:
- se este for 0, 1, 2, 3 ou 4 então o p-ésimo dígito é mantido,
- se este for 6, 7, 8 ou 9 então o p-ésimo dígito é acrescido em uma unidade ou
- se este for igual a 5, então se o p-ésimo dígito for par então ele é acrescido em uma unidade e caso
contrário, ou seja se o p-ésimo dígito for ímpar, então ele é mantido.

1.1 - Erros absolutos e relativos:

1
Definição 1.1.1: Definimos como erro absoluto (EA) a diferença entre o valor exato de um número x
e de seu valor aproximado x (calculado geralmente por algum processo numérico):

EA x x.

Em geral, apenas o valor x é conhecido, sendo assim impossível obter o valor exato do EA. Mas
podemos obter limitantes superiores ou estimativas para o módulo do erro absoluto. Por exemplo, sabemos
que (314 . ) e assim tomaremos para
. ,315 um valor dentro desse intervalo e assim teremos
EA 0.01.

Observemos que o limitante para o EA deve ser diretamente proporcional à grandeza do número a ser
representado. Por exemplo, o limitante 0.1 para o erro absoluto na representação de um número da ordem de
103 é bastante significante, porém este mesmo limitante pouco significa na representação de um número da
ordem de 101 . Então, dependendo da ordem de grandeza dos números envolvidos, o erro absoluto não é
suficiente para descrever a precisão de um cálculo.

Definição 1.1.2: O erro relativo (ER) é definido como o erro absoluto (ER) dividido pelo valor
aproximado x :

EA x x
ER .
x x

Observe que o erro relativo independe da grandeza do número a ser representado.

A notação EA significará erro absoluto em , e a notação ER significará erro relativo em .

Exemplo: Seja o número x (2112.8, 2113) representado por x 2112.9 e assim sabemos que
EA x 0.1 . Seja também o número y (5.2,5.4) representado por y 5.3 e assim EA y . .
01

Observe que não devemos considerar suficiente o limitante para o erro absoluto no cálculo de y ,
devido à grandeza do número y. Agora, se calcularmos os erros relativos obtemos:

ER x 4.7 10 5 ,

ER y 0.02 ,

confirmando, então, que o número x é representado com maior precisão que o número y.

1.2 - Erros nas operações:

Dada uma sequência das operações adição, subtração, multiplicação e/ou divisão é interessante ter a
noção de como é o erro em cada uma delas. O erro final é composto pelo erro de cada fator e pelo(s) erro(s)
no(s) resultado(s) da(s) operação(ões).

2
Como exemplo dos erros nas operações, considere que estamos trabalhando em uma máquina que
nos permite trabalhar com números com até 8 dígitos. Assim os números:

x = 2,00000043

y = 3,00000032

serão arredondados para:

x = 2,0000004

y = 3,0000003.

Assim EAx = 0,00000003 e EAy = 0,00000002. Agora:

x + y = 5,00000075

e o valor que nos será retornado pela máquina é:

x y = 5,0000007,

visto que x e y foram arredondados, e portanto:

EAx+y = 0,00000005 = EAx+EAy.

Agora:

x y = 6,0000019300001376

x y = 6,00000180000012

e portanto EAx.y = 0,0000001300000176 > 0,0000000000000006 = EAx . EAy.

Ainda mais, como nossa máquina nos permite apenas 8 dígitos, teremos como resposta da
multiplicação acima:

x y = 6,0000018.

Observe que com apenas uma multiplicação o erro, que em x ou y encontrava-se a partir da 8ª casa
decimal, passou a existir já a partir da 7ª casa.

No exemplo acima, não consideramos o sistema operacional da máquina, o sistema binário, na qual,
como veremos, outras intervenções ocorrem.

Observe que, ainda que as parcelas de uma operação estejam representadas exatamente em uma
máquina, não se pode esperar que o resultado de uma operação seja exato. Por exemplo, vamos supor que

3
estamos trabalhando em uma máquina que nos permite trabalhar com até cinco dígitos. Sejam ainda
x 9370 e y 12,72 , que podem ser inseridos em nossa máquina sem arredondamentos. Ao calcularmos o
produto destes valores obtemos como resultado x y 119186,4 e como nossa máquina nos mostra apenas
cinco dígitos teremos como resposta x y 11919 , valor completamente equivocado. Na verdade, em
situações como esta teríamos como resposta uma mensagem de erro. Para tentar minimizar este problema
vamos trabalhar este problema na notação científica: x 0.937 104 e y 01272
. 10 2 . Daí calculando-se
x y obtemos:

x y 01191864
. 10 6 .

Este é o resultado exato desta operação, mas nos será mostrado ou armazenado:

x y 01192
. 10 6

efetuando-se arredondamento. Veja que agora conseguimos, pelo menos, efetuar o produto desejado, e
E x.y 0.0000136 106 que é o mesmo que E x.y 0.136 102 .

Veremos a seguir as fórmulas para os erros absoluto e relativo nas operações aritméticas com erros
nas parcelas. Para isto sejam, x e y os valores exatos de certos números, e x e y respectivamente, seus
valores aproximados (calculados geralmente por algum processo numérico). Da expressão do erro absoluto
obtemos:

x x EA x

y y EA y .

Nos cálculos que seguem não serão considerados o erro de arredondamento ou truncamento no
resultado final de cada operação efetuada.

1.2.1 - Adição:

x y ( x EA x ) ( y EA y ) ( x y) ( EA x EA y ) .

Logo, o erro absoluto na soma, denotado por EA x y é a soma dos erros absolutos das parcelas, isto
é:

EA x y EA x EA y .

O erro relativo na soma será:

4
EA x y EA x EA y EA x EA y EA x x EA y y
ER x y
x y x y x y x y x x y y x y
x y
ER x ER y .
x y x y

1.2.2 - Subtração:

Analogamente à adição temos:

EA x y EA x EA y

x y
ER x y ER x ER y .
x y x y

1.2.3 - Multiplicação:

x y ( x EA x ) ( y EA y ) x y x EA y y EA x EA x EA y .

Considerando que EA x EA y é um número muito pequeno, podemos desprezar este termo na


expressão acima. Assim teremos:

x y x y x EA y y EA x

e disto concluímos que:

EA x y x EA y y EA x .

O erro relativo na multiplicação será:

x EA y y EA x x EA y y EA x EA y EA x
ER x y ER y ER x .
x y x y x y y x

1.2.4 - Divisão:

5
x x EA x x EA x 1
.
y y EA y y EA y
1
y

1
Representando o fator sob a forma de uma série infinita, teremos:
EA y
1
y

2 3
1 EA y EA y EA y
1 
EA y y y y
1
y

e desprezando os termos com potências maiores que um (pois estes termos são números muito pequenos),
temos:

x x EA x EA y x EA x x EA y EA x EA y
1 2 2
.
y y y y y y y

Então:

x x EA x x EA y
2
,
y y y y

EA x EA y
uma vez que, 2
é um número muito pequeno.
y

Logo:

EA x x EA y y EA x x EA y
EA x 2 2
,
y y y y

y EA x x EA y
2
y y EA x x EA y y EA x EA y
ER x 2
ER x ER y .
y x y x x y
y

Outro erro bastante frequente é o erro nos dados, quando estes são obtidos através de medidas
experimentais, portanto sujeitos a imprecisões. Este tipo de erro não será aqui tratado, uma vez que
dependem dos procedimentos experimentais.

6
Falaremos agora um pouco sobre o erro de arredondamento, que como já dissemos é bastante
comum, e fica ainda mais evidente quando trabalhamos na base binária.

1.3 – Mais um pouco sobre erro de arredondamento:

A representação usual dos números é feita utilizando um sistema de posicionamento na base 10, isto
é, o número 327.302 significa:

3 102 2 101 7 100 3 10 1


0 10 2
2 10 3
.

Em geral trabalhamos na base 10, porém, qualquer número natural B 2 pode ser utilizado como
base. Se B é a base escolhida, o número:

a n a n 1  a 2 a 1a 0 a 1a 2 

representa, na base B, o número:

a n Bn an 1 Bn 1
 a 2 B2 a 1 B1 a 0 B 0 a 1 B 1
a 2 B 2

onde os coeficientes a i são algarismos tais que 0 a i B.

Os computadores, por simplificação de funcionamento, operam normalmente na base 2, chamada


base binária. Por exemplo, o número x = 1001,101 representa o número:

1 23 0 22 0 21 1 20 1 2 1
0 2 2
1 2 3

ou seja, x = 9.625 na base decimal.

O nosso número x possui 7 dígitos na base binária, outros possuem mais e como sabemos, a
representação de muitos números fracionários na base 2 possui infinitos dígitos, no entanto, o computador
considerará uma quantidade finita destes dígitos, e é claro que esta quantidade depende da máquina que
estamos utilizando. Somente para efeito ilustrativo suponhamos que o nosso computador considera apenas 7
dígitos significativos. Assim se:

x = 1001,101

na base 2, ao contrário da base 10, podemos determinar o seu antecessor, que é:

y = 1001,100,

ou seja,

1 23 0 22 0 21 1 20 1 2 1
0 2 2
0 2 3

ou seja, y = 9.5 na base 10.

Ora, se na base 10:

x = 9.625

7
e

y = 9.5

como representaremos por exemplo 9.6 nesse nosso sistema? A resposta é, nesse sistema por nós criado,
com 7 dígitos 9.6 não pode ser representado exatamente, e assim deve ser arredondado para 9.5 ou 9.625.

Outro problema que ocorre quando um processo de arredondamento é utilizado é que ao contrário do
que é válido para os números reais, as operações de adição e multiplicação deixam de ser associativas ou
distributivas. Isto se deve ao fato de, numa serie de operações aritméticas, o arredondamento ser feito após
cada operação. Para efeito ilustrativo, considere por exemplo que estamos trabalhando na base 10, com
apenas 3 dígitos:

i) (4.26 9.24) 5.04 13.5 5.04 18.5

enquanto

4.26 (9.24 5.04) 4.26 14.3 18.6 .

ii) 15.9 (4.99 0.02) 15.9 5.01 79.7

enquanto

(15.9 4.99) (15.9 0.02) 79.3 0.32 79.6 .

Assim, os erros de arredondamento introduzidos a cada operação influirão na solução obtida através
do método numérico utilizado. Como consequência, métodos numéricos equivalentes podem fornecer
resultados diferentes.

1.4 – Erros na mudança da base:

A maioria dos equipamentos computacionais representa os valores numéricos no sistema binário.


Assim, quando os dados numéricos presentes nos modelos matemáticos são lidos, estes são transformados
em uma outra base de representação.

Acontece, muitas vezes, que esta transformação pode ser acometida de erros, em razão da limitação
da representação do equipamento computacional que estamos utilizando para o processamento dos dados
numéricos.

Como vimos, dado um número real, N, é sempre possível representá-lo em qualquer base B, da
seguinte forma:

a n Bn an 1 Bn 1
 a 2 B2 a 1 B1 a 0 B 0 a 1 B 1
a 2 B 2

onde ai {0, 1, 2, 3, ..., (B-1)}.

1.4.1 – Base binária:

8
a n 2n an 1 2n 1
 a 2 22 a 1 21 a 0 2 0 a 1 2 1
a 2 2 2

com ai {0, 1}.

Exemplos:

a) (1011)2 = 1 23 + 0 22 + 1 21 + 1 20.

Veja que neste caso, o binário só tem a parte inteira e temos a3= 1, a2= 0, a1= 1 e a0= 1.

b) (111.01)2 = 1 22 + 1 21 + 1 20 + 0 2-1 + 1 2-2.

Neste caso, o binário tem parte inteira e parte fracionária e a2 = 1, a1 = 1, a0 = 1, a-1 = 0 e a-2 = 1.

1.4.2 – Base decimal:

a n 10 n an 1 10 n 1
 a 2 10 2 a 1 10 1 a 0 10 0 a 1 10 1
a 2 10 2

com ai {0, 1, ..., 9}.

Exemplos:

a) (231)10 = 2 102 + 3 101 + 1 100.

Neste caso, o número na base decimal é inteiro e a2 = 2, a1 = 3 e a0 = 1.

b) (231.35)10 = 2 102 + 3 101 + 1 100 + 3 10-1 + 5 10-2.

Neste caso, o número na base decimal tem parte inteira a parte fracionária e temos a2 = 2, a1 = 3,
a0 = 1, a-1 = 3 e a-2 = 5.

Assim, dado um número real qualquer numa base B, podemos escrevê-lo em uma base B´, a partir de
adequação conveniente de seus coeficientes ai = 0, 1, 2, 3, ..., (B-1) e de uma potência adequada na nova
base B´.

1.4.3 – Mudança de base binária para a base decimal:

Procedimento: multiplicar o dígito binário por uma potência adequada de 2.

Exemplos:

a) (1101)2 = 1 23 + 1 22 + 0 21 + 1 20 = (13)10

b) (111.011)2 = 1 22 + 1 21 + 1 20 + 0 2-1 + 1 2-2 + 1 2-3 = (7.375)10

9
1.4.4 – Mudança de base decimal para a base binária:

Veremos a conversão da base 10 para a base dois da parte inteira e depois da parte fracionária.

1.4.4.1– Número na base decimal tem somente a parte inteira:

Procedimento: divisões sucessivas.

O procedimento consiste na divisão do número na base decimal sucessivamente por 2, armazenando,


a cada passo, o algarismo do resto (r), até que o quociente da divisão seja igual a 0. O binário é constituído
pelos coeficientes do resto da divisão, a partir do resto mais significativo (rn) para o menos significativo (r1).
Veja que sempre teremos rn = 1. Desta forma, temos:

N10 = (1, rn-1, rn-2, rn-3, ..., r3, r2, r1)2.

Exemplos:

a) (25)10 = (11001)2 = 1 24 + 1 23 + 0 22 + 0 21 + 1 20, isto é:


25 2 = 12 e resto = 1,
12 2 = 6 e resto = 0,
6 2 = 3 e resto = 0,
3 2 = 1 e resto = 1,
1 2 = 0 e resto = 1.

b) (11)10 = (1011)2 = 1 23 + 0 22 + 1 21 + 1 20, pois:


11 2 = 5 e resto = 1,
5 2 = 2 e resto = 1,
2 2 = 1 e resto = 0,
1 2 = 0 e resto = 1.

1.4.4.2 – Número na base decimal tem somente a parte fracionária:

Procedimento: multiplicações sucessivas.

O procedimento é constituído dos seguintes passos:

a) Multiplicamos o número fracionário por 2.

b) Do resultado do passo a), a parte inteira é o primeiro dígito binário.

c) Do resultado do passo a), a parte fracionária é novamente multiplicada por 2.

d) O processo continua até que a parte fracionária seja nula.

Exemplos:

3
a) (0.1875)10 = (0.0011)2 = 0 2-1 + 0 2-2 + 1 2-3 + 1 2-4 = , isto é:
16 10
10
(0.1875)(2) = 0.375 parte fracionária = 0.375 e parte inteira = 0,
(0.375)(2) = 0.75 parte fracionária = 0.75 e parte inteira = 0,
(0.75)(2) = 1.5 parte fracionária = 0.5 e parte inteira = 1,
(0.5)(2) = 1.0 parte fracionária = 0 e parte inteira = 1.

b) (13.25)10 = (13)10 + (0.25)10 = (1101)2 + (0.01)2 = (1101.01)2, pois:


i) parte inteira:
(13)10 = (1101)2, pois:
131 2 = 6 e resto = 1,
6 2 = 3 e resto = 0,
3 2 = 1 e resto = 1,
1 2 = 0 e resto = 1.
ii) parte fracionária:
(0.25)10 = (0.01)2 pois:
(0.25)(2) = 0.5 parte fracionária = 0.5 e parte inteira = 0,
(0.5)(2) = 1.0 parte fracionária = 0 e parte inteira = 1.

c) (0.2)10 = (0.001100110011...)2

Convertendo o número (0.2)10 para a base binária obtemos (0.001100110011...)2, ou seja é uma
dízima periódica de período (0.0011). Assim, o decimal (0.2)10 não tem uma representação binária exata, e
assim, a representação será aproximada e, portanto, apresentará erro.

1.5 – Erros de representação:

Um computador ou calculadora representa um número real no sistema denominado aritmética de


ponto flutuante F[ , t, -e, e], no qual o número r será representado na forma:

e
(0.d1d2...dt)

onde:
é a base em que a máquina opera (normalmente a base 2),
t é o número de dígitos na mantissa; 0 d j 1 , j = 1, ..., t, d1 0,
e é o expoente, no intervalo [-u, u].

Em qualquer máquina, apenas um subconjunto dos números reais é representado exatamente, e,


portanto, a representação dos demais será realizada através de truncamento ou arredondamento.

Considere, por exemplo, uma máquina que opera no sistema F[10, 3, -5, 5], ou seja, no sistema onde
= 10, t = 3 e e [-5, 5]. Neste sistema os números serão representados na seguinte forma de sistema:

(0.d1 d2 d3) 10e , 0 dj 9, d1 0, e [-5, 5].

O menor número, em valor absoluto, representado nesta máquina é:

m = 0.100 10-5 = 10-6

e o maior número, em valor absoluto, é:

11
M = 0.999 105 = 99900.

Considere o conjunto dos números reais e o seguinte subconjunto:

G = {x R|m |x| M}.

Dado um número real x, várias situações poderão ocorrer:

Caso 1) x G: Por exemplo: x = 235.89 = 0.23589 103. Observe que este número possui 5 dígitos
na mantissa. Estão representados exatamente nesta máquina os números: 0.235 103 e 0.236 103. Se for
usado o truncamento, x será representado por 0.235 x 103 e, se for usado o arredondamento, x será
representado por 0.236 x 103.

Caso 2) |x| < m: Por exemplo: x = 0.345 10-7. Este número não pode ser representado nesta
máquina porque o expoente e é menor que -5. Esta é uma situação em que a máquina acusa a ocorrência de
underflow;

Caso 3) |x| > M: Por exemplo: x = 0.875 109. Neste caso, o expoente e é maior que 5 e a máquina
acusa a ocorrência de overflow.

Exemplo:

Dar a representação dos números a seguir num sistema de aritmética de ponto flutuante de três
dígitos para = 10, m = -4 e M = 4.

x Representação obtida Representação obtida


por arredondamento por truncamento
1.25 0.125 10 0.125 10
2
10.053 0.101 10 0.100 102
-238.15 -0.238 103 -0.238 103
2.71828... 0.272 10 0.271 10
0.000007 (expoente menor que -4)
718235.82 (expoente maior que 4)

12