MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf ·...

22
MS211 - Cálculo Numérico Aula 4 – Representação e Operações Aritméticas em Ponto Flutuante. Marcos Eduardo Valle

Transcript of MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf ·...

Page 1: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

MS211 - Cálculo NuméricoAula 4 – Representação e Operações Aritméticas em Ponto

Flutuante.

Marcos Eduardo Valle

Page 2: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

Introdução

Na aula anterior, apresentamos o método da eliminação deGauss, equivalentemente a fatoração LU, com pivoteamentoparcial.

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

Ax “ b,

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

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

Vejamos um simples exemplo.

Page 3: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

Exemplo - Problemas Numéricos

Considere os sitema linear„

1 1016

1 1

x1x2

1016

0

.

Resolvemos ele no GNU Octave fornecendo os seguintescomandos e obtendo a seguinte resposta:» A = [1, 1.e+16; 1, 1];» b = [1.e+16; 0];» x = Azbwarning: matrix singular to machine precision,rcond = 1e-16ans =

1.0000e-161.0000e+00

Page 4: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

Em palavras, o GNU Octave forneceu como solução do sistemalinear Ax “ b o vetor:

x “„

10´16

1

«

01

.

Contudo, a solução correta do sistema linear é

x˚ “

»

´1016

1016 ´ 11016

1016 ´ 1

fi

ffi

ffi

fl

«

11

.

Note que a primeira componente da solução x fornecida pelo GNUOctave é muito diferente da primeira componente da soluçãocorreta x˚!

Parte do problema é resultado da representação de númerosreais nos computadores usuais, chamada representação emponto flutuante.

Page 5: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

Representação em Ponto Flutuante

Definição 1 (Sistema de Ponto Flutuante)

Um número real x ‰ 0 é um ponto flutuante (normalizado) sepode 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 pontosflutuantes para β, t , m e M fixos e adicionando algumas exceçõescomo o zero.

Page 6: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

Exemplo 2

Considere o sistema F p10,3,2,2q. Represente nesse sistema, sepossí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.

Page 7: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

Exemplo 2

Considere o sistema F p10,3,2,2q. Represente nesse sistema, sepossí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ˆ 104 não pode ser representado porqueseu expoente é maior que 2. Tem-se overflow.O número 0.0003 “ 0.300ˆ 10´3 não pode ser representadoporque seu exponente é menor que -2. Tem-se um underflow.

Page 8: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

A maioria dos computadores trabalha com a base β “ 2. Essenão é um problema, pois o mesmo número pode serrepresentado usando bases diferentes.

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

Muitos softwares científicos usam o padrão IEEE precisão duplacom 64 bits: 1 para o sinal, 11 para o expoente, 52 para amantissa.

O padrão IEEE precisão dupla é capaz de representar númerospositivos 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).

Page 9: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

Arredondamento em Ponto Flutuante

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

Especificamente, arredondar um número x em ponto flutuanteconsiste em encontrar x P F pβ, t ,m,Mq tal que |x ´ x | seja omenor possível.

Denotaremos por fl a função que associa um número real x aoseu 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 |

é chamado erro relativo de

arredondamento.

Page 10: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

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.

Page 11: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

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 x4 e x5 tem-se overflow e underflow, respectivamente.

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

Page 12: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

Épsilon da Máquina

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

O épsilon da máquina, denotado por εmach, é a metade dadistância entre 1 e o menor ponto flutuante estritamente maiorque 1.

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

ε “12β1´t .

No padrão IEEE precisão dupla, a precisão é

εmach “ 2´52 « 2.2ˆ 10´16.

Page 13: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

O εmach fornece um limitante superior para o erro relativo doarredondamento em ponto flutuante.

Especificamente, para qualquer x dentro dos limites derepresentaçã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çãodo sistema, existe ε com |ε| ď εmach tal que

flpxq “ xp1` εq.

Page 14: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

Aritmética de Ponto FlutuanteAlém de representar números no computador, precisamostambé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 demodo a satisfazer o axioma:

Axioma das Operações de Ponto Flutuante:

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

x g y “ flpx ˚ yq.

É razoável assumir que o padrão IEEE satisfaz essa axioma!

Page 15: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

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 talque

x g y “ px ˚ yqp1` εq,

em que ˚ denota uma operação aritmética básica e g seuanálogo em ponto flutuante.

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

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

Page 16: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

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 ‘ yq ‘ z e x ‘ py ‘ zq.

(b)y b x

ze

yzb x .

(c) y b pz ‘ xq e y b z b y b x .

Page 17: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

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 ‘ yq ‘ z e x ‘ py ‘ zq.

(b)y b x

ze

yzb x .

(c) y b pz ‘ xq e y b z b y b x .

Resposta:(a) px ‘ yq ‘ z “ 0.197ˆ 102 e x ‘ py ‘ zq “ 0.196ˆ 102.

(b)x b y

z“ 0.719ˆ 101 e x b

´yz

¯

“ 0.718ˆ 101.

(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 deponto flutuante não são nem associativas e nem distributivas!

Page 18: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

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 mesmasoperaçõ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 ‰ 0tal que a` b “ a.

Page 19: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

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

Page 20: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

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 depoiscresce devido aos erros de arredondamento.

Page 21: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

Exemplo 8 (Cancelamento Numérico)

Sabemos que a identidade

p1` xq ´ 1x

“ 1,

para todo x ‰ 0.No GNU Octave, porém, encontramos o seguinte:» x = 1.e-15;» ((1+x)-1)/xans = 1.1102Note que temos um erro relativo superior a 11% devido aocancelamento de algarismos significativos.

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

Page 22: MS211 - Cálculo Numérico - Instituto de Matemática ...valle/Teaching/MS211/Aula04.pdf · Introdução Na aula anterior, apresentamos o método da eliminação de Gauss, equivalentemente

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

Os erros de arredondamento, quando repetidos em algoritmoslongos e complexos, podem ter efeitos cadastróficos. Exemplosincluem:‚ Fracasso do mìssil Patriot durante a Guerra do Golfo em 1991,

devido a um erro de arredondamento no cálculo de suatrajetória.

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

Na proxima aula, continuaremos nossos estudos sobre erros naresolução de sistemas lineares.

Muito grato pela atenção!