• Nenhum resultado encontrado

Aula 4 (10/08/2017)- Representação e Operações Aritméticas em Ponto Flutuante.

N/A
N/A
Protected

Academic year: 2021

Share "Aula 4 (10/08/2017)- Representação e Operações Aritméticas em Ponto Flutuante."

Copied!
22
0
0

Texto

(1)

MS211 - Cálculo Numérico

Aula 4 – Representação e Operações Aritméticas em Ponto Flutuante.

(2)

Introdução

Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente a fatoração LU, com pivoteamento parcial.

Destacamos que, à princípio, esses métodos fornecem a solução de um sistema linear

Ax “ b,

em queA é uma matriz não singular, i.e., detpAq ‰ 0.

Na prática, porém, devemos estar cientes da limitação imposta pela representação de números reais num computador.

(3)

Exemplo - Problemas Numéricos

Considere os sitema linear „1 1016 1 1  „x1 x2  “„10 16 0  .

Resolvemos ele no GNU Octave fornecendo os seguintes comandos e obtendo a seguinte resposta:

» A = [1, 1.e+16; 1, 1]; » b = [1.e+16; 0];

» x = Azb

warning: matrix singular to machine precision, rcond = 1e-16

ans =

1.0000e-16 1.0000e+00

(4)

Em palavras, o GNU Octave forneceu como solução do sistema linearAx “ b o vetor: ˜ x “„10 ´16 1  «„0 1  . Contudo, a solução correta do sistema linear é

x˚ “ » — — – ´ 10 16 1016´ 1 1016 1016´ 1 fi ffi ffi fl «„1 1  .

Note que a primeira componente da solução ˜x fornecida pelo GNU Octaveé muito diferente da primeira componente da solução corretax˚!

Parte do problema é resultado da representação de números reais nos computadores usuais, chamada representação em ponto flutuante.

(5)

Representação em Ponto Flutuante

Definição 1 (Sistema de Ponto Flutuante)

Um número real x ‰ 0 é um ponto flutuante (normalizado) se pode ser escrito como

x “ ˘0.d1d2d3. . .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.

(6)

Exemplo 2

Considere o sistema F p10, 3, 2, 2q. Represente nesse sistema, se possível, os números:

x1“ 0.35, x2“ ´5.17, x3“ 0.0123, (1)

x4“ 5390, x5“ 0.0003. (2)

(7)

Exemplo 2

Considere o sistema F p10, 3, 2, 2q. Represente nesse sistema, se possível, os números:

x1“ 0.35, x2“ ´5.17, x3“ 0.0123, (1)

x4“ 5390, x5“ 0.0003. (2)

Esboce, na reta, o conjunto F p10, 3, 2, 2q. Resposta:

x1“ 0.350 ˆ 100, x2“ ´0.517 ˆ 101, x3“ 0.123 ˆ 10´1.

O número 5390 “ 0.539 ˆ 104não pode ser representado porque seu expoente é maior que 2. Tem-se overflow.

O número 0.0003 “ 0.300 ˆ 10´3não pode ser representado

(8)

A maioria dos computadores trabalha com a base β “ 2. Esse não é um problema, pois o mesmo número pode ser

representado usando bases diferentes.

Veja, por exemplo no livro texto “M. Ruggiero e V. Lopes. Cálculo Numérico - Aspectos Teóricos e Computacionais, 2aedição, Editora Pearson, 1997”, como é feita a mudança de base!

Muitos softwares científicos usam o padrão IEEEprecisão dupla com 64 bits: 1 para o sinal, 11 para o expoente, 52 para a

mantissa.

O padrão IEEE precisão dupla é capaz de representar números positivos entre 1.79 ˆ 10308 e 2.23 ˆ 10´308, aproximadamente.

