Representação de números - Conversão de base b para base 10

Propaganda
Representação de números - Conversão de base b para base 10
Números em base 10
0, 1, 2, … , 8, 9 , 10, 11, 12, … , 19 , 20, 21, … , 99 , 100, 101, … , 472, … , 999, 1000, 1001, …
10 dígitos que
constituem a base
unidades
centenas
dezenas
Valor depende da posição dos dígitos
Exemplo1:
N = ( 4579 )10 = 4000 + 500 + 70 + 9 = 4 × 103 + 5 × 102 + 7 × 101 + 9 × 100
Exemplo2:
N = ( 684,75)10 = 6 × 102 + 8 × 101 + 4 × 100 + 7 × 10 −1 + 5 × 10−2
Generalizando
N = ( dn dn−1 ... d1 d0 , d−1 d−2 ... )10
= dn × 10n + dn−1 × 10n−1 + ... + d1 × 101 + d0 × 100 + d−1 × 10 −1 + d−2 × 10−2 + ...
0 ≤ di ≤ 9 = 10 − 1
Matemática Computacional, MEMec, LEAN, MEAer
Representação de números - Conversão de base b para base 10
Números em base b ≠10, por exemplo base 3 (ou seja b=3)
0, 1, 2 , 10, 11, 12 , 20, 21, 22 , 100, 101, 102, 110, 111, 112, 120, 121, 122, 200, …
3 dígitos
da base









3
4
5
6
7
8
9
10
11
Generalizando
N = ( dn dn−1 ... d1 d0 , d−1 d−2 ... )3
= dn × 3n + dn−1 × 3n−1 + ... + d1 × 31 + d0 × 30 + d−1 × 3−1 + d−2 × 3−2 + ...
0 ≤ di ≤ 2 = 3 − 1
Exemplo: N = ( 2 0 1 0 2 , 2 1 )3 = 2 × 34 + 0 × 33 + 1 × 32 + 0 × 31 + 2 × 30 + 2 × 3−1 + 1 × 3−2
↑
↑
↑
4 ↑ 2
0
↑
3
1
↑
↑ −2
−1
= 2 × 81 + 0 × 27 + 1 × 9 + 0 × 3 + 2 + 2 ×
1
1
+ 1×
3
9
= 173,777...
Matemática Computacional, MEMec, LEAN, MEAer
Representação de números - Conversão de base 10 para base b
Números inteiros
d3 d2 d1 d0
   
Exemplo:
N = ( 1 3 3 2 )4 = 1 × 43 + 3 × 42 + 3 × 41 + 2 × 4 0 = 126 = (126)10
↑
3
↑
2
↑
1
↑
0
Dividindo 126 por 4 resulta,
d0

126 1 × 43 + 3 × 42 + 3 × 41 + 2× 4 0
=
4
4
Ou seja,
126
4
2
31
resto=d0
resto
2
= 1 × 4 2 + 3 × 41 + 3 × 4 0 +
 4
31
= 31 +
2
4
o resto da divisão inteira de 126 por 4 é o dígito
da posição d0 do número 126 escrito em base 4
Matemática Computacional, MEMec, LEAN, MEAer
Representação de números - Conversão de base 10 para base b
Dividindo o resultado da anterior divisão (= 31) por 4 resulta,
d1

31 1 × 4 + 3 × 4 + 3× 4
=
4
4
2
Ou seja,
1
31
4
3
7
0
resto=d1
resto
3
= 1 × 41 + 3 × 4 0 +


 4
=7+
7
3
4
o resto da divisão inteira de 31 por 4 é o dígito
da posição d1 do número 126 escrito em base 4
Ou seja, efectuando divisões sucessivas por 4, os restos das
divisões vão ser os dígitos do número escrito em base 4
126 4
2 31 4
3 7 4
3 1 4
1 0 4
0 0
126 = ( 0 ... 0 1 3 3 2 )4 = ( 1 3 3 2 )4
Matemática Computacional, MEMec, LEAN, MEAer
Representação de números - Conversão de base 10 para base b
Números fraccionários puros
d−1 d−2 d−3



