Académique Documents
Professionnel Documents
Culture Documents
Srgio Galdino
26 de Setembro de 2013
Captulo 1
Erros em computaes
numricas
1.1 Glamour da computao
A opinio geral que computadores so capazes de fazer operaes aritmticas rapidamente e com grande exatido. Em parte correta quando comparada ao clculo manual. Por exemplo, taxas tpicas para multiplicao
manual de nmeros so 0.05s1 ( so 20s para efetuar uma multiplicao)
enquanto num computador so tipicamente maiores que 106 s1 chegando
facilmente a 1012 s1 em supercomputadores. Os clculos computacionais
superam em vrias ordens de magnitude os clculos manuais, permitindo,
assim, enfrentar verdadeiros desaos computacionais. S para produzir o
efeito psicodlico pode ser dito que em 1 segundo um computador de 106 /s
pode fazer mais clculos (e sem cometer erros grosseiros) que uma pessoa ir
fazer manualmente em sua vida inteira. Desviando-se do glamour da computao, este captulo dar bases pra mostrar que resultados de computaes
numricas devem ser vistas com cautela.
CAPTULO 1.
1
= 0.33333 . . .
3
(1.2)
Processos:
f (x)dx = lim
xi 0
f (xi )xi ,
xi = (xi+1 xi )
(1.3)
i=1
df (x)
= lim
x0
dx
f (x + x) f (x)
x
(1.4)
Grande parte da matemtica sensvel aos efeitos produzidos pelo arredondamento numrico; esta vulnerabilidade que os estatsticos chamam de
"no robusto".
Esta diferena fundamental, pois somente partes da matemtica resistente aos erros de arredondamentos so teis em matemtica aplicada ao
mundo real.
Signicados diferentes surgem para as mesmas palavras. A expresso zeros de um polinmio pode ter vrios signicados em computao e um nico
signicado em matemtica (ver [4] sec 1.10).
A matemtica lida preferencialmente com teoremas exatos e precisos;
anlise numrica usa muitos mtodos heursticos. A existncia de um teorema no suciente em clculos computacionais. Estas diferenas so
muitas vezes srias e conduzem a grandes desentendimentos.
Dgitos signicativos
1.4.
COMPUTAES NUMRICAS
Preciso e Exatido
Preciso refere-se a quo prximo um nmero representa o nmero que
ele est representando.
Exatido refere-se a quo prximo um nmero est do valor real do nmero que est representando quanticado pelo erro absoluto ou relativo. O
termo preciso refere-se a exatido com as quias as operaes aritmticas so
realizadas. A preciso governada pelo nmero de dgitos a ser utilizado nos
clculos numricos. A exatido regida por erros na aproximao numrica.
Preciso e exatido so quanticados pelos erros de clculos numricos.
1.4.1 Representao
O sistema de numerao decimal o mais usado pelo homem nos dias de
hoje. O nmero 10 tem papel fundamental, chamado de base do sistema.
Os smbolos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, so usados para representar qualquer grandeza. O fato de o sistema decimal ser largamente utilizado tem
evidentemente razes histricas, pois na realidade qualquer nmero inteiro
maior que 1 poderia ter sido escolhido. De fato, no mundo dos computadores
digitais o sistema binrio o utilizado. O nmero 2 a base do sistema e os
smbolos 0 e 1 servem para representar uma grandeza qualquer. Ao lado do
sistema binrio, os sistemas octal, hexadecimal, base 8 e 16 respectivamente,
so tambm utilizados. Isto ocorre pelo fato de que cada smbolo octal e
hexadecimal representa um equivalente a trs e quatro smbolos no sistema
binrio e vice-versa.
CAPTULO 1.
1.4.2 Converso
Dado um nmero x representado na base N, isto , na N-representao, e ns
queremos saber como representa-lo na base M, isso , na M-representao.
Temos ento a equao:
x = am N m + + a1 N 1 + a0 N 0 + a1 N 1 + + an N n
= bj M j + + b1 M 1 + b0 M 0 + b1 M 1 + + bk M k
(1.5)
onde os coecientes am , am1 , , a1 , a0 , a1 , , an1 , an so conhecidos e os coecientes bj , bj1 , , b1 , b0 , b1 , , bk1 , bk devem ser
determinados. Observe que bj , bj1 , , b1 , b0 , b1 , , bk1 , bk devem
ser expressos com smbolos de dgitos da N-representao. Para realizar a
converso dividiremos x em uma parte inteira i e uma parte fracionria f .
Ns temos i = bj M j + + b1 M 1 + b0 M 0 , e dividindo i por M ns obtemos
um quociente q1 e um resto r1 = b0 . Continuando, dividiremos q1 por M ,
ns conseguiremos q2 e o resto r2 = b1 , e, obviamente, b0 , b1 , b2 , so os
restos consecutivos quando i dividido repetitivamente por M . De forma
semelhante ns encontramos a parte fracionria como as partes inteiras consecutivas quando f multiplicado repetitivamente por M e a parte inteira
removida. Os clculos devem ser feitos na N-representao e M deve ser
tambm dado nesta representao.
O nmero inteiro binrio obtido atravs dos restos das divises escritos
na ordem inversa da sua obteno. Ento 26110 = 1.0000.01012 .
Frao: Multiplicao sucessiva da frao decimal por 2
1.4.
COMPUTAES NUMRICAS
Multiplicao
Sobra
0,359x2 = 0,718
0
0,718x2 = 1,436
1
0,436x2 = 0,872
0
0,872x2 = 1,774
1
0,774x2 = 1,488
1
0,488x2 = 0,976
0
0,976x2 = 1,952
1
0,952x2 = 1,904
1
0,904x2 = 1,808
1
..
.. ..
..
.
. .
.
A frao binria obtida atravs das sobras, parte inteira, das multiplicaes
escritas na ordem direta de sus obteno. Ento 0, 35910 = 0, 0101.1011.1 2 .
Somando-se as partes inteiras e fracionrias dos binrios obtidos tm-se
261, 35910 = 1.0000.0101, 0101.1011.1 2
nria.
261 3
0 87 3
0 29 3
2 9 3
0 3 3
0 1
O nmero inteiro ternrio obtido atravs dos restos das divises escritos
na ordem inversa da sua obteno. Ento 26110 = 100.2003 .
Frao: Multiplicao sucessiva da frao decimal por 3
CAPTULO 1.
Multiplicao
Sobra
0,359x3 = 1,077
1
0,077x3 = 0,231
0
0,231x3 = 0,693
0
0,693x3 = 2,079
2
0,079x3 = 0,237
0
0,237x3 = 0,711
0
0,711x3 = 2,133
2
0,133x3 = 0,399
0
0,399x3 = 1,197
1
..
.. ..
..
.
. .
.
A frao ternria obtida atravs das sobras, parte inteira, das multiplicaes escritas na ordem direta de sus obteno. Ento 0, 35910 =
0, 100.200.201 3 . Somando-se as partes inteiras e fracionrias dos binrios obtidos tm-se
261, 35910 = 100.200, 100.200.201 3
decimal.
1.4.
COMPUTAES NUMRICAS
A frao hexadecimal obtida atravs das sobras, parte inteira, das multiplicaes escritas na ordem direta de sus obteno. Ento
0, 35910 = 0, 5 11 14 7 6 12 8 11 4 16
Conv10.sce
Este roteiro Scilab realiza a converso de inteiros na base 10 para base
qualquer.
1.
2.
3.
4.
5.
6.
7.
10
CAPTULO 1.
8. end
9. endfunction
ConvF10.sce
Este roteiro Scilab realiza a converso de fracionrios na base 10 para
base qualquer.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
1.4.
COMPUTAES NUMRICAS
11
0,1.0.0.2.0.0.2.0.1.
-->
-->convF10(0.359,16,9)
ans =
0,5.11.14.7.6.12.8.11.4.
-->
Conv10X.sce
Este roteiro Scilab realiza a converso de um nmero na base 10 para
base qualquer (combina Conv10.sce e ConvF10.sce ) .
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
12
CAPTULO 1.
1.0.0.0.0.0.1.0.1.,0.1.0.1.1.0.1.1.1.
-->
-->conv10X(261,16,0)
ans =
1.0.5.,
-->
-->conv10X(0.359,16,9)
ans =
,5.11.14.7.6.12.8.11.4.
-->
-->conv10X(261.359,16,9)
ans =
1.0.5.,5.11.14.7.6.12.8.11.4.
-->
Exemplo 4
261, 35910
= 1.0000.0101, 0101.1011.12
Parte inteira
1 28 + 0 27 + 0 26 + 0 25 + 0 24 + 0 23 + 1 22 + 0 21 + 0 20
= 261
Parte fracionria
0 21 + 1 22 + 0 23 + 1 24 + 1 25 + 0 26 + 1 27 +
1 28 + 1 29
= 0, 3574
Erro
|261, 359 261, 3574| = 0, 0016
Exemplo 5
261, 35910
= 100.200, 100.200.2013
Parte inteira
1 35 + 0 34 + 0 33 + 2 32 + 0 31 + 0 30
= 261
1.4.
COMPUTAES NUMRICAS
13
Parte fracionria
1 31 + 0 32 + 0 33 + 2 34 + 0 35 + 0 36 + 2 37 +
0 38 + 1 39
= 0, 35899
Erro
|261, 359 261, 35899| = 0, 00001
Exemplo 6
261, 35910
= 105, 5 11 14 7 6 12 8 11 416 ou seja,
261, 35910
= 105, 5BE.76C.8B416
Parte inteira
1 162 + 0 161 + 5 160 = 261
Parte fracionria
5
11
14
7
6
12
8
11
4
+ 2+ 3+ 4+ 5+ 6+ 7+ 8+ 9
1
16
16
16
16
16
16
16
16
16
= 0, 35899999999674
Erro
|261, 359 0, 35899999999674|
= 3, 24 1012
(1.6)
e armazenado como n3 n2 n1 n0 .
14
CAPTULO 1.
(1.7)
xi i
i=k
xi i
i=3
b) Representao do ponto-utuante
Em geral, um nmero x na representao do ponto-utuante tem a forma seguinte:
x = m k
(1.8)
onde
m=
m=
mi i
i=l
(onde
k=
expoente, um inteiro.
Observao 1
m1 = 0 ou
1
< m < 1 (signica que devemos ter um digito no
Observao 2
1.4.
15
COMPUTAES NUMRICAS
Exemplo 7
normalizada.
Reescrevendo o nmero para a forma N = 0.192 106 , o nmero ca na representao do ponto-utuante, o expoente igual a -6, a mantissa igual a -0.192
e a base 10.
Escrevendo agora os nmeros: x1 = 0.53; x2 = 8.472; x3 = 0.0913; x4 =
35391.3 e x5 = 0.0004 , onde todos esto na base = 10, em ponto utuante na
forma normalizada:
x1
x2
x3
x4
x5
M,
usa-se a
notao:
Um
0.m1 m2 m3 mt k
onde
m1 = 0
(1.9)
m k M .
Exemplo 8
Observe que os nmeros x4 = 35391.3 e x5 = 0.0004 no podem ser representados no sistema. De fato, o nmero 35391.3 = 0.353913 105 tem o expoente maior
que 2, causando overow, por outro lado 0.0004 = 0.4 103 e assim o expoente
menor que 2 causando underow.
Exemplo 9
malizada.
0.27143247 107
0.27072236 107
0.00071011 107
16
CAPTULO 1.
0.00053474839
47
0.53474839 10
3 4 7
4 8
3 9
4 7
sinal
caracterstica = expoente + 50
50 k 49.
seguinte:
sinal
caracterstica
31
mantissa normalizada
onde
sinal = sinal do nmero codicado, 0 se positivo e 1 se negativo;
caracterstica = 128 + expoente (resultado escrito em binrio);
mantissa = frao binria normalizada.
Exemplo 10
Represente o nmero 12.625 numa palavra de 32 bits conforme esquema de representao acima.
12 2
0 6
0
2
3 2
1 1
Multiplicao
0.625x2 = 1.25
0.25 x2 = 0.50
0.5 x2 = 1.0
12.62510 = 1100.1012 = 0.1100101 24
Ajustando a caracterstica: 4 + 128 = 132
Sobra
1
0
1
1.4.
17
COMPUTAES NUMRICAS
132 2
0 66
0
2
33 2
1 16 2
0 8 2
0 4 2
0 2 2
0 1
13210 = 100001002
8
0 0
0 0 1
0 0
31
1 1
0 0 1
0 1
0......0
Princpios semelhantes
Os
1- Caractersticas iguais:
32109876 54
+12340123 54
44449999 54
O resultado ser
ajustado.
51319212 55
+98756431 55
150075643 55
estouro
caracterstica
Resulta em:
15007564 56
caracterstica ajustada
3- Caractersticas distintas:
menor valor.
18
CAPTULO 1.
31411122 55
+12344321 53
31411122 55
+00123443 55
31534565 55
resulta em:
Normaliza-se o resultado.
12210000 71
31313142 51
12315782 65
mantissa
caracterstica
ajuste
+50
= 51 + 65 50 = 66,
onde
50
A produto :
38564583 65
numricos devem ser avaliados. Nas sees seguintes os quatro tipos de erros so
caracterizados.
1.5.
19
ANLISE DE ERROS
constante gravitacional
l,
e a
resultados obtidos pelo algoritmo dos da soluo do problema matemtico denotado por erro de algoritmo.
Exemplo:
A soluo do sistema de equaes
Ax = b,
A Rnxn ,
b, x Rn
n3 .
x
e
satisfazendo
||Ae
x b|| <
suciente, o custo computacional pode ser reduzido signicativamente. Se
no
ln(2/)
,
2
2 := A2
A1
2
somente
20
CAPTULO 1.
Exemplo 11
xk
k=0
k!
com
Pn (x) =
xk
k=0
k!
Exemplo 12
I=
f (x)dx
a
so aproximados por somas nitas envolvendo uma malha de pontos xi [a, b], i =
1, 2, n que pertencem ao conjunto de nmeros de pontos utuantes e as correspondentes avaliaes aproximadas das funes {f (x1 ), f (xn )}. Os erros de arredondamento comprometem a exatido dos resultados quando tenta-se minimizar
os erros de truncamento renando-se a malha de discretizao.
x
e
No clculo prtico
x aproximado
x
e x o erro
inicial, enquanto 1
= f (e
x)f (x) o erro propagado correspondente. Normalmente
f1 (freqentemente uma expanso em srie
truncada). A diferena 2 = f1 (e
x) f (e
x) o erro de truncamento. Os
de potncia
f2 (e
x)
no lugar de
f1 (e
x),
Na
1.6.
21
PROPAGAO DE ERROS
3 = f2 (e
x) f1 (e
x)
= f2 (e
x) f (x) = 1 + 2 + 3 .
Exemplo 13
para xe = 0.3333
2 = f1 (e
x) f (e
x) =
x2
x3
x4
x
+
+
+
1!
2!
3!
4!
)
0.33336
0.33335
+
+ = 0.0000362750
5!
6!
f2 (e
x) = 1 + 0.3333 + 0.0555 + 0.0062 + 0.0005 = 1.3955
f1 (e
x) = 1.3955296304 obtidos com 10 decimais
3 = 0.0000296304
= 1.3955 e1/3 = 3 + 3 + 3 = 0.0001124250
o nmero exato e
x
e
uma
Erro absoluto : = |x x
e|
e
x
e
Erro relativo : = x ,
x
x
(1.10)
(1.11)
de uma unidade se ele for par e deixado inalterado se for impar ( a regra pode
ser o contrrio: o digito na posio
22
CAPTULO 1.
Exemplo 14
3.1415926535
Arredondamento:
3.14 (2d)
3.141 (3d)
3.1416 (4d)
3.1415927 (7d)
onde (nd) = nmero de casas decimais.
Pode-se dizer de forma simplria que dgitos signicativos so aqueles que tm
informao sobre a dimenso do nmero sem contar com a parte exponencial. Naturalmente um dgito
um mais direita. Quando um nmero escrito com somente seus dgitos signicativos estes formam uma cadeia de smbolos que comea com o primeiro dgito
diferente de zero. Portanto se a parte fracionria termina com um ou vrios zeros,
eles so signicativos por denio.
somente com o conhecimento da situao que podemos decidir se eles so signicativos ou no. Por exemplo,
(x1 , x2 , ..., xn )
f (x1 , x2 , . . . , xn )
com
mente que
f =
f
f
f
x1 +
x2 + +
xn
x1
x2
xn
(1.12)
onde os termos de ordem superior foram desprezados. O erro mximo dado por
f
f
f
|xn |
|f | =
|x1 | +
|x2 | + +
x1
x2
xn
(1.13)
O limite superior do erro geralmente bastante pessimista, em computaes prticas os erros tm uma tendncia a cancelar [13]. Por exemplo, se
20000
nmeros
1
104 20000 = 1
2
x
y
Clculo de z = .
( )
x
x
e
x+
Calcula-se z =
= =
+
y arredondado
ye
y+
ento
z
=z+
1
x
2 +
y
y
1.6.
23
PROPAGAO DE ERROS
Caso A:
x=8
= 0.009
x
e=x+
y=5
= 0.04
ye = y +
x
= 1.6
y
x
e
= 1.589
ye
z+
1
x
2 + = 1.589
y
y
Caso B:
x=8
= 0.07
x
e=x+
y=5
= 0.08
ye = y +
x
= 1.6
y
x
e
= 1.561
ye
z+
1
x
2 + = 1.56
y
y
Exemplo 16
Exemplo 17
24
CAPTULO 1.
x = 4561 y = 0.3472
(y + x) x = (0.3472 + 4561) 4561 = 4561 4561 = 0.0000
y + (x x) = 0.3472 + (4561 4561) = 0.3472 + 0.0000 = 0.3472
Vejamos agora um exemplo (usando-se uma mquina com quatro dgitos decimais na mantissa da representao) que viola a lei distributiva.
Exemplo 18
Exemplo 19
x1 =
b+
b2 4
b b2 4
e x2 =
2
2
Se b < 0 e << b , x2 expresso como a diferena de dois nmeros praticamente iguais e poder perder muitos dgitos signicativos.
Se x2 for reescrito como:
x2 =
=
x1
b + b2 4
a raiz aproximadamente
=
= 0.0033 um resultado mais preciso.
usando a relao x2 =
x1
300.0
x1 =
Exemplo 20
e
. Se quisermos
Sabe-se que para x grande senh(x)
= cosh(x)
=
2
calcular ex podemos dizer que ex = cosh(x) senh(x), o que conduz a um
1
cancelamento perigoso. Por outro lado ex =
fornece resultados
mais precisos.
cosh(x) + senh(x)
1.6.
25
PROPAGAO DE ERROS
[x] = [x, x]
x, x F, em vez de nmeros reais simples x. As
+, , , so denidas atravs de intervalos. Algoritmos
intervalares so implementados em computadores produzindo resultados intervalares garantidos conterem a soluo desejada.
A aritmtica intervalar deve ser usada com bastante senso crtico, caso contrrio os resultados conveis de limites de erro sero, na maioria das vezes, muito
pessimsticos.
Exemplo 21
usando
y = 1 + (x 1)3
[y] = [0.9989, 1.0011] (resultado otimo)
Para o sucesso da aplicao da aritmtica intervalar necessrio desenvolver
novos algoritmos que produzam limites de erros aceitveis. Um tratamento mais
profundo da aritmtica intervalar pode ser visto em Moore [5], Alefeld [6] e Kulish [7]
(para incluso dos arredondamentos direcionados da aritmtica de ponto utuante).
[eps, eps]
onde
|| eps
. Alem
:= E() = 0,
2 = E(2 ) =
1
2 eps
[eps, /eps],
eps
t2 dt =
eps
obtm-se
1
eps2 =: 2
3
(1.14)
26
CAPTULO 1.
x e varincia
x, y
, R:
(1.15)
E(y),
que satisfeita se
x, y .
xey
E(xy) = E(x)
so independentes. Assim
xy = E(x y) = E(x)E(y) = x y
2
= E(x y E(x)E(y))2 = x2 y2 2x 2y
xy
= x2 y2 + 2x y2 + 2y x2
(1.16)
varincias relativas
z = x + y ou z = x y :
z = x y ou z = x y :
2z =
( xz )2 2x + ( yz )2 2y + 2
2z =
2x + 2y + 2
2r
engenharia eltrica e eletrnica, na qual os padres so desenvolvidos pela IEC (International Electrotecnical Commission).
Nos anos 70 tentou-se desenvolver padres para a aritmtica de ponto utuante
binria para microcomputadores. Um dos principais objetivos era tornar programas
mias portveis para que tcnicas de programao particulares usadas para tratar
1.7.
27
Em 1984 o
IEC decide considerar este padro nacional um padro internacional , IEC 559:1989
da aritmtica de ponto utuante para sistemas de microcomputadores. O padro
relacionado IEEE 854-1987 generaliza 754 para cobrir tanto decimal como binrio.
Padro IEEE 754 ponto utuante a representao mais comum hoje em dia
para os nmeros reais em computadores, incluindo PC com processador Intel, Macintoshes e a maioria das plataformas Unix.
32.45
ou
00.03.
Outra possibilidade
usar racionais e representar cada nmero como a razo entre dois inteiros.
A representao de ponto utuante - a soluo mais usual - basicamente representa reais em notao cientca. A notao cientca representa os nmeros como
um nmero de base e um expoente. Por exemplo, 123.123 pode ser representado
2
como 1.23123 10 . Em hexadecimal, o 123.FAC nmero pode ser representado
2
como 1.23FAC 16 .
A representao de ponto utuante resolve alguns problemas de representao.
O Ponto xo tem uma janela xa de representao, o que limita de representar
nmeros muito grandes ou muito pequenos. O ponto xo propenso a uma perda
de preciso quando dois grandes nmeros so divididos.
A representao de ponto utuante emprega uma janela deslizante de preciso adequada escala do nmero.
0, 0000000000000001
1.000.000.000.000
com facilidade.
bits
O nmero de
bits
para
28
CAPTULO 1.
Preciso
Sinal
Expoente
Frao
Simples
1 [0]
8 [1-8]
23 [9-31]
Deslocamento
127
Dupla
1 [0]
11 [1-11]
52 [12-63]
1023
Gracamente:
0
sinal
31
caracterstica
mantissa
e
0
sinal
11
12
63
caracterstica
mantissa
O bit de sinal
O bit de sinal simples:
denota um nmero
O expoente
O campo de expoente precisa representar expoentes positivos e negativos.
Para
11
bits e um deslocamento de
1023.
A mantissa
A mantissa, tambm conhecida como o signicando, representa os
bits
de preciso
4957
Por
4957 100
0.4957 104
4.957 103
0.004957 106
Para maximizar a quantidade de nmeros representveis, os nmeros de ponto
utuante so normalmente armazenados na forma normalizada. Na forma norma3
lizada 4957 representado como 4.957 10 .
Uma otimizao pequena e agradvel est disponvel na base dois, j que a
nica forma possvel do dgito zero 1.
1,
29
1.7.
24 bits
23 bits.
Ressumindo:
1. O
bit
de sinal
para positivo,
para o negativo.
1023
4. O primeiro
bit
127
campo frao de
bits.
1.f ,
onde
overows ).
(2 2precisao ) 2deslocamento e
(2 2precisao ) 2deslocamento
2(1deslocamento) e
1deslocamento
que 2
so
underows ).
Preciso
Simples
Dupla
Desnormalizados
2149 1044.85 at
e
(1 223 ) 2126 1037.93
21074 10323.31 at
e
(1 252 ) 21022 10307.65
insuci-
Normalizados
2126 1037.93 at
e
(2 223 ) 2127 1038.53
21022 10307.65 at
e
(2 252 ) 21023 10308.25
bit
lder especial,
Zero.
(2 223 ) 2127 .
2
149
underow
. (
2149 . (underow
(overow negativo)
negativo)
positivo)
30
CAPTULO 1.
(2 223 ) 2127 .
(overow positivo)
menos grave, porque ele apenas denota uma perda de preciso, que garantido ser
muito prximo de zero.
Segue uma tabela com o intervalo efetivo (excluindo valores innitos) de nmeros IEEE de ponto utuante:
Preciso
Simples
Dupla
Binrio
(2 223 ) 2127
(2 252 ) 21023
Decimal
1038.53
10308.25
Observao 3
Zero
Como mencionado acima, o zero no diretamente representvel no formato direto,
devido suposio de um
zero real para produzir o valor de zero). Zero um valor especial denotado com
um campo de expoente zero e um campo de mantissa zero. Observe que
0 e 0 so
Desnormalizados
Se o expoente todo de
0's,
onde s o
bit
de sinal e
s
Innito
Os valores (+)innito (+) e (-)innito (), so indicados com um expoente de
1's
e uma mantissa de
0's.
bit
innito negativo. Ser capaz de denotar o innito como um valor especco til
overow ).
As
1.7.
31
No um nmero
Not a Number ) usado para representar um valor que no representa
bits com um expoente
O valor NaN (
1's
Quiet
bits
na mantissa.
QNaN propaga livremente atravs da maioria das operaes aritmticas. Estes valores saltam de uma operao quando o resultado no denido matematicamente.
Um SNaN um NaN com o bit mais signicativo da mantissa limpa.
Ela
usada para sinalizar uma exceo quando utilizado em operaes. SNaN pode ser
til para atribuir a variveis no inicializadas como armadilha de uso prematuro.
Semanticamente, QNaN denotam operaes
indeterminadas,
enquanto SNaN
F(, t, m, M, dnorm)
Quatro parmetros e um valor booleano:
1. Base:
2. Preciso:
t2
3. menor expoente:
m<0
4. maior expoente:
M >0
booleano
dnorm
F(, t, m, M, dnorm)
satisfaz
as seguintes relaes
F(b, p, emin , emax , true) = FN (b, p, emin , emax ) FD (b, p, emin , emax )
F(b, p, emin , emax , f alse) = FN (b, p, emin , emax ).
Exemplo 22
32
CAPTULO 1.
Exemplo 23
F(16, 6, 64, 63, f alse) para short precision, F(16, 14, 64, 63, f alse)
cision e F(16, 28, 64, 63, f alse) para extended precison.
Exemplo 24
(Cray) Fornece dois sistemas de numerao F(2, 48, 16384 , 8191, f alse)
e F(2, 96, 16384, 8191, f alse).
Exemplo 25
Exemplo 26
Sabemos que os nmeros reais podem ser representados por uma reta
contnua. Entretanto, em ponto utuante podemos representar apenas pontos discretos da reta real. Para ilustrar este fato consideremos o seguinte exemplo.
Quantos e quais nmeros podem ser representados no sistema FN (2, 3, 1, 2)?
Tem-se duas possibilidades para o sinal, uma possibilidade para m1 , duas para
m2 , duas para m3 e quatro para as formas de k . Fazendo o produto 2 1 2 2 4
obtm-se 32. Portanto neste sistema pode-se representar 33 nmeros visto que o
zero faz parte de qualquer sistema. Para responder quais so os nmeros lista-se
as formas da mantissa: 0.100, 0.101, 0.110 e 0.111 e as formas de k so: 21 , 20 ,
21 e 22 . Tem-se ento os seguintes nmeros:
0.25(10)
21
20 0.5(10)
0.100(2)
21 = 1.0(10)
22
2.0(10)
21
0.3125(10)
20 0.625(10)
0.101(2)
21 = 1.25(10)
2.5(10)
22
21
0.375(10)
20 0.75(10)
0.110(2)
21 = 1.5(10)
3.0(10)
22
1.8.
33
21
0.4375(10)
20 0.875(10)
0.111(2)
21 = 1.75(10)
3.5(10)
22
Exemplo 27
Considerando o mesmo sistema do exemplo 26, represente os nmeros: x1 = 0.48, x2 = 4.8 e x3 = 0.18 dados na base 10.
Soluo:
ento se usa preciso dupla para tentar remediar diculdades e, se ainda assim, a
preciso dupla insuciente, tenta-se a preciso estendida. Contudo esta estratgia
prejudica a portabilidade dos programas, pois poucos sistemas de computadores
fornecem mais que dois nveis de preciso.
limitado: existem raramente quatro nveis, ento o nvel de preciso pode no ser
adaptado aos requisitos de uma aplicao particular. Uma soluo o uso de um
software de preciso mltipla (Maple, Matlab, etc.)
(n = 1)
porque a equao
f(x) = 0
com f : F F
Exemplo 28
34
CAPTULO 1.
1
(1.17)
ln( x)2 + 1
4
Tem duas razes no intervalo [3.14, 3.15]; 1 [3.14, ] e 2 [, 3.15]. Estes
f (x) = 3x2 +
Para todo x F(2, 53, 1021, 1024, true) para a qual 1.17 pode se calculado. Os
dois zeros de f ,
x1 10647 e x2 + 10647
Exemplo 29
1.9.
35
F(2, 24, 125, 128, true), i.e., com uma aritmtica de preciso simples IEC/IEEE];
para x > 1 existem milhares de pontos com valores P7 < 0, embora P7 > 0 nesta
regio e, similarmente, para x < 1 existem milhares de pontos com valores P7 > 0,
embora P7 < 0 nesta regio. A fenmeno do Caos surge do cancelamento dos dgi-
tos mais signicativos (ver gura 4.10 e 4.11 [1], pag 145).
Exemplo 30
8 3
0
7 8 3
7 8 3
.
.
.
A=
.
.
.
7 8 3
0
7 8
b=
11
18
18
.
.
18
15
A gura 1.2 mostra uma planilha Mathcad para resoluo do sistema linear
Embora o residual seja praticamente zero para todos as componentes do
vetor soluo,
temos um resultado numericamente insatisfatrio:
A x = b.
x=
1
1
1
1
1
= soluo EXATA !
Exemplo 31
(avaliao de funo)
Abaixo vamos avaliar a funo f (x, y) = 333.75 y 6 + x2 (11 x2 y 2 y 6
121 y 4 2) + 5.5 y 8 + x/(2 y) usando o Maple com preciso variada. A gura
1.3 mostra a planilha Maple onde s a partir de 37 dgitos que os resultados
apresentados so numericamente vlidos.
36
CAPTULO 1.
1.10.
37
EXERCCIOS PROPOSTOS
35
2000
b)
h)
2345
655
c)
i)
0.1218
722
d)
j)
67.67
3.6 1021
e)
l)
95
231
f)
2500
2.5 1018
m)
1011012
0.1111111012
g) 111010110112
j) 0.0011001012
1101010112
0.00001012
h) 0.11000012
a)
b)
c)
d)
e)
f)
i)
0.11012
101012
0.1011001111012
27.534
11.01112
b)
f)
89.901
111.01012
18 1021
g) 0.001012
c)
d)
h)
1.3756 107
1110101012
0010.0101.0000.0001.0001.1001.1100.1110
Se o primeiro bit o sinal do nmero, os oito seguintes a caracterstica obtida
com adio de 128 ao expoente do nmero ponto-utuante, e os 23 restantes so a
mantissa, responda s questes seguintes:
1000.0000.0110.1101.1010.1101.1011.0110
6) Para a representao da questo 4, quais so aproximadamente o maior e o
menor nmero, o menor nmero positivo e o prximo menor nmero positivo.
7) Represente os nmeros binrios da questo 2 na maquina binria que utiliza
o seguinte esquema de representao de ponto-utuante:
sinal
mantissa
caracterstica
38
CAPTULO 1.
b)
9) Seja um sistema de aritmtica de ponto-utuante na base decimal com quatro dgitos na mantissa e dois na caracterstica, 1 digito de sinal da mantissa e 1
digito sinal da caracterstica.
mantissa expoente
sinal
sinal
da mantissa do expoente
y = 0.2145 103
z = 0.2585 101
b) x y z
c) x/y
d) (xy)/z
e) x(y/z)
x4
3+
x6
Bibliograa
[1] C.W. Ueberhuber: Numerical Computation: Methods, software and
analysis. Springer Berlin Heidelberg (1997) Vol. 1 474 pages
[2] J. Stoer, R. Bulirsh: Introduction to Numerical analysis. 2nd ed.
Springer-Verlag, Berlin Heidelberg New York Tokio (1993)
[3] J.F. Traub, H. Wozniakowski: On the Optimal Solution of Large Linear
Systems. J. Assoc. Comp. Mach. 31 (1984), pp. 545-559.
[4] R.W. Hamming, E.A. Feigenbaum Introduction to applied numerical
analysis. McGraw-Hill, Inc New York (1971)
[5] R.E. Moore: Interval Analysis. Prentice Hall, Englewood Clifs, NJ, USA
(1966)
[6] G. Alefeld, J. Herzberger: Introduction to Interval Computations. Academic Press, New (1966)
[7] U.W. Kulish and W.L. Miranker: The Arithmetic of the Digital Computers: A New Approach. SIAM Review 28, 1 (1986)
[8] Rademacher, H, A.: On the accumulation of errors in processes of integration on higg-speed calculating machines. Procedings of a symposium
on large-scale digital calculating machinary. Annals Comp. Labor. Havard Univ. 16 (1948) pp 176-185
[9] Sterbenz, P.H.: Floating Point Computation. Prentice Hall, Englewood
Clifs, NJ, USA (1974)
[10] Bailey, D.H.: MPFUN - A portable High Performance Multiprecision
Package. NASA Ames Tech. Report RUR-90-022, (1990)
[11] Goldeberg, D: What Every Computer Scientist Should Know About
Floating-Point Arithimethic. ACM Computing Surveys, 23 (1991) pp
5-48
[12] C.W. Ueberhuber: Numerical Computation: Methods, software and
analysis. Springer Berlin Heidelberg (1997) Vol. 2 495 pages
39
40
BIBLIOGRAFIA
[13] Frberg, C-E.: Introduction to numerical analysis. 2nd ed. AddisonWesley Pub. Co. , Reading, Mass, , 1965
[14] Sli, E and Mayers, D. F.: An Introduction to Numerical Analysis.
Cambridge University Press, 2003
[15] Conte, S.D. and Boor, C.: Elementary Numerical Analysis: An algorithmic approach. 3rd ed. McGraw-Hill Book Company, New York, 1980