Cálculo Numérico
Noções básicas sobre erros
Profa. Vanessa Rolnik
1º semestre 2015
Fases da resolução de problemas
através de métodos numéricos
Problema real
Levantamento de Dados
Construção do modelo matemático
Escolha do método numérico adequado
Implementação computacional desse método
Análise dos resultados obtidos
Se necessário, reformular o
modelo matemático e/ou
escolher novo método numérico
Origem dos erros
1.
Simplificação no modelo matemático
Ex: para calcular o período de um pêndulo, desprezamos sua
massa.
2.
Erros de truncamento
Ex. no cálculo de uma série infinita, tomamos apenas os
primeiros termos
3.
Erros de arredondamento
Causados pela própria estrutura da máquina que trabalha com
um número finito de números e de casas decimais
4.
Erros nos dados de entrada
Dados imprecisos obtidos de experimentos ou
arredondamentos na entrada
Objetivo da aula

O interesse dessa e da próxima aula está em estudar os
erros de arredondamento.

Os erros de arredondamento englobam



a forma como os dados são representados no computador
 Base usada pela máquina (binária)
 Quantidade de dígitos usados para armazenamento dos
números
as operações aritméticas efetuadas
efeitos numéricos
Representação em ponto flutuante

Os computadores utilizam a seguinte normalização para
representação dos números
sinal
e é o expoente
m ≤ e ≤ M
m = limite inferior do expoente
M = limite superior do expoente
± .d1d2…dt x βe
d1d2…dt é a mantissa
d1 ≠ 0, 0 ≤ di < β , i = 1,2,..., t
β é a base
t = número de
algarismos significativos
Notação F(β, t, m, M)

Notação para a representação em ponto flutuante na
base β com t algarismos significativos e com limites do
expoente m e M.
± .d1d2…dt x βe
Exemplo 1

Considere uma máquina que opere no sistema F(10, 3, 2, 2).

Os números representáveis nesse sistema são do tipo
± 0.d1d2d3 x 10e,
Assim,
0.35 = + 0.350 x 100
0.0123 = + 0.123 x 10-1
-5.172 = - 0.517 x 101
-5.177 = - 0.518 x 101
-2≤e≤2
regra de arredondamento:
dt+1>=5, dt+1, dt+1<5,
dígitos inalterados
5391 = + 0.539 x 104 e > 2  erro de overflow
0.0003 = + 0.300 x 10-3 e < -2  erro de underflow
Conversão de base: binário ↔ decimal
Dados de saída
Computador
base binária
(onde os cálculos
são efetuados)
Usuário
base decimal
Dados de entrada


Todo esse processo de conversão é fonte de erros
Além disso, um número pode ter representação finita em uma base
e infinita em outra.
Números inteiros
binário → decimal
(10111)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = (23)10
decimal → binário
(23)10 = 11 x 2 + 1
11 = 5 x 2 + 1
5= 2x2+1
2= 1x2+0
1= 2x0+1
(23)10 = (10111)2
Números fracionários entre 0 e 1
decimal → binário
(0.125)10 → (0.d1d2...dj...)2
0.125 x 2 = 0.25  d1 = 0
e r1 = 0.25
0.25 x 2 = 0.5
 d2 = 0
e r2 = 0.5
0.5
 d3 = 1
e r3 = 0
x 2 = 1.0
(0.125)10 → (0.001)2
Mais um exemplo
(0.1)10 → (0.d1d2...dj...)2
0.1
0.2
0.4
0.8
0.6
x2
x2
x2
x2
x2
=
=
=
=
=
0.2
0.4
0.8
1.6
1.2





d1 = 0
d2 = 0
d3 = 0
d4 = 1
d5 = 1
e
e
e
e
e
r1 = 0.2
r2 = 0.4
r3 = 0.8
r4 = 0.6
r5 = 0.2 = r1
Os resultados se repetirão infinitamente, e nunca rj = 0
Portanto, (0.1)10 → (0.00011001100110011...)2
ou (0.00011)2
Conclusão



Um número real entre 0 e 1 pode ter representação finita
na base decimal e infinita na binária.
Esse fato pode acarretar a ocorrência de erros
aparentemente inexplicáveis em cálculos efetuados pelo
computador.
Exemplo
S
30000
 0.11
i 1