Exemplo:
x = ( , 3 1 2 )4 = 3 × 4 −1 + 1 × 4 −2 + 2 × 4 −2 = 0,84375 = (0,84375)10
↑
−1
↑
−2
↑
−3
Multiplicando 0,84375 por 4 resulta,
d−1

d −2

d−3

0,84375 × 4 = ( 3 × 4 −1 + 1 × 4 −2 + 2 × 4 −3 ) × 4
d−1

d−1

= 3 + (1 × 4 −1 + 2 × 4 −2 ) = 3 ,375

0,375
A parte inteira que resulta de multiplicar o número por 4, é o dígito d– 1 do número escrito
em base 4
Retirando a parte inteira ao anterior resultado
e multiplicando novamente por 4 resulta,
d−2

d−3

d −2

0,375 × 4 = ( 1 × 4 −1 + 2 × 4 −2 ) × 4 = 1 ,5
A parte inteira que resulta de multiplicar por 4, é o dígito d– 2 do número escrito em base 4
Matemática Computacional, MEMec, LEAN, MEAer
Sistema de ponto flutuante
Exemplo: FP(10,4,2,A) e FP(10,4,2,T)
FP(b, p, q ,_) = FP( 10 ,
↑
base 10
4
,
2
,
_
)
↑
↑
↑
2 dígitos no A=Arredondamento
4 dígitos na expoente
T=Truncatura
mantissa
2 dígitos
(base 10)
x = ±m × b
±t
→ x = ±(0, d−1d−2d−3d−4 ) × 10


± ( t1 t0 )
4 dígitos (da base 10)
Formato normalizado – com excepção da representação do número zero, d‒1≠0
pelo que 0,1000 ≤ m ≤ 0,9999 → 0,1 ≤ m < 1 → b−1 ≤ m < 1
Matemática Computacional, MEMec, LEAN, MEAer
Sistema de ponto flutuante
Exemplo: Representar x = 805,174 em FP(10,4,2,T) e em FP(10,4,2,A)
x = 805,174 = 0,805174 × 103
FP(10,4,2,T ): fl(x) = x = +(0,8051) × 10+03
FP(10,4,2, A): fl(x) = x = +(0,8052) × 10+03
805,0
805,1
805,2
805,15
805,3
805,25
805,174
Matemática Computacional, MEMec, LEAN, MEAer
Sistema de ponto flutuante
Exemplo: Representar x = 805,174 em FP(10,4,2,T) e em FP(10,4,2,A)
x = 805,174 = 0,805174 × 103
FP(10,4,2,T ): fl(x) = x = +(0,8051) × 10+03
FP(10,4,2, A): fl(x) = x = +(0,8052) × 10+03
Erro absoluto: E = x − x
FP(10,4,2,T ): E = x − x = 0,805174 × 103 − 0,8051 × 103 = 0,000074 × 103 = 0,074
FP(10,4,2, A): E = x − x = 0,805174 × 103 − 0,8052 × 103 = −0,000026 × 103 = −0, 026
Erro relativo: e =
x − x E
=
x
x
FP(10,4,2,T ): e =
0, 074
E
=
= 9,2 × 10−5
x 805,174
FP(10,4,2, A): e =
E −0, 026
=
= −3,2 × 10−5
x 805,174
x100
x100
9,2 × 10 −3 %
−3,2 × 10 −3 %
Matemática Computacional, MEMec, LEAN, MEAer
Unidade de arredondamento, u
Unidade de arredondamento, u – majorante do erro relativo (possível de ser cometido) na
representação dum número
 × bt m − m

 max(m − m
)
x − x m × bt − m
x − x
m−m
e=
=
=
→
max
(
e
)
=
max
=
max
≤
<u
x
m × bt
m
x
m
min(m)
Com truncatura, FP(b,p,q,T)
min(m): (0,10...0)b ≤ m < 1 → b−1 ≤ m < 1 → min(m) = b−1
 ): m = (0,10... 0 d−( p+1)d−( p+2) ...)b 
