Você está na página 1de 37

Representao e erros numricos ca e

Marina Andretta/Franklina Toledo


ICMC-USP

03 de Agosto de 2012 Baseado no livro Anlise Numrica, de R. L. Burden e J. D. Faires. a e

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

1 / 37

Resoluo computacional de problemas ca

Temos interesse em resolver problemas reais, envolvendo clculos, usando a um computador. Isso porque o problema pode ser muito complexo ou muito grande para ser resolvido na mo. a

Para isso, transformamos o problema em uma formulao matemtica. ca a Este processo conhecido como modelagem. e

Depois da modelagem do problema, usamos o computador para resolver o problema matemtico. a

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

2 / 37

Resoluo computacional de problemas ca

Neste processo, muitos erros podem ser introduzidos: o modelo pode no a representar exatamente o problema, a medidas de dados podem conter erros, a resoluo pelo computador pode apresentar erros numricos, etc. ca e

Estes tipos de erros devem ser controlados para que a resposta obtida tenha alguma serventia.

Nesta disciplina, nos concentraremos mais nos erros que podem ser produzidos durante a resoluo do problema matemtico. ca a

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

3 / 37

Resoluo computacional de problemas: exemplo ca

Exemplo: como calcular a rea de um tanque circular para comprar a revestimento?

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

4 / 37

Resoluo computacional de problemas: exemplo ca

Primeiro: vamos calcular a rea do fundo do tanque. a reaFundo = R 2 a Agora vamos calcular a rea da lateral: a reaLateral = compCircunferncia * profundidadeTanque a e compCircunferncia = 2R e A rea total dada por: a e reaTotal = reaFundo + reaLateral a a a

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

5 / 37

Resoluo computacional de problemas: exemplo ca

Qual o valor de vamos usar? = 3.14 = 3.1416 = 3.141592654 Erro?

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

6 / 37

Resoluo computacional de problemas: exemplo ca


Suponha que: - raio: 10 metros - profundidade: 1,5 metros A rea total igual a: a e Para = 3.14 rea total = 314 + 94,2 = 408,200000 a Para = 3.1416 rea total = 314,160000 + 94,248000 = 408,408000 a Para = 3.141592654 rea total = 314,159265 + 94,247780 = 408,407045 a

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

7 / 37

Representao numrica ca e
A aritmtica usada por ns diferente da aritmtica usada pelas e o e e calculadoras e computadores. Estamos acostumados a verdades como 3 + 5 = 5 + 3 = 8, (7)2 = 7 e / = 1.

Estamos supondo, aqui, que os nmeros que usamos tem preciso innita. u a Que todos os nmeros podem ser representados. u

No entanto, quando usamos um computador para representar um nmero, u usamos um nmero nito de casas decimais. Isso j limita a representao u a ca a nmeros racionais. E, mesmo assim, nem todo nmero racional pode ser u u representado.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

8 / 37

Representao numrica ca e

O que acontece na prtica que substitu a e mos um nmero no u a representvel por um nmero prximo dele. Isso pode ser satisfatrio em a u o o algumas situaes. co

Mas preciso tomar cuidado e se lembrar sempre que estamos lidando e com uma aritmtica diferente quando fazemos contas no computador, j e a que estes erros estaro sempre presentes e devem ser controlados. a

O erro produzido pelo computador para realizar clculos com nmeros a u reais chamado de erro de arredondamento. e

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

9 / 37

Representao em ponto utuante ca

Em 1985, o IEEE (Instituto de Engenheiros Eltricos e Eletrnicos) e o publicou um relatrio chamado Binary Floating Point Arithmetic Standard o 754-1985.

Neste relatrio foram especicados formatos para preciso simples, dupla e o a extendida, que geralmente so seguidos pelos fabricantes de computadores. a

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

10 / 37

Representao em ponto utuante ca

Por exemplo, em um sistema de 64 bits para representar um real longo, os 64 bits so distribu a dos da seguinte maneira: O primeiro bit, denotado por s, um indicador de sinal (0 para e positivo e 1 para negativo). Em seguida, h 11 bits para um expoente, chamados de caracter a stica (denotada por c). Base do sistema 2. e Os 52 bits restantes representam a mantissa (denotada por f ), que e uma frao binria. ca a

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

11 / 37

Representao em ponto utuante ca

Como 52 algarismos binrios correspondem a 15 ou 16 algarismos a decimais, podemos dizer que este sistema tem pelo menos 15 algarismos decimais de preciso. a

O exponte, com 11 algarismos binrios, fornece uma faixa de 0 a a 211 1 = 2047. Mas, para permitir expoentes negativos e uma melhor representao de nmeros de mdulo pequeno, subtra 1023 do ca u o e do expoente. Desta forma, na realidade, a faixa de valores para o expoente vai de -1023 a 1024.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

12 / 37

Representao em ponto utuante ca

Para economizar armazenamento e obter uma representao unica dos ca nmeros em ponto utuante, imposta uma normalizao. u e ca