Exato S = 3300
No computador S = 3299.99691
Exercício: fazer a conversão do número decimal 0.11
para sua representação binária
Números fracionários entre 0 e 1
binário → decimal
(0.000110)2 → (0.d1d2...dj...)10
(0.000110)2 x (1010)2 = (0.1111)2  d1 = (0)2= (0)10 e r1 = (0.1111)2
(0.1111)2
x (1010)2 = (1001.011)2  d2 = (1001)2= (9)10 e r2 = (0.011)2
(0.011)2 x (1010)2 = (11.11)2  d3 = (11)2= (3)10 e r3 = (0.11)2
(0.11)2 x (1010)2 = (111.1)2  d4 = (111)2= (7)10 e r4 = (0.1)2
(0.1)2 x (1010)2 = (101)2  d5 = (101)2= (5)5 e r6 = (0)2 fim.
(0.000110)2 → (0.09375)10
Resumindo...
(0.1)10 → (0.00011001100110011...)2 ou (0.00011)2
(0.1)10 → (0.000110)2 com 6 casas decimais
(0.000110)2 → (0.09375)10

Conclusão: a forma como o computador armazena os
números é fonte de erro
Esquema de armazenamento de um
número
Obs: o bit de sinal apresenta
zero para o número positivo e
um para o negativo.
sinal do
expoente
expoente
sinal do
número
mantissa
Exemplo 2

(23)10 = (10111)2

Representação em aritmética de ponto flutuante
F(2,10,15,15)  0.1011100000 x 2101
Representação em uma “palavra” do computador

sinal do
número
sinal do
expoente
0
0
1
0
expoente
1
0
0
1
0
1
1
1
0
mantissa
Exercício: F(2,10,15,15), represente (-7,125)
0
0
0
0
Exemplo 4

Sabemos que os números podem ser representados por
uma reta contínua. Entretanto, em pontos flutuantes
podemos representar apenas pontos discretos na reta real.

Questão: quantos e quais números podem ser
representados no sistema F(2, 3, 1, 2) ?
± 0.d1d2d3 x 2e





2 possibilidades para o sinal ( + ou -)
1 possibilidade para d1 (1)
2 possibilidades para d2 (0 ou 1)
2 possibilidades para d3 (0 ou 1)
4 possibilidades para o expoente (-1, 0 1 ou 2)
Total = 2 x 1 x 2 x 2 x 4 = 32 números
Operações em aritméticas de pontos
flutuantes

Dada uma seqüência de operações, como por exemplo,
u = [(x + y) – z)] /w , é importante a noção de como o
erro em uma operação propaga-se ao longo das
operações subseqüentes.

O erro total em uma operação é composto

pelo erro das parcelas ou fatores e

pelo erro no resultado da operação.
Erro nas parcelas ou fatores
Exemplo: Supor um sistema de aritmética de ponto
flutuante de 4 dígitos, na base 10 e com acumulador de
precisão dupla.

Dados x = 0.937 x 104
y = 0.1272 x 102

Obter




x+y
x–y
x*y
x/y
Adição em aritmética de ponto
flutuante

Requer o alinhamento dos pontos decimais dos dois
números:


a mantissa do número de menor expoente é deslocada para a
direita
O número de casas decimais deslocado corresponde à diferença
entre os dois expoentes
x = 0.937
x 104
y = 0.001272 x 104
x + y = (0.937 + 0.001272) x 104 = 0.938272 x 104
Ex: Alinhamento
Resultado: = 0.9383 x 104
(arredondamento para 4
dígitos significativos)
Subtração em aritmética de ponto
flutuante

segue a mesma regra da adição
Alinhando os pontos decimais,
x = 0.937 x 104
y = 0.001272 x 104.
x – y = (0.937 - 0.001272) x 104 = 0.935828 x 104.

Resultado: = 0.9358 x 104
Multiplicação em aritmética de ponto
flutuante


Multiplica as mantissas
Preserva a base e soma os expoentes

xy = (0.937 x 104) x (0.1272 x 102)
= (0.937 x 0.1272) x 104 x 102
= 0.1191864 x 106.

Resultado: = 0.1192 x 106


Divisão



Divide as mantissas
Preserva a base e subtrai os expoentes
y = (0.937 x 104) / (0.1272 x 102)
= (0.937 / 0.1272) x 104 / 102
= 7.36635 x 102
=0.736635 x 103
Resultado: = 0.7366 x 103
Exemplo 1

Considere o sistema com base = 10, e 3 dígitos
significativos e efetue as operações indicadas:
1) (11.4 + 3.18) + 5.05
e
11.4 + (3.18 + 5.05)
2) (3.18 × 11.4)/5.05
e
3.18/5.05 × 11.4
3) 3.18 × (5.05 + 11.4)
e
3.18 × 5.05 + 3.18 × 11.4
Conclusão