max(m − m
↑

−p
 = (0,0... 0 d−( p+1)d−( p+2) ...)b < (0,0...0 1)b = b− p
m−m

↑
↑
 = (0,10... 0)b
m
−p
−p

↑
−p

 ) ≤ b− p 
max(m − m
b− p
1− p
 → u = −1  u = b
−1
b
min(m) = b

u
(0,10... 0)b
↑
−p
(0,1...0 1)b
↑
−p
Com truncatura, a unidade de arredondamento
é a maior distância relativa entre dois números
consecutivos (representados nesse sistema)
Matemática Computacional, MEMec, LEAN, MEAer
Unidade de arredondamento, u
Unidade de arredondamento, u – majorante do erro relativo (possível de ser cometido) na
representação dum número
 × bt m − m

 max(m − m
)
x − x m × bt − m
x − x
m−m
e=
=
=
→
max
(
e
)
=
max
=
max
≤
<u
x
m × bt
m
x
m
min(m)
Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da
unidade de arredondamento com truncatura
1
u = b1−p
2
u
(0,10... 0)b
↑
−p
(0,1...0 1)b
↑
−p
Com arredondamento, a unidade de
arredondamento é metade da maior distância
relativa entre dois números consecutivos
(representados nesse sistema)
Matemática Computacional, MEMec, LEAN, MEAer
Unidade de arredondamento, u
No exemplo: FP(10,4,2,A) e FP(10,4,2,T)
u = b1−p  u = 101−4 = 10 −3
Com truncatura, FP(b,p,q,T) = FP(10,4,2,T)
u
1,000
1,001
||
||
1
(0,1000) × 10
1
(0,1001) × 10
Nota: Erro relativo obtido na representação
de 805,174 em FP(10,4,2,T):
e = 9,2 x 10 –5 < 10 –3 = u
Com arredondamento, FP(b,p,q,A) = FP(10,4,2,A)
u
1,000
1,001
||
||
1
(0,1000) × 10
1
(0,1001) × 10
1
1
u = b1−p = 101−4 = 0.5 × 10 −3
2
2
Nota: Erro relativo obtido na representação
de 805,174 em FP(10,4,2,A):
|e|= 3,2 x 10 –5 < 0,5 x 10 –3 = u
Matemática Computacional, MEMec, LEAN, MEAer
Limite de overflow e limite de underflow
Exemplo: FP(10,4,2,A) ou FP(10,4,2,T)
2 dígitos
(base 10)
Formato normalizado (d−1 ≠ 0)
x = ±m × b
±t
→ x = ±(0, d−1d−2d−3d−4 ) × 10


± ( t1 t0 )
4 dígitos (da base 10)
Mantissa:
0,1000 ≤ m ≤ 0,9999
Expoente:
− 99 ≤ t ≤ +99
Limite de overflow – maior número representável (maior em módulo): 0,9999x10+99 ≈ 10+99
Limite de underflow – com excepção do número zero, menor número
representável (menor em módulo): 0,1000x10– 99 = 10– 100
Permi ndo o formato desnormalizado →
Limite de underflow gradual : 0,0001x10– 99 = 10– 103
Nota: em underflow gradual há perda de precisão e o erro relativo pode ser superior à
unidade de arredondamento
Matemática Computacional, MEMec, LEAN, MEAer
Sistema de ponto flutuante
underflow
0
– 0,9999x10+99
0,9999x10+99
-10– 100
10– 100
Limite de
overflow
Limite de
underflow
Matemática Computacional, MEMec, LEAN, MEAer
Sinal de um número
Como armazenar o sinal de um número?
1) Utilizando um dígito para esse efeito: p.ex., utilizado para o sinal da mantissa
2) Utilizando enviesamento: p.ex., utilizado para o sinal dos números inteiros
Exemplo: Base 2, número inteiro com 3 bits
1) Sem enviesamento, 2 bits para o número + 1 bit para o sinal (0=positivo, 1=negativo)
−3