A utilizao deste sistema fornece um nmero em ponto utuante da forma ca u

(1)s 2c1023 (1 + f )

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

13 / 37

Representao em ponto utuante - exemplo ca

Considere o seguinte nmero, representado no sistema mencionado: u


0 10000000011 1011100100010000000000000000000000000000000000000000

O primeiro bit representa o sinal s. Neste caso, 0 ou positivo.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

14 / 37

Representao em ponto utuante - exemplo ca

Os 11 bits seguintes, 10000000011, fornecem a caracter stica. Este nmero, no sistema decimal, u e

c = 1 210 + 1 21 + 1 20 = 1027. Portanto, a parte exponencial do nmero dada por u e

210271023 = 24 .

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

15 / 37

Representao em ponto utuante - exemplo ca


Os ultimos 52 bits representam a mantissa

f = 1 21 + 1 23 + 1 24 + 1 25 + 1 28 + 1 212 .

Assim, o nmero representado u e

(1)s 2c1023 (1 + f ) =

(1)0 210271023 1 +

1 1 1 1 1 1 + + + + + 2 8 16 32 256 4096
sme0100 - Clculo Numrico I a e

= 27, 56640625.

Marina Andretta/Franklina Toledo (ICMC-USP)

03 de Agosto de 2012

16 / 37

Representao em ponto utuante - exemplo ca

Note que o nmero de mquina anterior a este dado por u a e


0 10000000011 1011100100001111111111111111111111111111111111111111

E o nmero de mquina posterior dado por u a e


0 10000000011 1011100100010000000000000000000000000000000000000001

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

17 / 37

Representao em ponto utuante - exemplo ca

Isso signica que o nmero de mquina original representa no somente o u a a nmero 27,56640625, mas tambm metade dos nmeros reais que esto u e u a entre ele e seus nmeros de mquina mais prximos. u a o Ou seja, ele representa qualquer nmero real no intervalo u
[27,5664062499999982236431605997495353221893310546875, 27,5664062500000017763568394002504646778106689453125)

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

18 / 37

Representao em ponto utuante ca

O menor nmero em mdulo que pode ser representado neste sistema u o e dado por s = 0, c = 1 e f = 0.

Ou seja, (1)0 211023 (1 + 0) 0, 2225 10307 . Nmeros que ocorrem em clculos com mdulos menores do que este valor u a o resultam em underow, e so, geralmente, arredondados para 0. a

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

19 / 37

Representao em ponto utuante ca

O maior nmero em mdulo que pode ser representado neste sistema u o e 52 . dado por s = 0, c = 2046 e f = 1 2

Ou seja, (1)0 220461023 (1 + 1 252 ) 0, 17977 10309 . Nmeros que ocorrem em clculos com mdulos maiores do que este valor u a o resultam em overow. Isso geralmente acarreta em parada do clculo, a a menos que o programa tenha sido projetado para detectar este tipo de erro.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

20 / 37

Representao em ponto utuante ca

Note que h duas representaes poss a co veis para o zero:

uma positiva, com s = 0, c = 0 e f = 0;

e uma negativa, com s = 1, c = 0 e f = 0.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

21 / 37

Representao em ponto utuante ca


Para facilitar os clculo daqui em diante, usaremos a forma normalizada de a ponto utuante decimal

0, d1 d2 ...dk 10n ,

com 1 d1 9 e 0 di 9, para i = 2, ..., k.

Os nmeros desta forma so chamados de nmeros de mquina decimais u a u a de k algarismos.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

22 / 37

Representao em ponto utuante ca

Qualquer nmero real positivo dentro do intervalo numrico da mquina u e a pode ser normalizado na forma

y = 0, d1 d2 ...dk dk+1 dk+2 10n . A forma em ponto utuante y , denotada por (y ), obtida terminando a e mantissa de y em k algarismos decimais.

H duas maneiras disto ser realizado: truncamento e arredondamento. a

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

23 / 37

Truncamento

O truncamento consiste em, simplesmente, descartar os dois ultimos algarismos dk+1 dk+2 de y .

Isso produz a forma em ponto utuante de y

(y ) = 0, d1 d2 ...dk 10n .

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

24 / 37

Arredondamento

O arredondamento consiste em somar 5 10n(k+1) a y e, ento, truncar a o resultado.

Isso produz a forma em ponto utuante de y

(y ) = 0, 1 2 ...k 10n .

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

25 / 37

Arredondamento

Deste modo, se dk+1 5, adicionamos 1 a dk para obter (y ). Isto o que chamamos arredondamento para cima. e Mas, se dk+1 < 5, simplesmente truncamos o nmero. u Isto o que chamamos arredondamento para baixo. e Note que, quando arredondamos para baixo, di = i para todo 1 i k, mas isso no acontece quando arredondamos para cima. a

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

26 / 37

Erros absoluto e relativo