Como o arredondamento é feito após cada operação

as operações aritméticas (adição, subtração, divisão e
multiplicação) não são
 associativas
 distributivas
Exemplos 2 e 3

Considere o sistema com base = 10, e 3 dígitos
significativos, somar 1/3 dez vezes consecutivas usando
arredondamento.

Considere o sistema com base = 10, e 3 dígitos
significativos, avaliar o polinômio
P(x) = x3 − 6x2 + 4x − 0.1
no ponto 5.24 e comparar com o resultado exato.
Conclusão




Erros consideráveis podem ocorrer durante e execução
de um algoritmo.
Isso se deve ao fato de que existem limitações da
máquina e também que os erros de arredondamento
são introduzidos a cada operação efetuada.
Em conseqüência, podemos obter resultados diferentes
mesmo utilizando métodos numéricos matematicamente
equivalentes.
Assim, devemos ser capazes de conseguir desenvolver
um algoritmo tal que os efeitos da aritmética discreta do
computador permaneça inofensivo quando um grande
número de operações são executadas.
Efeitos Numéricos

Além dos problemas dos erros causados pelas
operações aritméticas, das fontes de erros, existem
certos efeitos numéricos que contribuem para que o
resultado obtido não tenha crédito.




Cancelamento
Propagação do Erro
Instabilidade Numérica
Mal Condicionamento
Obs: livro prof. Neide Franco pag. 42 – 54.
Cancelamento

Ocorre na subtração de dois números quase iguais.

Veremos este fato através de exemplos, onde iremos
considerar que estamos trabalhando com o sistema
9876  9875
F(10, 10, 10, 10).
9876  0.9937806599 x10 2

Exemplo 1) Calcular

Solução em PF

Normalizando 0.503142x10-2
9875  0.9937303457 x10
0.0000503142x102
2
-
Podemos obter resultado mais
preciso?

Sim. Considerando a identidade:
x y
9876  9875  0.5031418679 x10 2

Resultado com todos os dígitos corretos!
xy
x y
Exemplo 2

Resolver a equação: x2 – 1634 x + 2 = 0.

Solução em PF
1634  1634 2  8
x1 
 0,1633998776 x10 4
2
1634  1634 2  8
x2 
 0,1223990000 x10 2
2
Podemos obter resultado mais
preciso?

Sim. Basta lembrar que o produto das raízes é igual ao
termo independente da equação: x1. x2 = 2
2 0.2000000000 x101
2
x2 


0
,
1223991125
x
10
x1 0.1633998776 x10 4

Resultado com todos os dígitos corretos!

Obs: Nem sempre existe uma maneira trivial de resolver
problemas causados pelo cancelamento.
Exemplo 3

O cancelamento também ocorre no cálculo de uma
soma quando uma soma parcial é muito grande quando
comparada com as demais somas.

Exemplo: Calcular e-5.25, utilizando 5 dígitos
significativos em todas as operações.
x

k
x
  ( 1)
k!
k 0
k

Sabemos que: e

Se e-x é calculado usando essa fórmula, a série deve ser
truncada. Assim, já introduziu-se erro de truncamento.
Exemplo 3 – cont.

Considere os 25 primeiros termos:
e−5.25 =
0.10000 x 101 −
0.24117 x 102 +
0.29082 x 102 −
0.83497 x 101 +
0.91532 x 100 −
0.48516 x 10-1 +
0.14339 x 10-2 −
0.26003 x 10-4 +
0.30982 x 10-6 .
0.52500 x 101
0.31654 x 102
0.21811 x 102
0.43836 x 101
0.36965 x 100
0.15919 x 10-1
0.39620 x 10-3
0.62050 x 10-5
+
−
+
−
+
−
+
−
0.13781 x 102 −
0.33236 x 102 +
0.14314 x 102 –
0.20922 x 101 +
0.13862 x 100 –
0.49164 x 10-2 +
0.10401 x 10-3 –
0.14163 x 10-5 +
Exemplo 3 – cont.

Resultado somando os 25 termos: e-5.25 = 0.65974 x 10-2

Resultado obtido na calculadora: e-5.25 = 0.52475 x 10-2

Esta diferença entre os valores ocorreu porque na soma
as parcelas de ordem 102 fazem com que as parcelas
de ordem inferior a 10-3 sejam desprezadas.
Podemos obter resultado mais
preciso?
e

Sim. Basta lembrar
x
1
 x
e
k
x
ex  
k 0 k!