−(11)2

111
2) Com enviesamento
(000)2

0
N=
↓
Ne = N − 4 =
−4
−2

−(10)2

110
(001)2

1
↓
−3
−1

−(01)2

101
(010)2

2
↓
−2
−0

+0

+1

+2

+3

−(00)2

100
+(00)2

000
+(01)2

001
+(10)2

010
+(11)2

011
(011)2

3
↓
−1
(100)2

4
↓
0
(101)2

5
↓
+1
(110)2

6
↓
+2
(111)2

7
↓
+3
Matemática Computacional, MEMec, LEAN, MEAer
Norma IEEE754 – formatos simples e duplo (base 2)
bits ->
Formato simples
32 bits = 4 bytes
S
bits ->
Formato duplo
64 bits = 8 bytes
1
1
S
8
23
Expoente Mantissa
11
52
Expoente Mantissa
Formato normalizado ou desnormalizado
• Formato normalizado – no caso do expoente não ser nem todo “zeros” nem todo “uns”
• Formatos desnormalizados
• Se o expoente for todo “zeros” –
representação do número zero
ou representação de underflow
• Se o expoente for todo “uns” – representação de overflow (infinito ou NaN)
Matemática Computacional, MEMec, LEAN, MEAer
Norma IEEE754 – formato simples
bits ->
Formato simples
32 bits = 4 bytes
1
S
8
23
Expoente Mantissa
1
||
Formato normalizado
x = (−1)S × (d0 , d−1 d−23 )2 × 2e−127



24 bits
Expoente:
(00000001)2 ≤ e ≤ (11111110)2 ⇔ 1 ≤ e ≤ 254 ⇔ − 126 ≤ e − 127 ≤ 127
Limite de overflow: (1,1111)2 × 2254−127 = (1,1111)2 × 2127 = (2 − 2−23 ) × 2127  2128  3,4 × 1038
Limite de underflow: (1,00 00)2 × 21−127 = (1,00 00)2 × 2−126 = 2−126  1,2 × 10 −38
Limite de underflow gradual: (0,00 0 1 )2 × 2−126 = 2−23 × 2−126 = 2−149  1,4 × 10 −45
↑
−23
Unidade de arredondamento c/ truncatura: u = b1−p = 21−24 = 2−23  1,2 × 10 −7
1
1
1
Unidade de arredondamento c/ arredondamento: u = × b1−p = × 21−24 = × 2−23  0,6 × 10 −7
2
2
2
Matemática Computacional, MEMec, LEAN, MEAer
Norma IEEE754 – formato duplo
bits ->
Formato duplo
64 bits = 8 bytes
1
S
11
52
Expoente Mantissa
1
||
Formato normalizado
x = (−1)S × (d0 , d−1 d−52 )2 × 2e−1023