O padrão IEEE possui uma representação especial para o zero, Inf(obtido após a divisão por zero), e NaN (Not a Number, e.g. 0{0).

(9)

Arredondamento em Ponto Flutuante

O arredondamento em ponto flutuante é usado para representar um número real x , dentro dos limites de representação do sistema, que não pertence ao conjunto F pβ, t, m, Mq.

Especificamente, arredondar um número x em ponto flutuante consiste em encontrar ¯x P F pβ, t, m, Mq tal que |x ´ ¯x | seja o menor possível.

Denotaremos por fl a função que associa um número real x ao seu arredondamento em ponto flutuante, ou seja, ¯x “ flpxq. O valor |x ´ ¯x | é chamado erro absoluto de arredondamento. De um modo similar, o valor |x ´ ¯x |

|x | é chamadoerro relativo de arredondamento.

(10)

Exemplo 3

Represente no sistema F p10, 3, 5, 5q os números

x1“ 1234.56, x2“ ´0.00054962, x3“ 0.9995,

(11)

Exemplo 3

Represente no sistema F p10, 3, 5, 5q os números

x1“ 1234.56, x2“ ´0.00054962, x3“ 0.9995,

x4“ 123456.7, x5“ 0.0000001.

Resposta:

flpx1q “ 0.123 ˆ 104, flpx2q “ ´0.550 ˆ 10´3,

flpx3q “ 0.100 ˆ 101.

Para x4e x5tem-se overflow e underflow, respectivamente.

Para arredondar um número na base β “ 10, devemos apenas observar o primeiro dígito a ser descartado. Se ele for menor que 5, deixamos os dígitos inalterados; Se ele é maior ou igual a 5, devemos somar 1 ao último dígito remanescente.

(12)

Épsilon da Máquina

Definição 4 (Épsilon da Máquina)

O épsilon da máquina, denotado por εmach, é a metade da

distância entre 1 e o menor ponto flutuante estritamente maior que 1.

Pode-se mostrar que o épsilon de uma máquina de um sistema F pβ, t, m, Mq é

ε “ 1 2β

1´t.

No padrão IEEE precisão dupla, a precisão é εmach “ 2´52« 2.2 ˆ 10´16.

(13)

O εmachfornece um limitante superior para o erro relativo do

arredondamento em ponto flutuante.

Especificamente, para qualquer x dentro dos limites de representação do sistema, existe ¯x P F pβ, t, m, Mq tal que

|x ´ ¯x | ď ε|x|.

Esta última inequação resulta na seguinte afirmação: Proposição:

Para qualquer número real x dentro dos limites de representação do sistema, existe ε com |ε| ď εmach tal que

(14)

Aritmética de Ponto Flutuante

Além de representar números no computador, precisamos também efetuar operações com eles.

As operações aritméticas básicas `,´,ˆ e ˜ com números reais, quando realizadas no computador com sistema F pβ, t, m, Mq, serão denotadas por ‘, a, b e c.

As operações aritméticas de ponto flutuante são definidas de modo a satisfazer o axioma:

Axioma das Operações de Ponto Flutuante:

Sejam ˚ uma operação aritmética básica e g seu análogo em ponto flutuante. Para todo x , y P F pβ, t, m, Mq, deve-se ter

x g y “ flpx ˚ y q.

(15)

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.

Essa proposição estabelece uma relação entre a operação aritmética com números reais e seu análogo em ponto flutuante. Essa relação possui um papel importante na análise de erros de algoritmos, que exploraremos na próxima aula!

Por ora, gostaríamos de destacar que as operações de ponto flutuante não gozam de todas as propriedades das operações dos números reais!

(16)

Exemplo 5 (Associatividade e Distributividade) Considere o sistema F p10, 3, 5, 5q. Sejam x “ flp11.4q, y “ flp3.18q e z “ flp5.05q. Efetue as operações: (a) px ‘ y q ‘ z e x ‘ py ‘ zq. (b) y b x z e y z b x . (c) y b pz ‘ xq e y b z b y b x.

(17)

Exemplo 5 (Associatividade e Distributividade) Considere o sistema F p10, 3, 5, 5q. Sejam x “ flp11.4q, y “ flp3.18q e z “ flp5.05q. Efetue as operações: (a) px ‘ y q ‘ z e x ‘ py ‘ zq. (b) y b x z e y z b x . (c) y b pz ‘ xq e y b z b y b x. Resposta: (a) px ‘ y q ‘ z “ 0.197 ˆ 102e x ‘ py ‘ zq “ 0.196 ˆ 102. (b) x b y z “ 0.719 ˆ 10 1 e x b ´y z ¯ “ 0.718 ˆ 101. (c) y b pz ‘ xq “ 0.523 ˆ 101e 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!

(18)

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 Estaríamos num loop infinito se fizéssemos as mesmas operações com números reais.

Num computador, porém, encontramos

b “ 1.1102 ˆ 10´16 “ εmach 2 . Note que

» a+b = a,

ou seja, existe na aritmética de ponto flutuante um número b ‰ 0 tal que a ` b “ a.

(19)

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 π:

(20)

10-10 10-8 10-6 10-4 10-2 100 0 5 10 15 20 25 30 Erro Relativo n

Note que o erro decresce nas primeiras 16 iterações mas depois cresce devido aos erros de arredondamento.

(21)

Exemplo 8 (Cancelamento Numérico) Sabemos que a identidade

p1 ` x q ´ 1 x “ 1, 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.

Cancelamento de algoritmos significativos foram os responsáveis pelo erro numérico na solução dos sistema linear do primeiro exemplo da aula!

(22)

Na aula de hoje, apresentamos a representação dos números nos computadores usuais e destacamos erros que podem surgir na aritmética de pontos flutuantes.

Os erros de arredondamento, quando repetidos em algoritmos longos e complexos, podem ter efeitos cadastróficos. Exemplos incluem:

‚ Fracasso do mìssil Patriot durante a Guerra do Golfo em 1991, devido a um erro de arredondamento no cálculo de sua

trajetória.

‚ Explosão do míssil Arianne em Junho de 1996 devido à overflow no computador de bordo.

Na p´roxima aula, continuaremos nossos estudos sobre erros na resolução de sistemas lineares.

Referências

Documentos relacionados

Em pacientes submetidas previamente à radioterapia e/ou cirurgia, há dificuldade em se avaliar o envolvimento dos tecidos vizinhos, e uma exploração cirúrgica pode ser necessária

Mãos para fora, protegendo uma escrita seca de corpo molhado Anfíbio esse lugar.. Ela não obedece a gravidade sobe e toma todo o corpo folhas e

Deverão ser aceitos pelas empresas, como justificativa de faltas ao serviço, os atestados médicos fornecidos por médicos da Previdência Social Oficial (SUS) ou por esta

dade entre arte e verdade. A partir delas, Heidegger pondera que a filo- sofia de Nietzsche significa a inversão do platonismo – não a sua completa superação –, que no limite

Essa recuperação da função, i.e., alteração do comportamento ansioso nos animais nocautes para comportamento comparável ao dos controles, não ocorre se os

Neste domínio cabe dizer, dado o exposto acerca da possibilidade teórica de alteração ou cessação de um contrato em virtude de grave modificação das circunstâncias de base de

[r]

Se desejar obter aproveitamentos de estudos relativos a disciplinas cursadas em outro estabelecimento de ensino, que não a Instituição de origem e após a