Somando as parcelas de e5.25 até ordem 10-3, obtém-se
0.19057 x 103
e5.25
0.10000 x101
2


0
.
52475
x
10
0.19057 x103
Instabilidade Numérica

Cada novo resultado intermediário introduz um novo
erro de arredondamento. É de se esperar que todos
esses erros influenciem o resultado final.

Algumas vezes, os erros intermediários cancelam-se
uns com os outros no mínimo parcialmente, tendo um
efeito desprezível no resultado final – Algoritmo
Estável

Quando os erros intermediários tem uma influência
muito grande no resultado final – Algoritmo Instável
Exemplo 4

Resolver a integral
1
1
In  e  x ne x dx , para n = 7.
0

Fórmula de recorrência para In In = 1 – n.In-1 n = 1,2,...
Valor inicial: I0 = 0,6321
I1 = 0.3679, I2 = 0.2642, I3 = 0.2074, I4 = 0.1704,
I5 = 0.1480, I6 = 0.1120, I7 = 0.2160

O resultado para I7 está errado pois
1
8
x
I7  e . max e . x dx 
8
0  x 1
0
1
x
1
I7  0.125
7
0
Exemplo 4 – Como encontrar o valor
exato de In?

Para esse caso em particular, observe que uma relação
de recorrência ser instável na direção crescente não
impede de ser estável na direção decrescente de n.
1  In
In1 
n




Qual o valor inicial?
Não é fácil encontrar esse valor pois todo In onde n > 0 é
desconhecido.
Mas sabemos que In → 0 quando n → ∞
Fazendo I20 = 0 e usando a fórmula acima para n = 20,
19, 18,...
I7 = 0.1123865 (todos os dígitos corretos!)
Mau condicionamento

Vamos analisar como perturbações nos dados de
entrada podem ou não influenciar os resultados

Exemplo: Resolver o sistema
x +
y = 2
x + 1.01y = 2.01
solução x = 1, y = 1

Se 2.01 na segunda equação for mudado para 2.02
solução x = 0, y = 2.

Ou seja, uma pequena mudança nos dados produz uma
grande mudança no resultado!

Quando grandes mudanças nos dados produzem
somente pequenas mudanças no resultado: Problema
bem condicionado

Quando pequenas mudanças nos dados produzem
grandes mudanças no resultado: Problema mal
condicionado
Exercícios
1. Considere o sistema F(10, 3, 5, 5). Represente neste
sistema os números:
x1 = 1234.56
x2 = −0.00054962
x3 = 0.9995
x4 = 123456.7
x5 = −0.0000001
2. Agora, considere o sistema F(10, 4, 4, 4) e represente
neste sistema os mesmos números do exercício 1.
3. Supondo que um computador trabalhe com apenas 6
casas decimais, o número (0.11)10 seria armazenado
como (0.000111)2 . Qual número decimal que este
número representa?
Exercícios
4. Dado o número 2.47 na base 10, qual a sua
representação na base 2 usando 8 casas decimais? Essa
representação é exata? O número binário encontrado
representa qual decimal?
5. No exemplo 4, vimos que existem o sistema F(2, 3, 1, 2)
só consegue representar 32 números. Encontre esses
números na base 10 e represente-os na reta real. Qual o
maior número e o menor número em módulo que podemos
representar nesse sistema?
Exercícios
6. Considere o sistema F(10, 3, 5, 5). Efetue as operações
indicadas:
a) (1.386 − 0.987) + 7.6485 e 1.386 − (0.987 − 7.6485) ,
b) (1.338 − 2.038)/4.577 e 1.338/4.577− 2.038/4.577 ,
7. Seja x = 17.678/ 3.471+ (9.617)2/(3.716 × 1.85)
a) Calcule x com todos os algarismos da sua calculadora,
sem efetuar arredondamento.
b) Calcule x considerando o sistema F(10, 3, 4, 3). Faça
arredondamento a cada operação efetuada.
Exercícios
n
x
8. Considere a integral
, com a = 10.
yn  
dx
0xa
1
a) Calcule y0 usando a integral
b) Mostre que uma relação de recorrência para yn é dada por
yn 
1
 a.y n1
n
c) Calcule yn , n = 1,2,..., 10 usando a relação de recorrência.
Os valores obtidos são confiáveis?
9. Considere a relação de recorrência do ex. 8 escrita na forma:
yn1 
1 1

   y n1 
a n

Considere ainda que y10 = 0. Usando este dado e a relação de
recorrência obtenha os valores de y10, y9,...y1. Os resultados agora são
melhores? Como você explica isso?
Download

Cálculo Numérico