53 bits
Expoente: (00000000001)2 ≤ e ≤ (11111111110)2 ⇔ 1 ≤ e ≤ 2046 ⇔ − 1022 ≤ e − 1023 ≤ 1023
Limite de overflow: (1,1111)2 × 2+1023 = (2 − 2−52 ) × 2+1023  2+1024  1,8 × 10 +308
Limite de underflow: (1,00 00)2 × 21−1023 = (1,00 00)2 × 2−1022 = 2−1022  2,2 × 10 −308
Limite de underflow gradual: (0,00 0 1 )2 × 2−1022 = 2−52 × 2−1022 = 2−1074  4,9 × 10−324
↑
−52
Unidade de arredondamento c/ truncatura: u = b1−p = 21−53 = 2−52  2,2 × 10 −16
1
1
1
Unidade de arredondamento c/ arredondamento: u = × b1−p = × 21−53 = × 2−52  1,1 × 10 −16
2
2
2
Matemática Computacional, MEMec, LEAN, MEAer
Operações elementares em ponto flutuante (FP)
Passos a seguir:
1) Decomposição dos operandos nas mantissas e expoentes
2) No caso de soma e subtracção, alinhamento das mantissas
3) Operações com mantissas e com expoentes
4) Normalização da mantissa
5) Arredondamento da mantissa
Exemplos em FP(10,4,2,T)
Exemplo 1) y = 123,4 + 4,321 → 0,1234 × 103 + 0,4321 × 101
0,1234
×103
+ 0,004321 ×103
0,127721 ×103
fl(y) = y = 0,1277 × 103
Matemática Computacional, MEMec, LEAN, MEAer
Operações elementares em ponto flutuante (FP)
Passos a seguir:
1) Decomposição dos operandos nas mantissas e expoentes
2) No caso de soma e subtracção, alinhamento das mantissas
3) Operações com mantissas e com expoentes
4) Normalização da mantissa
5) Arredondamento da mantissa
Exemplos em FP(10,4,2,T)
Exemplo 2) y = 427,3 − 2,183 → 0,4273 × 103 − 0,2183 × 101
0,4273
×103
− 0,002183 ×103
0,425117 ×103
fl(y) = y = 0,4251 × 103
Nota: se não existirem dígitos de guarda
0,4273
− 0,0021 83
0,4252
×103
×103
×103
fl(y) = y = 0,4252 × 103
Matemática Computacional, MEMec, LEAN, MEAer
Operações elementares em ponto flutuante (FP)
Passos a seguir:
1) Decomposição dos operandos nas mantissas e expoentes
2) No caso de soma e subtracção, alinhamento das mantissas
3) Operações com mantissas e com expoentes
4) Normalização da mantissa
5) Arredondamento da mantissa
Exemplos em FP(10,4,2,T)
8,475
0,8475 × 101 0,8475
1−3
−2
Exemplo 3) y =
→
=
×
10
=
5,478345
×
10
154,7
0,1547 × 103 0,1547
fl(y) = y = 0,5478 × 10 −1
Matemática Computacional, MEMec, LEAN, MEAer
Operações elementares em ponto flutuante (FP)
Passos a seguir:
1) Decomposição dos operandos nas mantissas e expoentes
2) No caso de soma e subtracção, alinhamento das mantissas
3) Operações com mantissas e com expoentes
4) Normalização da mantissa
5) Arredondamento da mantissa
Notas:
1) Existindo dígitos de guarda, a simulação duma operação elementar em FP corresponde a
escrever o resultado obtido no formato em FP, arredondando o resultado para o número
de dígitos existentes na mantissa.
2) As operações com os expoentes são operações com números inteiros pelo que não
introduzem aproximações (operações exactas).
3) As operações em FP, em geral, não respeitam as propriedades comutativas, distributiva
e associativa da aritmética exacta.
Matemática Computacional, MEMec, LEAN, MEAer
Erros nas operações elementares em ponto flutuante (FP)
Nota: as operações com os expoentes são exactas, os erros provêm das operações com as
mantissas
fl(x) = x + E 

 → fl(x) = x + x ⋅ e = x ⋅ (1 + e)
E
e =  E = x ⋅ e
x

Soma:
y = x1 + x2
(x1 e x2 têm o mesmo sinal)
x1 + x2 + e1 x1 + e2 x2 + e3 (x1 + x2 ) + ϑ
y = fl(x1 + x2 ) = [ x1 ⋅ (1 + e1 ) + x2 ⋅ (1 + e2 )] ⋅ (1 + e3 ) = 

y
arredondamento
do argumento
arredondamento
do resultado
termos de
ordem superior
E = y − y = e1 x1 + e2 x2 + e3 (x1 + x2 ) + ϑ
→ E ≤ u ⋅ x1 + u ⋅ x2 + u ⋅ x1 + x2 + ϑ (u2 ) → E ≤ 2u ⋅ x1 + x2 + ϑ (u2 )

