ANÁLISE NUMÉRICA DEC - 1996/97 Ana Maria Faustino Teoria de Erros A Teoria de Erros fornece técnicas para quantificar erros nos dados e nos resultados de cálculos com números aproximados. Nos cálculos aproximados deve-se considerar três tipos diferentes de erros: Erros de Arredondamento. Quando se utiliza instrumentos de cálculos, estes trabalham com um número finito de dígitos. Por exemplo, ao usar 0.3334, 3.14 e 1.414 para números aproximados de 1/3, π e 2 comete-se um determinado erro de arredondamento. Erros de truncatura. Quando se utiliza fórmulas aproximadas. Por exemplo, ao calcular a função 3 5 n 2i −1 ∞ 2i −1 i −1 x i −1 x senx = x − x + x −L = ∑ ( −1) + ∑ ( −1) 3! 5! (2i − 1)! i1 (2i − 13 )! = n 44 +1 42444 i =1 ε se só se considerar a soma das n primeiras parcelas comete-se um erro de truncatura ε que é dado pelo segundo somatório. Erros nos dados. Os erros que afectam informações previamente obtidas e com as quais vamos operar. Na pior das hipóteses estes erros acumulam-se. Felizmente, na prática, eles muitas vezes compensam-se ou, então, um ou outro é desprezável em face dos valores dos outros. Análise Numérica - DEC (1996/97) 1 Análise Numérica - DEC 2 Noções gerais Como se vai trabalhar com números aproximados de uma dada quantidade exacta convém estabelecer critérios para avaliar qual a melhor aproximação. Para isso necessitamos de algumas noções. Algarismos significativos (a.s.) : chama-se a.s. a todos os dígitos usados para escrever um número com excepção dos zeros para obter a casa das unidades (zeros à esquerda). Exemplos: 0.00263 tem 3 a.s.; 23.806 tem 5 a.s.; 0.0200 tem 3 a.s.. Algarismos significativos correctos (a.s.c.) : Diz-se que um algarismo significativo de uma aproximação a de um número A é algarismo significativo correcto se |A-a| ≤ 0.5 × 10 -m , onde m é a ordem decimal da casa que esse algarismo ocupa. Nesta notação considera-se que, por exemplo, a ordem decimal da casa das dezenas é -1.(Nota: Há autores que dão a definição usando a relação |A-a| ≤ 1 × 10 -m). Exemplos: Se A=2, a′=1.9999 tem 4 a.s.c. e a″=2.06 tem 1 a.s.c.. É evidente que quando se tem um conjunto de números aproximados de uma mesma quantidade A a melhor aproximação é o número mais próximo do valor exacto. O número de algarismos significativos correctos permite também caracterizar essa melhor aproximação. De facto, com excepção de alguns casos pouco frequentes, o número com o maior número de a.s.c. é a melhor aproximação. (As excepções correspondem a números próximos de potências de 10 (10k) e com |A-a| > |a-10k|. Exemplo: Se A=99.99991, a′=99.9999 tem 6 a.s.c. e a″=100.0000 também tem 6 a.s.c. e no entanto a′ está mais próximo de A do que a″). Regras de arredondamento. Muitas vezes, quer por não ter significado, quer por limitação do instrumento de cálculo que se está a usar, é necessário menosprezar alguns dos algarismos menos significativos. Quando tal for necessário, para reduzir ao mínimo o erro cometido, devemos apresentar o algarismo da última casa significativa conservada (ap) do seguinte modo: Ana Maria Faustino Análise Numérica - DEC 3 1. se a quantidade menosprezada for inferior a 1/2 unidade dessa última casa o algarismo mantém-se (a′p= ap). 2. se for superior ou igual aumentamos uma unidade àquele algarismo (a′p= ap+1). (A=0. a1 a2 … ap ap+1 … an × 10 -k e a= 0.a1 a2 … a′p × 10 -k, k∈Z). Exemplos: Arredondar para 4 a.s.: 29.6324→29.63; 81.9773→81.98; 67.495→67.50. Por este processo de arredondamento, o erro cometido é sempre inferior a 1/2 unidade da última casa conservada e portanto todos os algarismos são algarismos significativos correctos, obtendo-se a melhor aproximação possível com p a.s.. Definições de erros Erro Absoluto (ε)- seja a um valor aproximado de A. Chama-se erro absoluto de a ao valor ε = |α| tal que, A=a+α. Erro máximo absoluto (e.m.a. - ∆a)-supremo do conjunto dos valores que o erro absoluto pode tomar. Tem-se então a - ∆a ≤ A ≤ a + ∆a Muitas vezes escreve-se A= a ± ∆a. Erro relativo (δ) - é a quantidade de erro absoluto por unidade de grandeza medida (mede precisão). δ = ε |A| A≠0 Erro máximo relativo (e.m.r. - δa) - supremo do conjunto de valores que o erro relativo pode tomar. É dado geralmente sob a forma de percentagem. Nota: o e.m.a. depende das unidades do valor de A e o e.m. r. é independente dessas unidades. Relações entre o erro máximo absoluto e o erro máximo relativo Ana Maria Faustino Análise Numérica - DEC 4 Se A>0 ∆a δa = a − ∆a 2 relações aδa ∆a = 1 − δa se ∆a << a se δa << 1 ∆a a ∆a ≈ aδa δa ≈ 1 relação Logo se conhecermos o e.m.r. podemos escrever A= a (1± δa) ⇔ a (1- δa) ≤ A≤ a (1+ δa). Relação entre o erro máximo absoluto e casas decimais correctas Se um número tem n casas decimais correctas então o erro absoluto é inferior a 0.5×10-n e vice versa. -n n c. d . c ⇒ ⇐ ∆a ≤ 0.5 × 10 Relações entre o erro máximo relativo e algarismos significativos correctos O erro relativo é independente da ordem de grandeza do número, dependendo apenas do número de a.s.c. e do valor do primeiro algarismo significativo. De facto se a e b são dois números aproximados, com n algarismos significativos correctos, que apenas diferem na ordem de grandeza, tem-se: a =0.a1 a2 … an × 10p b =0.a1 a2 … an × 10k e 0.5 × 10− n × 10 p 0.5 × 10− n δa = = 0. a1 × 10 p 0. a1 0.5 × 10− n × 10k 0.5 × 10− n δb = = 0. a1 × 10k 0. a1 Ana Maria Faustino Análise Numérica - DEC 5 Vemos portanto que o erro relativo é independente das unidades mas, é dependente da ordem de grandeza de a1 .Assim se a tem n a.s.c. e se a1 ≈ 1 ⇒ δa= 0.5×10-(n-1) se a1 ≈ 10 ⇒ δa = 0.5 × 10 -n e inversamente δa = 0.5 × 10 -n ⇒ a tem n a.s.c. (se a1 ≈ 10) ou n+1 a.s.c. (se a1 ≈ 1) Como apresentar um número aproximado Se se souber que um dado número a é aproximado com um dado erro máximo ∆a, essa informação apenas nos permite saber que o valor exacto é um dos pontos do intervalo centrado no número aproximado e de amplitude ∆a. Logo não interessa escrever a com dígitos que não são significativos nem interessa escrever ∆a com mais de 1(ou2) a.s.. Assim se, por exemplo, a = 3.654917m com e.m.a. ∆a = 0.3×10-2m, como é que se deve apresentar a ? Como ∆a < 0.5×10-2 , por definição de a.s.c., a só tem 2 c.d.c. e pode-se pensar em escrever a′= 3.655 ou a″= 3.65. Vejamos qual a representação destas informações na recta real. ∆a 64748a a′ a″1444442444443 ∆a″= ∆a +εa″ [a-∆a,a+∆a] [a′-∆a,a′+∆a] [a″-∆a,a″+∆a] [a″-∆a″,a″+∆a″] onde εa″ = |a-a″| = 0.5×10-2 é o erro de arredondamento de substituir a por a″. Neste caso é preferível utilizar a representação a′ de a pois não há alteração significativa no posicionamento do intervalo. Se se tivesse utilizado a representação a″ de a, como o erro de arredondamento εa″ é da mesma ordem de grandeza de ∆a, teríamos que passar a indicar o e.m.a. ∆a″ para se ter a certeza de o novo intervalo conter o valor que a pretende aproximar. Se mantivéssemos a mesma amplitude ∆a dos outros intervalos estaríamos, quase de certeza, a excluir o valor exacto que a pretende aproximar. Ana Maria Faustino Análise Numérica - DEC 6 Propagação de erros Seja f uma função de ℜn em ℜ, contínua num domínio D ⊆ ℜn. Se x0∈ℜn aproxima x com um e.m.a. ∆x∈ℜn pretende-se saber qual o e.m.a. ∆z∈ℜ com que z0 = f(x0) aproxima z = f(x). Como x ∈ [x0- ∆x, x0 + ∆x] ⊂ D, se se designar por fmin e fmax respectivamente o valor mínimo e máximo de f em [x0- ∆x, x0 + ∆x] então, por continuidade de f, z0 ∈ [ fmin , fmax ] e ∆z = max{ f(x0) - fmin , fmax - f(x0)}. No entanto, como o cálculo de máximos e mínimos (extremos) de uma função nem sempre é simples, deve-se usar um processo mais eficiente para determinar esse erro. Assim, se a função f: D ⊂ ℜn→ℜ, além de ser contínua em D, tiver derivadas parciais contínuas em D então f é continuamente diferenciável em D e n ∂f( x 0 ) ∆z = f( x 0 ± ∆x) − f( x 0 ) = ∑ ∆ xi + ε i =1 ∂ x i em que ε → 0 quando ∆x → 0. Tem-se, por isso n ∂f( x 0 ) ∆z ≅ ∑ ∆ xi ∂ x i i =1 (1) e n ∆z ≅ ∑⋅ | z| i = 1 ∂f( x 0 ) x ∂ xi i f( x 0 ) ⋅ d xi (2) Nota : se f: ℜ→ℜ for contínua no intervalo [a,b] e derivável no intervalo ]a,b[, pelo teorema dos acréscimos finitos (Lagrange), tem-se: ∆z = |f(x±∆x)-f(x)| = |f′(ξ)| ∆x ≈ |f′(x)| ∆x (3) Ana Maria Faustino Análise Numérica - DEC 7 Problema inverso Quando se pretende que o erro do resultado não ultrapasse um valor previamente fixado tem-se que calcular um limite para os erros dos argumentos que simultaneamente satisfaça (1) ⇔ (2).ou (3). Se f: ℜ→ℜ basta que f′(x)≠0 e tem-se de (3) : ∆x = 1 ∆z f ′(x) Se f: D ⊂ ℜn→ℜ, então o problema tem mais do que uma solução. É n-1 vezes indeterminada. Para que a solução seja praticável em vez de arbitrar n-1 incógnitas é comum proceder de um dos seguintes modos: 1. Fazer ∆x1=∆x2=…=∆xn=∆y e por (1) vem ∆y ≤ ∆z ∂f( x0) ∑ i =1 ∂ x i n dz 2. Fazer δx1=δx2=…=δxn=δy e por (2) vem dy ≤ n ∑ ⋅ i =1 3. ∂f( x 0 ) x ∂ xi i f( x 0 ) ∆z ∂f( x 0 ) ∂f( x 0 ) ∂f( x 0 ) ∆ x1 = ∆ x 2 =L = ∆ xn ≤ (Princípio das influências iguais) ∂ x1 ∂ x2 ∂ xn n Casos particulares Considere os e.m.a. e e.m.r. das seguintes expressões: x y δx + δy x±y x±y z = x±y ∆z = ∆x + ∆y δz = z = xy ∆z = |y| ∆x + |x| ∆y δz = δx + δy z= x y ∆z = 1 x ∆x + ∆y y y δz = δx + δy z=xp (p é exacto) ∆z = p xp −1 ∆x δz = | p | δx z=ln x ∆z = δx δz = z=ax (a>0 é exacto) ∆z = | ax ln a | ∆x 1 δx ln x δz = | ln a | ∆x Ana Maria Faustino Análise Numérica - DEC 8 A análise destas expressões dos erros e as relações entre e.m.a. e c.d.c. e entre e.m.r. e a.s.c. permite-nos tirar algumas conclusões interessantes. No caso das somas algébricas a expressão do e.m.a. diz-nos que o e.m.a. do resultado é da mesma ordem de grandeza do e.m.a. da parcela com maior erro. E tem-se: Regra prática da adição ou subtracção: Na adição ou subtracção de dois ou mais números aproximados o resultado deverá ter tantas casas decimais quantas as do(s) número(s) com menos casas decimais correctas. No caso dos produtos e divisões a expressão do e.m.r. diz-nos que o e.m.r. do resultado é da mesma ordem de grandeza do e.m.r. do argumento com maior erro. E tem-se: Regra prática do produto ou divisão: No produto ou divisão de dois ou mais números aproximados o resultado deverá ter tantas algarismos significativos quantos os do(s) número(s) com menos algarismos significativos correctos. A estimativa dos erros através de majorantes (fórmulas (1),(2) e (3)) dão uma informação muito pessimista da precisão do resultado pois considera que os erros se acumulam sempre. As regras práticas, pelo contrário, consideram que os erros muitas vezes compensam-se e, portanto, o facto de se estar a operar com vários números aproximados não afecta muito o resultado. No entanto, no caso da potência, que se pode considerar como um caso particular de produtos com o mesmo factor, essa compensação não se verifica. Pode-se dar o caso de, se p for grande ( por exemplo p ≈ 10 ), o resultado perder algarismos significativos e, se p for pequeno ( por exemplo p ≈ 10-1 ), o resultado pode ganhar algarismos significativos. Exemplo: Calcular z = 10 7.34 sabendo que 7.34 tem 3 a.s.c.. Resolução: Como x =7.34 tem 3 a.s.c ∆x=0.5 × 10 -2 e, por (2), 1 0.5 × 10 −2 δz = ≈ 0.72 × 10 − 4 < 0.5 × 10 − 3 10 7 ⇒ 3 ou 4 a.s. Como δz ≤ 0.72 × 10 -4 ≈ 0.5 × 10 -4 é mais natural que z tenha mesmo 4 a.s.c. Por enquadramento tem-se: Ana Maria Faustino Análise Numérica - DEC 9 7.335 ≤ x ≤ 7.345 10 7.335 ≤ z ≤ 10 7.345 1.2205063... ≤ z ≤ 1.2206726... Logo 10 7.34 = 1.2205894... aproxima z com pelo menos 4 a. s. c. Apesar de não fazer parte das regras práticas de cálculo aproximado, as expressões dos erros de z= ln x permite-nos tirar conclusões interessantes. O resultado z vai ter sensivelmente tantas c.d. quantos os a.s. de x. Deste modo a precisão do resultado piora, relativamente à precisão de x, se ln x ≈ 0 e melhora se ln x for grande. Sugestões para introduzir estas ideias aos alunos do secundário Convém introduzir a noção de algarismo significativo. Alguns alunos do secundário usam-na noutras disciplinas, por exemplo Química, por que não em Matemática ? Pode-se introduzir a formula (1) para alguns casos particulares. EXEMPLO 1 Calcule o e.m.a. do perímetro P e área A de um rectângulo de lados a e b usando valores aproximados a0 e b0 tais que: a=a0±∆a e b= b0 ± ∆b Supondo que o erro é positivo vem: b0 ∆b a0 a0 × b0 a0∆b ∆a b0∆a ∆a∆b Analiticamente vem P = (2a0+2b0)±(2∆a+2∆b) ⇒ ∆P=2∆a+2∆b A = (a0×b0)±( a0∆b+ b0∆a+∆a∆b) ⇒ ∆A ≅ a0∆b+ b0∆a Nota: com este exemplo pode-se ver que a fórmula (1) é aproximada pois despreza termos de 2ª ordem ou superior em ∆a ou ∆b. Ana Maria Faustino Análise Numérica - DEC 10 Usar as regras práticas nos cálculos aproximados a partir do 10º ano (?). Nos anos anteriores apenas pedir estimativas usando aproximações dos dados com um número fixo de casas decimais (ou a.s.). Nunca pedir aproximações dos resultados com um número fixo de c.d. (ou a.s.) pois os alunos não sabem responder correctamente. Conhecida a noção de a. s. c. as regras práticas podem ser facilmente induzidas usando a técnica de enquadramento. EXEMPLO 2 Considere a aproximação de π com 2 c.d.c. ( = 3 a.s.c.), π≈3.14. Determine o número de a.s.c. e de c.d.c. que se pode garantir a 12π ≈ 12×3.14 = 37.68 e 12 + π = 12 +3.14 =15.14 A informação de que π tem 2 c.d.c diz-nos que 3.135 ≤ π ≤ 3.145 e 37.62 ≤ 12π ≤ 37.74 15.135 ≤ 12 + π ≤ 15.145 Podemos então concluir que: • 37.68 aproxima 12π com 2 a.s.c.+1 a.s. com bastante significado e apenas 1 c.d. com bastante significado, isto é, o produto tem sensivelmente o mesmo número de a.s. do valor com que se entrou para π; • 15.14 aproxima 12 + π com 4 a.s.c. e 2 c.d.c., isto é, a soma tem o mesmo número de c.d. do valor com que se entrou para π. EXEMPLO 3 Ana Maria Faustino Análise Numérica - DEC 11 Sejam x0 = 1475.54 e y0 = 0.0768 dois valores aproximados de x e y com todos os dígitos correctos, isto é, x∈[1475.535,1475.545]) e x0 tem 2 c.d.c e 6 a.s.c. ao aproximar x ( y0 tem 4 c.d.c e 3 a.s.c. ao aproximar y ( y∈[0.07675,0.07685]) Por enquadramento pode-se concluir que: • x0 + y0 = 1475.6168 tem 2 c.d.c. (tantas quantas as da parcela que tem menos) pois, x+y ∈[ 1475.535+0.07675, 1475.545+0.07685 ] x+y ∈[ 1475.6118, 1475.6219] ∆(x0 + y0) = max {| fmin - (x0 + y0) |,| fmax- (x0 + y0) |} = max {0.00505,0.00505} ≈ 0.5 × 10 -2 ⇒ 2 c.d.c. • x0 - y0 = 1475.4632 tem 2 c.d.c. (tantas quantas as do argumento que tem menos) pois, x-y ∈[ 1475.535-0.07685, 1475.545-0.07675 ] x-y ∈[ 1475.4582, 1475.4683] ∆(x0 - y0) = max {| fmin - (x0 - y0) |,| fmax- (x0 - y0) |} = max {0.00505,0.00505} ≈ 0.5 × 10 -2 ⇒ 2 c.d.c. • x0 ×y0 = 113.32147 tem 3a.s.c. (tantos quantos os do factor que tem menos) pois, x×y ∈[ 1475.535×0.07675, 1475.545×0.07685 ] x×y ∈[ 113.24731, 113.39563] ∆(x0 × y0) = max {| fmin - (x0 × y0) |,| fmax- (x0 × y0) |} = max {0.0741608,0.0741613} ≈ 0.75 × 10 -1 < 0.5 × 10 0 ⇒ 0 c.d.c. e 3 a.s.c. Ana Maria Faustino Análise Numérica - DEC 12 • x0 ÷ y0 = 19212.76 tem 3 a.s.c.. (tantos quantos os do argumento que tem menos) pois, x÷y ∈[ 1475.535÷0.07675, 1475.545÷0.07685 ] x÷y ∈[ 19200.195, 19225.342] ∆(x0 ÷ y0) = max {| fmin - (x0 ÷ y0) |,| fmax- (x0÷y0) |} = max {12.565231, 12.581603} ≈ 13 < 0.5 × 10 2 ⇒ c.d de ordem -2.3 a.s.c. correcta A aplicação das regras práticas mostra que, para algumas operações aritméticas o que sensivelmente se mantém é o número de c.d. (adição e subtracção) enquanto que para outras é o número de a.s. (produto e divisão). Como o número de a.s. nos dá uma boa informação da precisão de um número, no caso do produto e divisões temos sensivelmente a precisão do argumento menos preciso. Enquanto que no caso da adição e subtracção teremos que converter a informação de c.d. em a.s. para saber a precisão. Se se está a adicionar (números do mesmo sinal) como a ordem de grandeza da soma é superior a cada uma das parcelas o número de a.s. pode ser superior ao da parcela que tem menos. Se se está a subtrair, a ordem de grandeza da diferença pode ser significativamente inferior se se estiver a subtrair números muito próximos e, neste caso, o resultado pode perder muitos a.s. relativamente aos a.s. dos argumentos. EXEMPLO 4 2.6+8.067 ≅10.7 tem 1c.d.c. e 3 a.s.c. (+1 a.s. do que 2.6) 1.523 - 1.5102 ≅ 0.013 tem 3c.d.c. e 2 a.s.c. (-2 a.s. do que 1.523) Para que o resultado da diferença de números muito próximos tenha um número suficiente de a.s. é necessário trabalhar com mais a.s. para cada parcela ou então recorrer a expressões equivalentes. Na realidade, quando se efectuam cálculos com números aproximados a propagação dos erros vai depender do algoritmo utilizado. Ana Maria Faustino Análise Numérica - DEC 13 EXEMPLO 5 Se se considerar as expressões equivalentes 1 (3+ 8) 3 ( ) 3 = 3− 8 = 99 − 35 × 8 8 = 2.83, obtém-se: e se calcular os seus valores usando a aproximação 1 ≈ 5.0465472 × 10−3 (3+ 8) (3− 8) ≈ 4.913 × 10 3 3 −3 99 − 35 × 8 ≈ −5 × 10−2 Se as expressões são equivalentes, por que razão os resultados são tão diferentes? As regras práticas, neste caso, são suficientes para explicar esta diferença tão significativa. De facto, o valor 2.83 aproxima • 8 com 2 c.d.c. e 3 a.s.c. portanto, na 1ª expressão, a primeira operação executada, a adição, vem com 2 c.d. e 3 a.s. (pois é da ordem das unidades); a segunda operação é uma potência de ordem 3 (não muito elevada) logo o resultado mantém 3 a.s.c.. Como a terceira operação é uma divisão com um número exacto, pode-se concluir que o resultado final vai ter 3 a.s.. • na 2ª expressão, a primeira operação executada, a subtracção, vem com 2 c.d. e 2 a.s. (pois é da ordem das décimas); a segunda operação é uma potência de ordem 3 logo o resultado final vai ter 2 a.s.. • na 3ª expressão, a primeira operação executada, a multiplicação, vem com 3 a.s. e 1 c.d.. (pois é da ordem das dezenas); a segunda operação é uma diferença logo o resultado final vai ter 1 c.d. mas, como é da ordem das milésimas, vai ter 0 a.s., isto é, o erro é superior à ordem de grandeza do resultado. Sugestão: use toda a precisão da sua máquina para calcular as expressões anteriores e justifique os resultados obtidos. Ana Maria Faustino Análise Numérica - DEC 14 Número de condição Quando se executam cálculos aproximados para determinar uma expressão y=f(x) o resultado obtido ~ y = f a ( x ) é, normalmente, diferente de y. Isto é, ao substituir-se o cálculo de f por um algoritmo aproximado fa comete-se um erro que interessa y = f ( x~ ) , isto quantificar. Se f: X→ Y é contínua em X então pode-se interpretar que ~ é, ~ y é o resultado exacto que se obteria aplicando f a x~ e em que x~ é um valor aproximado de x. Então se y≠0, por (3), pode-se obter a expressão δy = ∆y f ′ ( x ) x ∆x ≈ . | y| f ( x ) | x| que relaciona os erros máximos relativos do dado e do resultado. O valor f ′( x ) x . f (x ) cond f ( x ) = designa-se por número de condição da função f no ponto x. Uma função diz-se mal condicionada se o seu número de condição for muito elevado, e bem condicionada se o seu número de condição for pequeno. Isto é, um problema é bem condicionado se pequenas perturbações nos dados provocarem pequenas variações nos resultados e mal condicionado se pequenas perturbações nos dados provocarem grandes variações nos resultado. O algoritmo fa utilizado para calcular y por sua vez diz-se estável se x~ , tal que fa (x)=f( x~ ), for próximo de x e instável, se x~ não for suficientemente proximo de x. 9 Exemplo 1: Se f ( x ) = 10 1 − 10 1 f ′( x ) = x < 1 , isto é a função e cond f ( x ) = 10 10 x é bem condicionada Exemplo 2: Se f(x)=1-x f’(x)=-1 e cond f(x)= −x 1− x e a condição depende de x. Por exemplo, se x ≈ 1 , caso de diferença de números muito próximos, a condição é muito x= 1 , 2 grande e f(x) cond f ( x ) = é bastante mal condicionada; no entanto, se 1 e f(x) é bem condicionada. 2 Ana Maria Faustino Análise Numérica - DEC 15 Aritmética computacional Existem vários processos de representar números, podem ser representados em diferentes bases, por exemplo: • Os números inteiros na base 10: (428)10= 4 × 102 + 2 × 101 + 8 × 100 na base 2 :...(1011)2 = 1 × 23 + 1 × 21 + 1 × 20 na base b :...(dn dn-1...d1 d0)b= dn × bn+ dn-1 × bn-1 +...+ d1 × b1 + d0 × b0 b≥2 e 0≤di<b Quando existem bases superiores a 10 além dos dígitos de 0 a 9 é comum usar as letras do alfabeto; por exemplo, na base hexadecimal (16), os dígitos são 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E e F. (outra forma possível é usar os grupos de dígitos 10, 11,....). • Os números reais na base 10: (76.075)10=7 × 101 + 6 × 100 + 7 × 10-2 + 5× 10-3 na base b :..(dn dn-1...d1 d0 d-1 d-2...d--p)b= dn×bn+... +d0×b0 + d-1 × b-1+... + d-p× b-p Os dígitos (dn dn-1...d1 d0 )b constituem a parte inteira, e os dígitos ( d-1 d-2...d--p)b , a parte fraccionária da representação do número na base b Se os números são muito grandes ou muito pequenos é usada a chamada notação científica. Esta notação consiste em escrever um número na forma x = ± m × bt em que m é um número real não negativo designado por mantissa , b ≥2 é um número inteiro positivo designado por base e t é um numero inteiro designado por expoente. Na representação normalizada se x = 0 m= 0 −1 b ≤ m < 1 se x ≠ 0 Nesta representação o primeiro dígito da mantissa de um número diferente de zero é sempre diferente de zero. Esta representação normalizada aparece para uniformizar a representação dos números. No entanto não elimina todas as ambiguidades. Qualquer Ana Maria Faustino Análise Numérica - DEC 16 representação com m=0 e t qualquer serve para representar o zero, e o número 0.(9) com dízima periódica 9 e 0.1× 10 1 representam o mesmo número. De facto, pela fórmula da soma das progressões geométricas, 01 . =1 1 − 01 . ∞ 0.( 9 ) = ∑ 9 × 10− i = 9 × i =1 Mudanças de bases Para efectuar a conversão de um número x na base a para a base b teremos que encontrar a sequência de dígitos βi tal que: Se x é inteiro n ( x ) a = ∑ β i b i −1 i =1 e n ( x ) a ÷ (b ) a = β 1b −1 + ∑ β i b i − 2 i =2 123 14243 Fr Q onde Fr é a parte fraccionária da divisão de (x)a por (b)a e Q é o quociente inteiro, logo β1 é o resto da divisão inteira. Para encontrar todos os dígitos repete-se o processo para Q até Q = 0. Exemplo: (5)10 = (101)2 5 1 2 2 0 2 1 2 1 0 Se x é fraccionário n ( x ) a = ∑ β i b −i i =1 e n ( x ) a × (b ) a = β 1 + ∑ β i b − (i −1) i =2 123 14243 Int Fr onde Fr é a parte fraccionária e β1 é a parte inteira do produto. Para encontrar todos os dígitos repete-se o processo para Fr até Fr = 0. Ana Maria Faustino Análise Numérica - DEC 17 Exemplo: (0.55)10=(0.10(0011))2 0.55×2=1.1 0.1×2=0.2 → 0.2 ×2 =0.4→0.4×2 = 0.8 →0.8×2=1.6 0.6×2=1.2 → 0.2 ↑ encontrou-se o período. Com este exemplo verifica-se que, quando se muda de base, a representação exacta pode deixar de ser finita e passar a ter um número infinito de dígitos. A representação na base 10 obtém-se directamente fazendo: (βn…β0.β-1…β-p)b = βn × bn +…+β0+β-1× b-1+…+β-p× b-p Exemplo:(0.1011)2=1 × 2-1 +0 × 2-2 +1× 2-3 + 1× 2-4 Erros na aritmética em vírgula flutuante As máquinas de calcular e os computadores só dispõem de um número finito de dígitos para representar os números. Deste modo, as máquinas usam uma notação científica modificada pois utilizam um número finito de dígitos p para a mantissa e um número finito de dígitos q para o expoente, obtendo-se a chamada representação em vírgula flutuante. Isto é, as máquinas de calcular e os computadores trabalham com um número fixo de a.s. e só conseguem representar exactamente números reais da forma t x=±m×b | t |≤ b q − 1 em que −1 −p b ≤ m ≤ 1 − b Esta representação de x é denotada usualmente por fl(x). Erros de representação Se x tiver uma representação exacta em vírgula flutuante fl(x)=x. Se não for possível obter a representação exacta, normalmente, a máquina arredonda de modo a que todos os dígitos sejam a.s.c., cometendo um dado erro relativo fl(x)=x(1+δ). Se a representação de x na base b necessitar de um expoente superior a bq - 1 o número não é Ana Maria Faustino Análise Numérica - DEC 18 representável e diz-se que ocorreu um “overflow”. Analogamente, se o expoente for inferior a -(bq - 1) diz-se que ocorreu um “underflow”. Suponhamos uma máquina que trabalha com p=4 ,q=1 e b=10. Os 4 a.s. vem por arredondamento de cada um dos resultados das operações Vejamos o que acontece quando se executam determinados cálculos. Adição de números de ordem de grandeza muito diferente. Exemplo 1 : 0.1347+5614.=5614. A parcela mais pequena não influênciou o resultado. Como consequência disto pode-se verificar que, no cálculo aproximado, a propriedade associativa da adição deixa de ser válida. Exemplo 2 : ((((3.567+0.0004985)+0.0004821)+0.0004789)+0.0004657) = 0.3567×10 (3.567+(0.0004985+(0.0004821+(0.0004789+0.0004657)))) = 0.3569×10 Conseguiu-se com o segundo algoritmo um resultado mais preciso. Por quê? As máquinas de calcular, como trabalham com um número fixo p de a.s., quando efectuam um cálculo cometem um erro relativo que depende de p. Isto é, quando operam com números x e y, os resultados obtidos são valores aproximados dos exactos que se podem representar do seguinte modo: fl ( x + y ) = ( x + y ) (1 + δ ); ~ fl ( x × y ) = ( x × y ) (1 + δ ); fl ( x ÷ y ) = ( x ÷ y ) (1 + δ$) Logo ao calcular (x+y)+z) tem-se: (x+y) (1+δ1) e ((x+y) (1+δ1)+z) (1+δ2)= =((x+y)+(x+y) δ1+z) (1+δ2)= =(x+y+z) +[(x+y) (δ1+δ2) + z δ2] +(x+y) δ1 δ2 14243 desprezável Ana Maria Faustino Análise Numérica - DEC 19 Isto é, o erro que afecta (x+y) é (δ1+δ2), em princípio, maior do que δ2 que afecta .z. Logo se se deixar para o fim a parcela maior há mais probabilidades de obter um resultado mais preciso. Demonstre que: (...((x1+x2)+x3)+...)+xn→ →(x1+x2+...+xn)+[(x1+x2)(δ1+δ2+...+δn-1)+x3(δ2+δ2+...+δn-1)+...+xn δn-1] e como, em princípio, |δ1+δ2+...+δn-1| > |δn-1| então é vantajoso que | x1| <|xn|. Erros devido à mudança de bases Enquanto as máquinas de calcular trabalham na base 10, os computadores trabalham na base 2. É por isso mais difícil dizer com quantos a.s., da base 10, os computadores trabalham. 30000 Exercício1: Usou-se um computador e uma máquina para determinar S = ∑ xi i =1 para xi =0.5 e xi=0.11 e obteve-se os seguintes resultados: para xi =0.5 na máquina S=15000 no computador S=15000 para xi=0.11 na máquina S=3300 no computador S=3299.99691 Justifique os resultados obtidos. Exercício2: Use uma máquina de calcular com 4 a.s. para obter as raízes da equação x2 - 14x + 0.01=0 com o máximo da precisão permitida pela máquina. Ana Maria Faustino