Existem duas maneiras muito usadas para medir erros de aproximao. ca So elas: erro absoluto e erro relativo. a

Se p uma aproximao de p, o erro absoluto dado por | p|. e ca e p

O erro relativo dado por e

|p| p |p| ,

contanto que p = 0.

Como medida de preciso, o erro absoluto pode ser enganoso, j que no a a a leva em considerao o tamanho do nmero que est sendo usado. Neste ca u a caso, o erro relativo pode ser mais signicativo.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

27 / 37

Algarismos signicativos
Diz-se que o nmero p aproxima p at t algarismos signicativos se t for o u e maior inteiro no-negativo para o qual a

|p| p |p|

5 10t .

E poss mostrar que, usando a representao em ponto utuante (y ) vel ca para um nmero y , com k algarismos decimais, o nmero de d u u gitos signicativos : e k 1, quando o truncamento usado e e k, quando o arredondamento usado. e
Marina Andretta/Franklina Toledo (ICMC-USP) sme0100 - Clculo Numrico I a e 03 de Agosto de 2012 28 / 37

Aritmtica de ponto utuante e


J vimos que, somente a representao de nmeros reais no computador j a ca u a introduz erros de arredondamento. Alm disso, as contas feitas pelo computador introduzem mais alguns e erros. A aritmtica feita pelo computador pode ser aproximada com as 4 e operaes bsicas denidas da seguinte maneira: co a x y = ((x) + (y )) x x y = ((x) (y )) y = ((x)/(y )) x y = ((x) (y ))

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

29 / 37

Aritmtica de ponto utuante e

Com esta aritmtica, muitos erros podem ser introduzidos. e Os mais comuns aparecem quando os nmeros envolvidos tem ordem de u grandeza muito diferentes. Ou o cancelamento de d gitos signicativos quando so subtra a dos nmeros muito parecidos. u E algumas coisas estranhas acontecem, como, por exemplo, uma conta (a b) c = a (b c).

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

30 / 37

Aritmtica de ponto utuante - exemplo e

Suponha que x = 5 e y = 1 com truncamento em cinco d gitos. Ento, a 7 3 (x) = 0, 71428x100 e (y ) = 0, 33333x100 . Operao ca x y x y Resultado 0, 10476x101 0, 38095x100 0, 23809x100 0, 214286x101 Valor real
22 21 8 21 5 21 15 7

Erro absoluto 0, 190x104 0, 238x105 0, 524x105 0, 571x104

Erro relativo 0, 182x104 0, 625x105 0, 220x104 0, 267x104

x y x y

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

31 / 37

Aritmtica de ponto utuante - exemplo e

Suponha que a = 3, 25, b = 6, 34 e c = 6, 05 com arredondamento em trs d e gitos. Ento, (a) = 0, 325x101 , (b) = 0, 634x101 e a (c) = 0, 605x101 .

Operao ca (a b) c a (b c)

Resultado 0, 156x102 0, 157x102

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

32 / 37

Aritmtica de ponto utuante - exemplo e


A frmula quadrtica arma que as ra de ax 2 + bx + c = 0, quando o a zes a = 0, so a b b 2 4ac b 2 4ac e x2 = . 2a 2a

x1 =

b +

Usando a aritmtica de arredondamento com quatro algarismos, considere e esta frmula aplicada ` equao x 2 + 62, 1x + 1 = 0, cujas ra so, o a ca zes a aproximadamente,

x1 = 0, 01610723 e x2 = 62, 0839.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

33 / 37

Aritmtica de ponto utuante - exemplo e


Nesta equao, b 2 muito maior do que 4ac. Ento, o numerador no ca e a clculo de x1 envolve a subtrao de dois nmeros quase iguais. a ca u Como

b 2 4ac =

(62, 1)2 4 1 1 =

3856 4 =

3852 = 62, 06,

temos 62, 10 + 62, 06 0, 04 = = 0, 02. 2 2


sme0100 - Clculo Numrico I a e 03 de Agosto de 2012 34 / 37

(x1 ) =

Marina Andretta/Franklina Toledo (ICMC-USP)

Aritmtica de ponto utuante - exemplo e

Esta uma aproximao insatisfatria para x1 = 0, 01611, com grande e ca o erro relativo | 0, 02 + 0, 01611| 2, 4 101 . | 0, 01611|

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

35 / 37

Aritmtica de ponto utuante - exemplo e


No entanto, se racionalizarmos o numerador da frmula para clculo de x1 , o a obtemos 2c . b + b 2 4ac

x1 =

Usando esta reformulao, temos ca 2 2 = = 0, 01610, 62, 10 + 62, 06 124, 2

(x1 ) =

com pequeno erro relativo 6, 2 104 pequeno.

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

36 / 37

Exerc em Sala (1): 31.07.2012 cio

Marina Andretta/Franklina Toledo (ICMC-USP)

sme0100 - Clculo Numrico I a e

03 de Agosto de 2012

37 / 37