y
e=
E

y
e ≤ 2u + ϑ
Matemática Computacional, MEMec, LEAN, MEAer
Erros nas operações elementares em ponto flutuante (FP)
Nota: as operações com os expoentes são exactas, os erros provêm das operações com as
mantissas
fl(x) = x + E 

 → fl(x) = x + x ⋅ e = x ⋅ (1 + e)
E
e =  E = x ⋅ e
x

Multiplicação: y = x1 ⋅ x2
x1 ⋅ x2 + e1 x1 x2 + e2 x1 x2 + e3 x1 x2 + ϑ
y = fl(x1 ⋅ x2 ) = [ x1 ⋅ (1 + e1 ) ⋅ x2 ⋅ (1 + e2 )] ⋅ (1 + e3 ) = ... = 
y
arredondamento
do argumento
arredondamento
do resultado
E = y − y = e1 x1 x2 + e2 x1 x2 + e3 x1 x2 + ϑ
termos de
ordem superior
→ E ≤ 3u ⋅ x1 ⋅ x2 + ϑ

y
e=
E

y
e ≤ 3u + ϑ
Analogamente se conclui para a divisão:
e ≤ 3u + ϑ
Matemática Computacional, MEMec, LEAN, MEAer
Erros nas operações elementares em ponto flutuante (FP)
Subtracção:
y = x1 − x2
(x1 e x2 têm o mesmo sinal)
y = fl(x1 − x2 ) = [ x1 ⋅ (1 + e1 ) − x2 ⋅ (1 + e2 )] ⋅ (1 + e3 ) = x1 (1 + e1 + e3 + ϑ ) − x2 (1 + e2 + e3 + ϑ )
arredondamento
do argumento
arredondamento
do resultado
termos de
ordem superior
= x1 − x2 + e1 x1 − e2 x2 + e3 (x1 − x2 ) + ϑ

y
E = y − y = e1 x1 − e2 x2 + e3 (x1 − x2 ) + ϑ
→ E ≤ |e1 ⋅ x1 | + |e2 ⋅ x2 | + |e3 ⋅ (x1 − x2 )| +ϑ
→ E ≤ u ⋅ x1 + u ⋅ x2 + u ⋅ ( x1 + x2 ) + ϑ (u2 )
e=
E
E
=

y x1 − x2
e ≤ 2u
x1 + x2
x1 − x2
+ϑ
→ E ≤ 2u ⋅ ( x1 + x2 ) + ϑ (u2 )
erro absoluto
“pequeno”
(em relação à grandeza
dos argumentos)
Se |x1‒x2| for “muito pequeno”, o
erro relativo pode ser muito grande
-> cancelamento subtractivo
Matemática Computacional, MEMec, LEAN, MEAer
Erros nas operações elementares em ponto flutuante (FP)
Exemplo de cancelamento subtractivo
Valor exacto:
y = 12,46485 − 12,45012
y = 12,46485 − 12,45012 = 0,01473
Cálculo em FP(10,4,2,A):
y = 12,46485 − 12,45012 → 0,1246 × 102 − 0,1245 × 102
0,1246 ×102
− 0,1245 ×102
0,0001 ×102
Erro absoluto:
Erro relativo:
fl(y) = y = 0,0001 × 102
E = y − y = 0,01473 − 0,0001 × 102 = 0,01473 − 0,01  E = 0,00473
e=
y − y E 0,00473
= =
32%
 e = 0,32 ⎯⎯→
