1.
Tipos de Erros em Cálculo Numérico
Existem dois tipos de erros fundamentais associados ao cálculo
computacional:
•
Erros de arredondamento
os números reais são representados nos computadores e máquinas de calcular com precisão finita
•
Erros de truncatura
a maioria dos métodos de cálculos fornecem soluções aproximadas, não exactas (ex: a utilização de um número finito de termos de uma série para calcular o valor de uma função)
2.
Definições de Erros
Seja
x
∈
ℜ
o
valor exacto de um número e xuma aproximação dex
.• Erro:
ε
x=
x
−
x
• Erro Absoluto:
Δ
x=
x
−
x
• Erro Relativo:
x
x
x
r
x=
−
• Percentagem de erro:
r
x×
100
%Exemplo 1:
a)
x
=
0
.
000006
,
x
=
0
.
000005
Erro Absoluto:
Δ
x=
0
.
000006
−
0
.
000005
=
0
.
000001
Erro Relativo: 0.2
000006 .
0
000001 .
0
≈ =
− =
x x x rx
Percentagem de erro: 20 %
Apesar de o erro absoluto ser pequeno um erro relativo de 20% não é
Gladys Castillo
b)
x
=
600000
,
x
=
606000
Erro Absoluto:
Δ
x=
600000
−
606000
=
6000
Erro Relativo: 0.01
600000 6000
≈ =
− =
x x x rx
Percentagem de erro: 1 %
Apesar do erro absoluto de b) ser largamente maior, o erro relativo
correspondente é pequeno (1%). Como os valores são de grande magnitude, apesar
do erro absoluto ser elevado, a aproximação pode ser considerada boa.
A importância de um erro é melhor observada quando quantificada em termos
relativos. O erro relativo fornece mais informação do que o erro absoluto pois é
uma medida da aproximação xa
x,
tendo em conta a ordem de grandeza do valor dex.
3.
Aproximações por defeito e por excesso
Seja
x
∈
ℜ
o
valor exacto de um número e xuma aproximação dex
.Def 1: x é uma aproximação por defeito se
x
<
x
.Def 2: x é uma aproximação por excesso se
x
>
x
.Exemplo 1:
a)
x
=
0
.
000006
,
x
=
0
.
000005
⇒x
<
x
⇒ x é uma aproximação por defeito4.
Casas decimais correctas e algarismos significativos
Definições informais:
9 um número
x
se encontra representado com d casas decimais correctasquando a sua parte decimal apresenta decimais e resulta de um
arredondamento correctamente efectuado sobre um outro número.
Exemplo: supondo que o número
x
=0.00354 está correctamentearredondado, então possui 5 casas decimais correctas (d=5)
9 um número
x
se encontra representado com k algarismos (ou dígitos)significativos quando está representado por k algarismos, contados da
esquerda para a direita, a partir do primeiro algarismo diferente de zero.
Exemplo: supondo que o número
x
=0.00354 está correctamente arredondado,então possui três algarismos significativos (k=3).
Seja
x
∈
ℜ
o
valor exacto de um número e xuma aproximação dex
.Def 3: xé uma aproximação de
x
com pelo menos d casas decimais correctas se:
x
x
x
d−
×
≤
−
=
Δ
0
.
5
10
Para determinar o número de algarismos significativos da aproximação x pode-se
utilizar este resultado importante1:
Proposição 1:
Se
r
x≤
0
.
5
×
10
−k,
k
∈
N
então x tem pelo menos k algarismos significativosExemplo 2:
(
exercício 3 (a) FP1)7182
.
2
,
71828182
.
2
=
=
x
x
3 4
10
5
.
0
10
)
8182
.
0
(
7182
.
2
71828182
.
2
−
=
−<
×
−=
Δ
x⇒ x tem pelo menos 3 casas decimais correctas
1
Gladys Castillo
4 4
4
10 5 . 0 10 3 . 0 71828182 .
2
10 ) 8182 . 0
( − ≈ × − < × −
= − =
x x x rx
⇒ x tem pelo menos 4 algarismos significativos
5.
Computação em Ponto Flutuante
(estudar acetatos 1-19 capítulo 1)
O Sistema de representação em ponto flutuante FP (b, p, q)
com
b – base do sistema
p - número de dígitos da mantissa
q – número de dígitos do expoente
contém todos os números reais da forma:
x
=
±
mb
tonde
m
≥ 0 é a mantissa et
é o expoenteDado que um número neste formato pode ser representado de diferentes formas
que são equivalentes, devemos estabelecer uma única representação. Por isso é
habitual trabalhar com números normalizados.
Por exemplo, na base b=10, o número 10.75 pode ser expressado como
mantissa expoente
10.75 x 100 → não normalizado
1.075 x 101 → não normalizado
0.1075 x 102 = + (.1075)10+2 → normalizado
Assim, para um número decimal representado em sistema de ponto flutuante
Exemplo 3: Determine uma representação de x=0.001329 em formato de ponto
flutuante FP(10, 4, 2).
Podemos representar em FP(10, 4, 2) todos os números reais da forma
2 1
0
1
)
...
.
(.
d
1d
2d
4 ttx
=
±
− − −4 dígitos para a mantissa , 2 dígitos para o expoente
com 0 ≤ d-i ≤ 9, i=1,…,4; d-1 ≠ 0 (← normalizado); 0 ≤ t1 , t2 ≤ 9
Para x=0.001329 → fl(x) = + (.1329) 10-2
Neste caso x tem representação exacta em FP(10, 4, 2).
Exemplo 4: Determine uma representação de
π
=3.14159265…
em formato deponto flutuante FP(10, 5, 2).
Como neste caso π não tem representação exacta em FP(10, 5, 2) podemos
determinar uma aproximação de π por truncatura ou arredondamento.
6.
Aproximações obtidas por truncatura e arredondamento
Seja
x
∈
ℜ
e fl(x
)a representação dex
no sistema de ponto flutuante FP(b, p, q)9 se
x
=
fl(x
), entãox
tem representação exacta em FP(b, p, q)9 se
x
≠
fl(x
), então podemos determinar uma aproximação x de x por:• truncatura: desprezando os dígitos d-p-1, d–p-2, … da mantissa m
Exemplo 4 (continuação):
π
=3.14159265…, fl(
π
) = + (.31415)10
01em FP(10, 5, 2,
T
)
• arredondamento: aproximando pelo número do sistema FP(b, p, q) que
está mais próximo de
x
em valores absolutos• se o primeiro algarismo da parte eliminada for inferior a 5, o número obtido é a verdadeira representação, após arredondamento, do número dado;
• se o primeiro algarismo da parte eliminada for não inferior a 5, adiciona-se uma unidade ao algarismo da última ordem decimal conservada.
Gladys Castillo Exemplo 5: (exercício 4, (d), FP1)
Determine uma representação de x = -83785 em formato de ponto flutuante com
arredondamento FP(10, 4, 2, A) .
x ≈ fl(x) = - (.8379)105 - arredondamento para cima
x ≈ fl(x) = - (.8378)105 - arredondamento simétrico
(aproxima-se pelo algarismo par mais próximo, neste caso 8)
7.
Algarismos significativos em computação em ponto
flutuante
Seja x
∈
ℜ
e
x=± 0. d-1 d-2 …d-k d-k-1…d-k-m x 10p∈
ℜ
uma aproximação de x.
Def 3: xé uma aproximação de x com pelo menos d casas decimais correctas se:
(repetida) x
x
x
d−
×
≤
−
=
Δ
0
.
5
10
Def 4: xé uma aproximação de x com pelo menos k algarismos significativos se:
x
x
x
k p+ −
×
≤
−
=
Δ
0
.
5
10
adicionalmente, se
Δ
x=
x
−
x
>
0
.
5
×
10
−k+p−1então xé uma aproximação de x com exactamentek algarismos significativos
Exemplo 2:
(
exercício 3 (a) FP1, revisto)7182
.
2
,
71828182
.
2
=
=
x
x
Podemos representar a aproximação
x
=
2
.
7182
obtida de x por corte em formato de ponto flutuante1º. Determinar o expoente p2:
x
=
2
.
7182
= (.27182) 101 ⇒ p = 12º. Determinar d:
3 4
10
5
.
0
10
)
8182
(.
7182
.
2
71828182
.
2
−
=
−<
×
−=
Δ
x ⇒ d = 3⇒ x tem pelo menos 3 casas decimais correctas
2
3º. Determinar k:
Pela def 3 e def 4 vem:
- d = - k + p⇔ -3 = -k + 1 ⇔ k = 3 + 1 ⇒ k = 4 ⇒ x tem pelo menos 4 algarismos significativos
Como adicionalmente verifica-se que:
Δ
x=
x
−
x
=
0
.
8182
×
10
−4>
0
.
5
×
10
−4=
0
.
5
×
10
−4+1−1=
0
.
5
×
10
−k+p−1⇒ x tem exactamente 4 algarismos significativos (x= 2.7182 )
Exemplo 6: Determinar o número de algarismos significativos para a aproximação
000125
.
0
=
x
obtida de x=0.0001256723 por corte em FP(10, 6, 2, T)1º. Determinar p:
x
=
0
.
000125
= (.125) 10-3 ⇒ p = -32º. Determinar d:
5 6
10
5
.
0
10
6723
.
0
×
−≤
×
−=
−
=
Δ
xx
x
⇒ d= 5 ⇒ x tem pelo menos 5 casas decimais correctas
3º. Determinar k:
Pela def 3 e def 4 vem:
- d = - k + p⇔ -5 = -k – 3 ⇔ k = 5 – 3 ⇔ k = 2 ⇒ x tem pelo menos 2 algarismos significativos
Como adicionalmente verifica-se que:
Δ
x=
x
−
x
=
0
.
6723
×
10
−6>
0
.
5
×
10
−6=
0
.
5
×
10
−2−3−1=
0
.
5
×
10
−k+p−1⇒ x tem exactamente 2 algarismos significativos (x= 0.000125 )
Utilizando agora o resultado da proposição 1 podemos determinar o número de algarismos significativos utilizando o majorante do erro relativo.
Se
r
x≤
×
kk
∈
N
−
,
10
5
.
0
então x tem pelo menos k algarismos significativosComo
r
x≈
0
.
5349
×
10
−2<
0
.
5
×
10
−1 então x tem pelo menos 1 algarismosignificativo (neste caso particular mostramos que tem exactamente 2 algarismos
Gladys Castillo Exemplo 7
Considere as aproximações para o valor de
π
,π
t= .3141(1001) em FP(10, 4, 2, T)
(por corte) e
π
a = .3142(1001) em FP(10, 4, 2, A) (por arredondamento). Tomando
como “exacto” o valor de
π
dado pela sua máquina de calcular, calcule o erro absoluto e o erro relativo de cada uma das aproximações, e, diga, justificando, quantos algarismos significativos possuiπ
t eπ
a.Em Matlab: » p=pi p = 3.141592653589793e+000 » pt=3.141 pt = 3.141000000000000e+000 » pa=3.142 pa = 3.142000000000000e+000
» err_abs_pt = abs(p-pt) err_abs_pt =
5.926535897931018e-004
» err_abs_pa = abs(p-pa) err_abs_pa =
4.073464102067881e-004
» err_rel_pt = abs((p-pt)/p) err_rel_pt =
1.886474967134572e-004
» err_rel_pa = abs((p-pa)/p) err_rel_pa =
1.296623894702984e-004
t
π
=0.3141(1001) em FP(10, 4, 2, T)1º. Determinar p:
π
t=0.3141(1001) ⇒ p = 1
2º. Determinar d:
2 3
10
5
.
0
10
592653
.
0
×
−≤
×
−≈
−
π
tπ
⇒ d = 2 ⇒
π
t tem pelo menos 2 casasdecimais correctas.
3º. Determinar k: Pela def 3 e def 4 vem:
- d = - k + p ⇔ -2 = -k + 1 ⇔ k = 2 + 1
⇔ k = 3
⇒
π
t tem pelo menos 3 alg. sign.Adicionalmente como: 3 3
10
5
.
0
10
592653
.
0
×
−>
×
−≈
−
π
tπ
⇒
π
t tem exactamente 3 algarismosa
π
= 0.3142(1001) em FP(10, 4, 2, A)1º. Determinar p:
π
a = 0.3142(1001) ⇒ p = 1
2º. Determinar d:
3 3
10
5
.
0
10
407346
.
0
×
−≤
×
−≈
−
π
aπ
⇒ d = 3 ⇒
π
a tem pelo menos 3 casasdecimais correctas.
3º. Determinar k: Pela def 3 e def 4 vem:
- d = - k + p⇔ -3 = -k + 1 ⇔ k = 3 + 1
⇔ k = 4
⇒
π
a tem pelo menos 4 alg. sign.Adicionalmente como: 4 3
10
5
.
0
10
407346
.
0
×
−>
×
−≈
−
π
aπ
⇒
π
a tem exactamente 4 alg. sign.Referencias
1. Heitor Pina, Métodos Numéricos, McGraw-Hill, 1995.
2. Jorge Sá Esteves, Introdução à Análise Numérica, Vol. I, Universidade de Aveiro, 1996
3. Isabel Cação, Acetatos de Métodos Numéricos 10/11, Introdução à computação numérica
4. Rosália Rodrigues, Capítulo I – Representação de números e erros, disponível em: http://www2.mat.ua.pt/rosalia/cadeiras/AN/TPcap1.pdf. 5. Balsa e A. Santos, Capítulo I – Erros e Aritmética Computacional, disponível