Rprsntação d Númros no Computador Erros Anális Numérica Patrícia Ribiro Artur igul Cruz Escola Suprior d Tcnologia Instituto Politécnico d Stúbal 2015/2016 1 1 vrsão 23 d Fvriro d 2017
Contúdo 1 Introdução................................... 3 2 Rprsntação dos númros rais...................... 3 2.1 Rprsntação m difrnts bass...................... 3 2.2 Rprsntação m Ponto Flutuant..................... 4 2.3 Opraçõs Aritméticas m Ponto Flutuant................. 6 3 Erros...................................... 7 4 Propagação d Erros. Fórmula Fundamntal do Cálculo d Erros.... 9 4.1 Estimativas do Erro m Opraçõs Aritméticas Elmntars....... 11 4.2 Propagação d Erros Rlativos........................ 12 2
1 Introdução A anális numérica tm por objctivo dar rspostas numéricas, i.. soluçõs com númros, a problmas físicos. Por xmplo, m matmática uma solução pod sr dada por x = 2π mas para um computador sta solução não é adquada, pois um computador apnas consgu manipular um númro finito d símbolos ou opraçõs. Além disso, quando s usa um computador ou uma máquina obtmos divrsos tipos d rros: Erros d aproximação do modlo matmático associado a um problma ral; Erros nos dados (obtidos xprimntalmnt); Erros da prcisão finita na rprsntação d númros rais. 2 Rprsntação dos númros rais 2.1 Rprsntação m difrnts bass A notação usual dos númros rais é m bas b = 10. Por xmplo 49.75 = 4 10 + 9 10 0 + 7 10 1 + 5 10 2. Frquntmnt é usada a bas b = 2. O númro antrior scrito m bas 2 trá qu sr calculado m dois passos. Primiro calcula-s a rprsntação da part intira 49 2 1 24 2 conclui-s qu (49) 10 = (110001) 2 ond 0 12 2 0 6 2 0 3 2 1 1 2 1 0 (110001) 2 = 1 2 5 + 1 2 4 + 1 2 0. A part fraccionária é obtida da sguint manira 0.75 2 = 1.5 0.5 2 = 1.0 3
tm-s qu (0.75) 10 = (0.11) 2. ond (0.11) 2 = 1 2 1 + 1 2 2 Finalmnt conclui-s qu Exmplo. 1. (101101) 2 = (45) 10 2. (176) 10 = (10110000) 2 3. (1A0F ) 16 = (6671) 10 4. (0.1) 10 = (0.00011...) 2 5. (3.8) 10 = (11.11001100...) 2 6. (0.110) 2 = (0.75) 10 49.75 = (110001.11) 2. 2.2 Rprsntação m Ponto Flutuant Como nos computadors usa-s um númro finito d númros, trmos qu rcorrr a sistmas qu façam arrdondamntos. Quando s rprsntam númros muitos grands ou muito pqunos, rcorr-s usualmnt à notação cintífica. Dado um númro x, m notação cintífica, st númro rprsnta-s por x = ±mb ond m 0 é um númro ral dsignado por mantissa, b 2 é um númro natural dsignado por bas é um númro intiro dsignado por xpont. Por xmplo, o númro 32.567 admit a rprsntação na bas 10 +3.2567 10 1. Inflizmnt sta rprsntação não é única pois o númro 32.567 também tm a rprsntação +3256.7 10 2. Para rsolvr st problma, usa-s a notação cintífica normalizada ond s impõm as sguints convnçõs para a mantissa m = 0 s x = 0 b 1 m < 1 s x 0. Nst caso, o númro 32.567 apnas tm a rprsntação +0.32567 10 2. 4
Not-s qu a rprsntação cintífica normalizada continua a não rsolvr o problma da unicidad na rprsntação pois 0 10 1 = 0 10 2 =... A notação cintífica não pod sr implmntada num computador pois tríamos qu tr infinitos dígitos para a mantissa para o xpont. Quando rstringimos a mantissa a um númro finito p d dígitos o xpont a um númro finito q d dígitos, obtém-s a dsignada rprsntação m ponto flutuant. O sistma d rprsntação m ponto flutuant normalizado F P (b, p, min, max ) d bas b, mantissa até p dígitos m = (0.d 1 d 2...d p ) b o xpont tal qu min max, contém todos os númros rais da forma x = 0 s d 1 = 0 ou x = ±mb = = ± (0.d 1 d 2... d p ) b b ± ( d 1 b 1 + d 2 b 2 +... + d p b p) b s d 1 0. Exmplo. O sistma d ponto flutuant F P (10, 6, 2, 2) tm bas 10, mantissa até 6 dígitos. Est sistma inclui o zro todos os númros da forma ±0.d 1 d 2... d 6 10 ond 0 d i 9, i = 1,..., 6 d 1 0. Por xmplo, o númro 32.567 nst sistma rprsnta-s por +0.32567 10 2. Not-s qu nst sistma o maior númro rprsntávl é +0.999999 10 2 = 99.9999 o mnor númro positivo rprsntávl é +0.1 10 2 = 0.001. O númro 100 = +0.1 10 3 não é rprsntávl nst sistma nsta situação diz-s qu ocorru um Ovrflow. Analogamnt o númro +0.1 10 3 também não é rprsntávl nst sistma dizs qu ocorru um Undrflow. O númro π = 3.1415926... não possui rprsntação xacta nst sistma pois tm mais do qu 6 dígitos. Exmplo. O sistma d ponto flutuant F P (2, 3, 1, 2) tm bas 2, mantissa até 3 algarismos qu s chamam bits o xpont varia ntr 1 2. Est sistma inclui o zro todos os númros da forma x = ± ( d 1 2 1 + d 2 2 2 + d 3 2 3) 2 5
ou sja, F P (2, 3, 1, 2) = {0, ± 1 4, ± 5 16, ±3 8, ± 7 16, ±1 2, ±5 8, ±3 4, ±7 8, ±1, ± 5 4, ±3 2, ±7 4, ±2, ±5 2, ±3, ±7 2 } = {0, ±0.25, ±0.3125, ±0.375, ±0.4375, ±0.5, ±0.625, ±0.75, ±0.875, ±1, ±1.25, ±1.5, ±1.75, ±2, ±2.5, ±3, ±3.5}. Dado um númro ral x R, rprsnta-s por x ou f l (x) a rprsntação d x m F P (b, p, min, max ). S x = x, diz-s qu x tm rprsntação xacta m F P (b, p, min, max ). S x x xistm duas técnicas para dtrminar x: Truncatura: x obtém-s dsprzando os númros da mantissa do númro x para além dos p primiros. Por xmplo o númro π é rprsntado m F P (10, 3, 2, 2, T ) por π = +0.314 10 1. Arrndondamnto: x é o númro do sistma F P (b, p, min, max ) qu stá mais próximo d x. Por xmplo o númro π = 3.14159... é rprsntado m F P (10, 5, 2, 2, A) por π = +0.31416 10 1. Em alguns casos, o arrndondamnto não dtrmina univocamnt a aproximação x. Por xmplo, o númro 0.75 no sistma F P (10, 1, 1, 1, A) tm dois lmntos quidistants d 0.75: 0.8 0.7. É ncssário ntão introduzir rgras adicionais uma das mais utilizadas é a rgra Roundto-Evn, qu nsts casos opta pla aproximação qu dixa o último dígito da mantissa par. Logo, 0.75 = 0.8 0.65 = 0.6. 2.3 Opraçõs Aritméticas m Ponto Flutuant Considr-s os sguints númros x = 1.2568 y = 0.9854 cuja rprsntação m F P (10, 4, 2, 2, T ) é dada por x = 0.1256 10 ȳ = 0.9854. A soma dsts númros é 6
x + ȳ = 2.2414 qu não é um lmnto d F P (10, 4, 2, 2, T ). Logo, dpois d s fctuar a opração tr-s-á qu rprsntar o rsultado no sistma m ponto flutuant. Nst caso, a soma é dada por x + ȳ = 0.2241 10. Por isso, num sistma d ponto flutuant é ncssário dfinir as opraçõs aritméticas lmntars (soma, subtração, multiplicação divisão) nss sistma. Sjam x, y F P (b, m, min, max ) {+,,, /} uma opração aritmética. Dfin-s 3 Erros x ȳ = x ȳ. No qu s sgu, considra-s qu s stá na notação d bas 10 qu as aproximaçõs são fitas por arrdondamnto. Sja x R x uma aproximação d x. Dfin-s como rro da aproximação a ϵ x = x x. Diz-s qu x é uma aproximação por dfito s x < x diz-s qu x é uma aproximação por xcsso s x > x. Chama-s d rro absoluto ao módulo do rro rro rlativo a x = x x r x = x x = x x x s x 0. Por xmplo, s x = 3.333... x = 3.33, ntão, Para y = 0.00333... ȳ = 0, tm-s qu x = 0.0033... r x = 0.001. ȳ = 0.0033... rȳ = 1. 7
Com sts xmplos vrifica-s qu o rro rlativo fornc mais informação qu o rro absoluto (distância ntr a aproximação o valor) pois tm m conta a ordm d grandza do valor d x. Outras mdidas da qualidad d uma aproximação é o númro d casas dcimais corrctas o númro d dígitos significativos. Diz-s qu o númro x s ncontra rprsntado com d casas dcimais corrctas quando a sua part dcimal aprsnta d algarismos dcimais rsulta d um arrdondamnto corrctamnt fctuado sobr um outro númro. Diz-s qu o númro x s ncontra rprsntado com k algarismos significativos quando stá rprsntado com k algarismos, contados da squrda para a dirita, a partir do primiro algarismo difrnt d zro dsd qu rsult d um arrdondamnt bm fctuado sobr um outro númro. Sja x R x uma aproximação d x. Diz-s qu x é uma aproximação d x com plo mnos d casas dcimais corrctas s x = x x 1 2 10 d. Not-s qu sta dfinição só é válida para a notação cintífica normalizada. Exmplo. Sjam x = 2 = 1.41421356237... x = 1.41 uma aproximação d x. Como x x = 0.00421356... 0.005 = 1 2 10 2, ntão x é uma aproximação d 2 com plo mnos 2 casas dcimais corrctas. Exmplo. Sja y = 5 = 2.23606... ȳ = 2.24 uma aproximação d y. Como y ȳ = 0.0039320... 0.005 = 1 2 10 2, ntão ȳ é uma aproximação d 5 com plo mnos 2 casas dcimais corrctas. Considr-s x R x uma aproximação d x qu tm a sguint rprsntação cintífica x = ±0.d 1 d 2... d k d k 1... d k l 10 p. Diz-s qu x é uma aproximação d x com plo mnos k algarismos significativos s Adicionalmnt, s x = x x 1 2 10 k+p. x = x x > 1 2 10 k+p 1 diz-s qu x é uma aproximação d x com com xactamnt k algarismos significativos. 8
Exmplo. Sjam π 1 = (0.31415) 10 1 π 2 = (0.31416) 10 1 duas aproximaçõs d π = 3.14159265.... Então, 0.5 10 4+1 1 π π 1 = 0.9265 10 4 0.5 10 3 = 0.5 10 4+1 0.5 10 5+1 1 π π 2 = 0.735 10 5 0.5 10 4 = 0.5 10 5+1. Logo, π 1 tm 3 casas dcimais corrctas tm xactamnt 4 algarismos significativos π 2 tm 4 casas dcimais corrctas tm xactamnt 5 algarismos significativos. Exmplo. Sja x = 0.25 uma aproximação d x. S s soubr qu x 0.005, ntão como x = x x 0.5 10 2 conclui-s qu x tm 2 casas dcimais corrctas plo mnos 2 algarismos significativos. Exmplo. Sja x = 0.00589 = 0.589 10 2 x 0.5 10 4. Uma vz qu logo x 0.5 10 4 = 0.5 10 k 2, k = 2. Assim x = 0.00589 tm 4 casas dcimais corrctas plo mnos 2 algarismos significativos. 4 Propagação d Erros. Fórmula Fundamntal do Cálculo d Erros Nsta scção, considra-s qu todas as funçõs são contínuas difrnciávis. S s quisr calcular y = f (x), m qu apnas s conhc um valor aproximado x d x, qual o rro qu s irá obtr na solução ȳ = f ( x)? Ou sja, qual é o fito d propagação do rro x na solução do problma? Plo Torma d Lagrang no intrvalo I = [ x x, x + x ], xist um ponto c I tal qu Logo, f f (x) f ( x) (c) = x x f (x) f ( x) = f (c) (x x). f (x) f ( x) = f (c) x x f( x) = f (c) x ond f( x) = f (x) f ( x). Como na prática não s conhc o valor d c, ntão majoras o rro da sguint forma f( x) f (x) x m qu f (x) = sup f (x). x I 9
A sta dsigualdad dá-s o nom d Fórmula Fundamntal do Cálculo d Erros (FFCE) qu também pod sr scrita na forma f( x) x x ond x = f (x) (notação d Libniz). Exmplo. Sja f (x) = 2x 2 + 3. Qual é o rro propagado a f (x) s s tomar x = 1.3? S s considrar todos os algarismos da aproximação significativos, tm-s qu Um valor aproximado d f (x) é x ]1.3 0.05, 1.3 + 0.05[. f( x) = 2 1.3 2 + 3 = 6.38 um majorant do rro da aproximação é dado por f( x) f (x) x 4x x 4 (1.3 + 0.05) 0.05 0.27. Logo, x ]1.3 0.05, 1.3 + 0.05[ f(x) ]6.38 0.27, 6.38 + 0.27[. Usualmnt, uma função f dpnd d várias variávis x 1, x 2,..., x n a gnralização da FFCE a várias variávis é dada por f n x i i=1 xi, ond f = f (x 1, x 2,..., x n ) x i é a drivada parcial d f m rlação à variávl x i. Por xmplo, para f(x, y, z) = 2xy + 3z 2 y 2 z tm-s qu x = (2xy + 3z2 y 2 z) x = 2y, y = (2xy + 3z 2 y 2 z) y = 2x 2yz z = (2xy + 3z 2 y 2 z) z = 6z y 2. 10
Exmplo. Considr-s f (x, y) = xy x 2. S x ]3.1 0.01, 3.1 + 0.01[ y ]2.3 0.3, 2.3 + 0.3[. Um valor aproximado d f é f = f ( x, ȳ) = 3.1 2.3 3.1 2 = 2.48. Como Logo f x x + ȳ y y 2x x + x ȳ (2.3 + 0.3) 2 (3.1 0.01) 0.01 + 3.1 + 0.01 0.3 0.968 8 0.97. f (x, y) ] 2.48 0.97, 2.48 + 0.97[. 4.1 Estimativas do Erro m Opraçõs Aritméticas Elmntars Considr-s a opração Soma dfinida por S = x + y. Então, S S x x + S ȳ y 1 x + 1 ȳ. Logo S x + ȳ. A opração Subtracção dfinida por D = x y, tm o rro majorado por D D x x + D ȳ y 1 x + 1 ȳ Logo D x + ȳ. A opração Produto Escalar dfinida por P k = kx, ond k R, tm o rro majorado por Pk P k x x k x. Exmplo. Sjam f (x, y) = 3x 5y, x ]5.3 0.2, 5.3 + 0.2[ y ]2 0.1, 2 + 0.1[. Um valor aproximado d f, srá f ( x, ȳ) = 3 5.3 5 2 = 5.9 11
o rro é majorado por f 3 x + 5 ȳ = 1.1. Logo f (x, y) ]5.9 1.1, 5.9 + 1.1[. No caso da opração Produto dfinida por P = xy, tm-s qu P y x + x ȳ no caso da opração Quocint Q = x, tm-s qu y Q 1 y x + x ȳ. y 2 4.2 Propagação d Erros Rlativos Já foi visto qu rro rlativo é dado por ou sja, r x = x x = x = x r x. x x x S s considrar uma função f = f (x 1, x 2,..., x n ) a fórmula fundamntal dos rros f n x i xi s substituir os rros absolutos plo rlativos, obtém-s n f r f x i=1 i x i r xi n x i x r f i r xi f i=1 n r f p i r xi. i=1 i=1 A sta última xprssão dá-s o nom d fórmula fundamntal para rros rlativos. Os factors p i p i = x i x i f são dnominados d númros d condição. Na prática o valor xacto d x é gralmnt dsconhcido, sndo comum substituir-s x por x na fórmula antrior. 12,
Em sguida, aprsntam-s stimativas para os rros rlativos das opraçõs aritméticas lmntars. O rro rlativo da opração Soma S = x + y é stimado por Ou sja, i.., r S p x r x + pȳ rȳ x x + ȳ r x + ȳ x + ȳ r ȳ. r S x + ȳ x + ȳ. Analogamnt o rro rlativo da opração Subtracção é stimado por r D x x ȳ r x + ȳ x ȳ r ȳ r D x + ȳ x ȳ. O rro rlativo da opração Produto P = xy é stimado por r P p x r x + p y rȳ xȳ xȳ r x + xȳ xȳ r ȳ r x + rȳ o rro rlativo da opração Quocint Q = x y é stimado r Q p x r x + p y rȳ ) ȳ ( xȳ r x + 2 r ȳ x 1 ȳ x ȳ r x + rȳ. A tabla sguint rsum os rros, absolutos rlativos, das opraçõs aritméticas: Erro Absoluto Erro Rlativo Soma S x + ȳ r S x+ ȳ x+ȳ Difrnça D x + ȳ r D x+ ȳ x ȳ Produto P y x + x ȳ r P r x + rȳ Quocint Q x + x y 2 ȳ r Q r x + rȳ 1 y Exmplo. Dtrmin-s o númro d algarismos significativos do rsultado d cada uma das opraçõs xy x + y m qu x = 1010 ȳ = 1000. S todos os algarismos são significativos, ntão x < 0.5 ȳ < 0.5 13 x ȳ
r x = x x x x < 0.495 10 3 rȳ 0.5 10 3. Então, P y x + x ȳ 1000.5 0.5 + 1010.5 0.5 = 1005.5 r P 0.495 10 3 + 0.5 10 3 = 0.995 10 3. Além disso, como xȳ = 1010000 = 0.1010 10 7 P 1005 < 5000 = 0.5 10 4 = 0.5 10 3+7, o produto tm 3 algarismos significativos. Em rlação aos rros da soma, tm-s qu S x + ȳ < 0.5 + 0.5 = 1 r S x + ȳ x + ȳ 0.498 10 3. = 1 2010 Além disso, como x + ȳ = 2010 = 0.201 10 4 S 1 < 5 = 0.5 10 = 0.5 10 3+4 a soma tm 3 algarismos significativos. 14