×100
y
y 0,01473
Matemática Computacional, MEMec, LEAN, MEAer
Erros nas operações elementares em ponto flutuante (FP)
Soma:
y = x1 + x2
Subtracção:
e ≤ 2u + ϑ (u2 )
(x1 e x2 têm o mesmo sinal)
e ≤ 2u
y = x1 − x2
Multiplicação e divisão:
y = x1 ⋅ x2 , y = x1 / x2
| x1 | + | x2 |
+ ϑ (u2 )
| x1 − x2 |
e ≤ 3u + ϑ (u2 )
Matemática Computacional, MEMec, LEAN, MEAer
Processos que podem originar acumulação de erros
x
n
Somatório:
y=
i
(xi – números positivos e negativos)
i =1
Algoritmo:
Inicialização: s0=0
para i=1 até n fazer
si=si–1 +xi
fim do ciclo i
y=sn
No caso de os xi possuírem o mesmo sinal é possível estimar um majorante do erro relativo
→ e ≤ (n + 1) u + ϑ (u2 )
Notar que a ordem pelo qual o cálculo é efectuado não é indiferente
Para minimizar o erro, a variável “auxiliar” si pode ser declarada com precisão acrescida. Se
não ocorrer cancelamento subtractivo, o erro raramente ultrapassa uma unidade de
arredondamento (independentemente do valor de n)
Matemática Computacional, MEMec, LEAN, MEAer
Processos que podem originar acumulação de erros
Produto interno (de vectores):
 
s = x ⋅y =
x
n
i
⋅ yi
i =1
Algoritmo:
Inicialização: s0=0
para i=1 até n fazer
si=si–1 +xi . yi
fim do ciclo i
y=sn
No caso dos termos (xi yi) possuírem o mesmo sinal é possível encontrar um majorante do
erro relativo
→ e ≤ (n + 2) u + ϑ (u2 )
Tal como no caso do somatório, para minimizar o erro, a variável “auxiliar” si pode ser
declarada com precisão acrescida
Matemática Computacional, MEMec, LEAN, MEAer
Número de condição
Avaliar a propagação de erros: análise directa vs. análise indirecta
Análise indirecta – número de condição
perturbação
de x
x
x
f ( x)
f (x )
situação 1
situação bem
condicionada
f (x)
situação mal
condicionada
situação 2
Dedução de número de condição
f (x ) − f (x)
f (x) − f (x)
 f '(x)
f '(x) = lim
→
x → x
x − x
x − x
f (x) − f (x)  f '(x) ( x − x )

f (x ) − f (x) x ⋅ f '(x) x − x

⋅
f (x)
f (x) 
x
 


ef
cond f ( x )
ex
Matemática Computacional, MEMec, LEAN, MEAer
Número de condição
Ou seja, e f = cond f (x) × ex
, cond f (x) 
x ⋅ f '(x)
f (x)
cond f(x) representa o factor de ampliação entre o erro relativo do argumento x e o erro do
valor da função f(x)
Se cond f(x) for grande, então uma perturbação no valor do argumento x é muito ampliada
Se cond f(x) ≈ 1 (valor pequeno) – função é bem condicionada
Se cond f(x) ≈ 106 (valor “grande” (?)) – função é mal condicionada
Nota 1: Se uma função for bem condicionada (num ponto), então deverá existir algoritmo
que permita calcular (nesse ponto) o valor da função com precisão. Contudo, podem existir
algoritmos que originem imprecisões no cálculo da função.
Matemática Computacional, MEMec, LEAN, MEAer
Número de condição
Nota 2: cond f(x) é “grande” ou “pequeno” dependendo do nosso objectivo e da incerteza
dos argumentos
Considerar, por hipótese,
cond f (x) = 103
→
y − y
x − x
≈ 103 ×
y
x
a) se os erros dos argumentos forem da ordem da representação
dos números em computador (por exemplo em formato simples)
y − y
≈ 103 × 10 −7 = 10 −4
y
erro inferior a 0,01%
x − x
≤ u ≈ 10 −7
x
erro pequeno (?)
(depende da aplicação)
b) se os erros dos argumentos forem erros de leitura numa escala (temperatura,
distância, velocidade, etc), por exemplo se os erros forem inferiores a 10–4
y − y
≈ 103 × 10 −4 = 10 −1
y
erro inferior a 10%
erro grande (?)
(depende da aplicação)
Matemática Computacional, MEMec, LEAN, MEAer
Download