03 de Agosto de 2012
1 / 37
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
03 de Agosto de 2012
2 / 37
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
03 de Agosto de 2012
3 / 37
03 de Agosto de 2012
4 / 37
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
03 de Agosto de 2012
5 / 37
03 de Agosto de 2012
6 / 37
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.
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
03 de Agosto de 2012
9 / 37
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
03 de Agosto de 2012
10 / 37
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
03 de Agosto de 2012
11 / 37
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.
03 de Agosto de 2012
12 / 37
Para economizar armazenamento e obter uma representao unica dos ca nmeros em ponto utuante, imposta uma normalizao. u e ca
(1)s 2c1023 (1 + f )
03 de Agosto de 2012
13 / 37
03 de Agosto de 2012
14 / 37
Os 11 bits seguintes, 10000000011, fornecem a caracter stica. Este nmero, no sistema decimal, u e
210271023 = 24 .
03 de Agosto de 2012
15 / 37
f = 1 21 + 1 23 + 1 24 + 1 25 + 1 28 + 1 212 .
(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.
03 de Agosto de 2012
16 / 37
03 de Agosto de 2012
17 / 37
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)
03 de Agosto de 2012
18 / 37
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
03 de Agosto de 2012
19 / 37
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.
03 de Agosto de 2012
20 / 37
03 de Agosto de 2012
21 / 37
0, d1 d2 ...dk 10n ,
03 de Agosto de 2012
22 / 37
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.
03 de Agosto de 2012
23 / 37
Truncamento
O truncamento consiste em, simplesmente, descartar os dois ultimos algarismos dk+1 dk+2 de y .
(y ) = 0, d1 d2 ...dk 10n .
03 de Agosto de 2012
24 / 37
Arredondamento
(y ) = 0, 1 2 ...k 10n .
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
03 de Agosto de 2012
26 / 37
|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.
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
03 de Agosto de 2012
29 / 37
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).
03 de Agosto de 2012
30 / 37
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
x y x y
03 de Agosto de 2012
31 / 37
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)
03 de Agosto de 2012
32 / 37
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,
03 de Agosto de 2012
33 / 37
b 2 4ac =
(62, 1)2 4 1 1 =
3856 4 =
(x1 ) =
Esta uma aproximao insatisfatria para x1 = 0, 01611, com grande e ca o erro relativo | 0, 02 + 0, 01611| 2, 4 101 . | 0, 01611|
03 de Agosto de 2012
35 / 37
x1 =
(x1 ) =
03 de Agosto de 2012
36 / 37
03 de Agosto de 2012
37 / 37