Escolar Documentos
Profissional Documentos
Cultura Documentos
1016 ´ 1
x “ ˘0.d1 d2 d3 . . . dt ˆ β e ,
em que
‚ β é a base;
‚ t é o número de dígitos na mantissa, com d1 ‰ 0 e
0 ď dj ď β ´ 1, para todo j “ 1, . . . , t.
‚ e é o exponente, com ´m ď e ď M.
Denotamos por F pβ, t, m, Mq o conjunto de todos os pontos
flutuantes para β, t, m e M fixos e adicionando algumas exceções
como o zero.
Exemplo 2
Considere o sistema F p10, 3, 2, 2q. Represente nesse sistema, se
possível, os números:
Resposta:
Resposta:
flpx1 q “ 0.123 ˆ 104 , flpx2 q “ ´0.550 ˆ 10´3 ,
flpx3 q “ 0.100 ˆ 101 .
Para x4 e x5 tem-se overflow e underflow, respectivamente.
|x ´ x̄| ď ε|x|.
Proposição:
Para qualquer número real x dentro dos limites de representação
do sistema, existe ε com |ε| ď εmach tal que
x g y “ flpx ˚ y q.
Em vista do axioma das operações de ponto flutuante, tem-se:
Proposição:
Para quaisquer x, y P F pβ, t, m, Mq, existe ε com |ε| ď εmach tal
que
x g y “ px ˚ y qp1 ` εq,
em que ˚ denota uma operação aritmética básica e g seu
análogo em ponto flutuante.
Resposta:
(a) px ‘ y q ‘ z “ 0.197 ˆ 102 e x ‘ py ‘ zq “ 0.196 ˆ 102 .
x by 1
´y ¯
(b) “ 0.719 ˆ 10 e x b “ 0.718 ˆ 101 .
z z
(c) y b pz ‘ xq “ 0.523 ˆ 101 e py b zq ‘ py b xq “ 0.524 ˆ 101 .
Ao contrário das operações com números reais, as operações de
ponto flutuante não são nem associativas e nem distributivas!
Exemplo 6 (Identidade Não-Nula)
Introduzimos ao GNU Octave os seguintes comandos:
» a = 1; b = 1; while a+b > a; b = b/2; end
Note que
» a+b = a,
ou seja, existe na aritmética de ponto flutuante um número b ‰ 0
tal que a ` b “ a.
Exemplo 7 (Estimatimando de π)
Considere a seguinte sequencia de comandos que, teoricamente,
forneceria uma estimativa para o número π:
» z(2)=2;
» for n=2:30;
z(n+1)=2ˆ(n-0.5)*sqrt(1-sqrt(1-(z(n)ˆ2)*4ˆ(1-n)));
end
» semilogy(abs(z(2:end)-pi)/pi);
O último comando produz o seguinte gráfico do erro relativo da
estimativa para π:
100
10-2
Erro Relativo
10-4
10-6
10-8
10-10
0 5 10 15 20 25 30
n
p1 ` xq ´ 1
“ 1,
x
para todo x ‰ 0.
No GNU Octave, porém, encontramos o seguinte:
» x = 1.e-15;
» ((1+x)-1)/x
ans = 1.1102
Note que temos um erro relativo superior a 11% devido ao
cancelamento de algarismos significativos.