Métodos Numéricos Para Engenheiros Co SCILAB

March 23, 2018 | Author: zaazlx | Category: Numerical Analysis, Numbers, Exponentiation, Physics & Mathematics, Mathematics


Comments



Description

Métodos Numéricos para Engenheiros com ScilabSérgio Galdino 26 de Setembro de 2013 Capítulo 1 Erros em computações numéricas 1.1 Glamour da computação A opinião geral é que computadores são capazes de fazer operações aritméticas rapidamente e com grande exatidão. Em parte correta quando comparada ao cálculo manual. Por exemplo, taxas típicas para multiplicação manual de números são 0.05s−1 ( são 20s para efetuar uma multiplicação) enquanto num computador são tipicamente maiores que 106 s−1 chegando facilmente a 1012 s−1 em supercomputadores. Os cálculos computacionais superam em várias ordens de magnitude os cálculos manuais, permitindo, assim, enfrentar verdadeiros desaos computacionais. Só para produzir o efeito psicodélico pode ser dito que em 1 segundo um computador de 106 /s pode fazer mais cálculos (e sem cometer erros grosseiros) que uma pessoa irá fazer manualmente em sua vida inteira. Desviando-se do glamour da computação, este capítulo dará bases pra mostrar que resultados de computações numéricas devem ser vistas com cautela. 1.2 Análise numérica versus análise matemática A análise matemática (no cotidiano) e análise numérica diferem muito quando são utilizadas. A análise matemática normalmente assume uma representação innita para números e processos, enquanto computações numéricas são realizadas em maquinas nitas em tempo nito. A representação nita dos números em uma máquina produz erros de arredondamento, enquanto a representação nita de um processo produz erro de truncamento: Exemplos: Números: π = 3.1415926535 . . . (1.1) 3 4 CAPÍTULO 1. ERROS EM COMPUTAÇÕES NUMÉRICAS 1 = 0.33333 . . . 3 (1.2) Processos: ∫ b f (x)dx = lim ∆xi →0 a n ∑ f (xi )∆xi , ∆xi = (xi+1 − xi ) (1.3) i=1 df (x) = lim ∆x→0 dx ( f (x + ∆x) − f (x) ∆x ) (1.4) Grande parte da matemática é sensível aos efeitos produzidos pelo arredondamento numérico; esta vulnerabilidade é que os estatísticos chamam de "não é robusto". Esta diferença é fundamental, pois somente partes da matemática resistente aos erros de arredondamentos são úteis em matemática aplicada ao mundo real. Signicados diferentes surgem para as mesmas palavras. A expressão zeros de um polinômio pode ter vários signicados em computação e um único signicado em matemática (ver [4] sec 1.10). A matemática lida preferencialmente com teoremas exatos e precisos; análise numérica usa muitos métodos heurísticos. A existência de um teorema não é suciente em cálculos computacionais. Estas diferenças são muitas vezes sérias e conduzem a grandes desentendimentos. 1.3 Dígitos signicativos, precisão, exatidão e erros Quando se trata com valores numéricos e cálculos numéricos, existem vários conceitos que devem ser considerados: , 1. Dígitos signicativos 2. Precisão e exatidão 3. Representação do número 4. Erros Os três primeiros conceitos são discutidos brevemente nesta seção e os demais nas próximas. Dígitos signicativos 1. 9. os sistemas octal. são usados para representar qualquer grandeza. Na aritmética padrão das máquinas digitais as duas primeiras são verdadeiras mas a terceira não. . O número 2 é a base do sistema e os símbolos 0 e 1 servem para representar uma grandeza qualquer.1 Representação O sistema de numeração decimal é o mais usado pelo homem nos dias de hoje. 22 = 4. Precisão e Exatidão Precisão refere-se a quão próximo um número representa o número que ele está representando. hexadecimal. A precisão é governada pelo número de dígitos a ser utilizado nos cálculos numéricos. 1. . Isto ocorre pelo fato de que cada símbolo octal e hexadecimal representa um equivalente a três e quatro símbolos no sistema binário e vice-versa. Precisão e exatidão são quanticados pelos erros de cálculos numéricos. 4. De fato.4. Ao lado do sistema binário. 2.4. 1. e ( 2)2 = 2. é chamado de base do sistema. 3. é importante estimar quantos dígitos signicativos estão presentes no resultado nal computado.) não é a mesma que é usada em cursos de cálculo ou álgebra. 1. base 8 e 16 respectivamente. Exatidão refere-se a quão próximo um número está do valor real do número que está representando quanticado pelo erro absoluto ou relativo.. O fato de o sistema decimal ser largamente utilizado tem evidentemente razões históricas. A exatidão é regida por erros na aproximação numérica. 8. 6.. 7. são também utilizados. O termo precisão refere-se a exatidão com as quias as operações aritméticas são realizadas. Os símbolos 0. calculadoras. pois na realidade qualquer número inteiro maior que 1 poderia ter sido escolhido. no mundo dos computadores digitais o sistema binário é o utilizado.4 Computações Numéricas A aritmética das máquinas digitais (computadores. Quando estes números são processados através de um algoritmo numérico. ou dígitos signicativos em um número. O número 10 tem papel fundamental. são os dígitos do número que se sabe serem corretos. Para entender poque isto é verdadeiro deve-se explorar o mundo da aritmética de precisão nita utilizada por máquinas digitais. Assume-se como √ armações verdadeiras que 2 + 2 = 4. 5. Cálculos de engenharia e cientícos geralmente começam com um conjunto de dados com um número limitado de dígitos signicativos. COMPUTAÇÕES NUMÉRICAS 5 Os algarismos signicativos. 01012 . e dividindo i por M nós obtemos um quociente q1 e um resto r1 = b0 . Então 26110 = 1. bj−1 . bk−1 . · · · . · · · são os restos consecutivos quando i é dividido repetitivamente por M . 359 para a representação binária. dividiremos q1 por M . Temos então a equação: x = am N m + · · · + a1 N 1 + a0 N 0 + a−1 N −1 + · · · + a−n N −n = bj M j + · · · + b1 M 1 + b0 M 0 + b−1 M −1 + · · · + b−k M −k (1. b2 . bk−1 . isto é. nós conseguiremos q2 e o resto r2 = b1 . a0 . b0 . b1 . na M-representação. Os cálculos devem ser feitos na N-representação e M deve ser também dado nesta representação. b−k devem ser expressos com símbolos de dígitos da N-representação. b−k devem ser determinados.0000. Exemplo 1 Conversão o número decimal 261. e. · · · . b1 . b−1 . Observe que bj . isso é.5) onde os coecientes am . bj−1 . · · · .2 Conversão Dado um número x representado na base N. Conversão: Decimal para binário Inteiro: Divisão sucessiva do número decimal por 2 261 2 1 130 2 0 65 2 1 32 2 0 16 2 0 8 2 0 4 2 0 2 2 0 1 O número inteiro binário é obtido através dos restos das divisões escritos na ordem inversa da sua obtenção. · · · . a1 . a−1 .4. b0 . Para realizar a conversão dividiremos x em uma parte inteira i e uma parte fracionária f .6 CAPÍTULO 1. an−1 . am−1 . b1 . e nós queremos saber como representa-lo na base M. b−1 . · · · . b0 . a−n são conhecidos e os coecientes bj . Nós temos i = bj M j + · · · + b1 M 1 + b0 M 0 . Continuando. ERROS EM COMPUTAÇÕES NUMÉRICAS 1. na N-representação. obviamente. Fração: Multiplicação sucessiva da fração decimal por 2 . · · · . De forma semelhante nós encontramos a parte fracionária como as partes inteiras consecutivas quando f é multiplicado repetitivamente por M e a parte inteira é removida. 952x2 = 1.2003 . A fração binária é obtida através das sobras.904 1 0. Somando-se as partes inteiras e fracionárias dos binários obtidos têm-se 261. Fração: Multiplicação sucessiva da fração decimal por 3 . parte inteira.718 0 0.. Então 0.872 0 0.904x2 = 1. .976 0 0.359x2 = 0. .808 1 . Então 26110 = 100.1 · · ·2 Exemplo 2 Conversão o número decimal 261.952 1 0. .774 1 0. 0101. 0101.774x2 = 1. Conversão: Decimal para ternário Inteiro: Divisão sucessiva do número decimal por 3 261 3 0 87 3 0 29 3 2 9 3 0 3 3 0 1 O número inteiro ternário é obtido através dos restos das divisões escritos na ordem inversa da sua obtenção. 359 para a representação ter- nária.0101.. .1011.0000.1. ..976x2 = 1.436 1 0.1 · · ·2 .436x2 = 0. das multiplicações escritas na ordem direta de sus obtenção.872x2 = 1. COMPUTAÇÕES NUMÉRICAS 7 Multiplicação Sobra 0. 35910 = 0.1011..488 1 0.488x2 = 0.4. . .718x2 = 1. 35910 = 1. 693 0 0.711 0 0.264x16 = 4. 100.. . Conversão: Decimal para hexadecimal Inteira: Divisão sucessiva do número decimal por 16 261 16 5 16 16 0 1 O número inteiro hexadecimal é obtido através dos restos das divisões escritos na ordem inversa da sua obtenção. .077x3 = 0.077 1 0.231x3 = 0. .693x3 = 2.784 6 0.264 11 0.359x16 = 5.. 35910 = 100. .. .784x16 = 12.133x3 = 0.200.711x3 = 2. Somando-se as partes inteiras e fracionárias dos binários obtidos têm-se 261. .079x3 = 0. das multiplicações escritas na ordem direta de sus obtenção. Fração: Multiplicação sucessiva da fração decimal por 16 Multiplicação Sobra 0.224 4 .704x16 = 11.359x3 = 1. .904x16 = 14.079 2 0.200.200. Então 26110 = 10516 . parte inteira. .237 0 0. .231 0 0. .464 14 0.197 1 .744 5 0.904 11 0.237x3 = 0.201 · · ·3 Exemplo 3 Conversão o número decimal 261. . Então 0. 359 para a representação hexa- decimal. A fração ternária é obtida através das sobras.464x16 = 7. ... . ERROS EM COMPUTAÇÕES NUMÉRICAS Multiplicação Sobra 0.544x16 = 8..399 0 0.704 8 0.133 2 0.424x16 = 6.544 12 0.8 CAPÍTULO 1. 100. 35910 = 0.424 7 0.201 · · ·3 .744x16 = 11.. .399x3 = 1.. . '+y .1) 0. 5. // Conversão de inteiros da base 10 para uma base qualquer function y=conv10(x.b) y='' while x > 0 cx=modulo(x. 3.sce Este roteiro Scilab realiza a conversão de inteiros na base 10 para base qualquer. parte inteira. 1. 35910 = 0. 35910 = 0. 35910 = 105. 5 11 14 7 6 12 8 11 4 · · ·16 ou utilizando-se os símbolos hexadecimais (Tabela 1. Grandeza Símbolo decimal hexadecimal 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F A fração hexadecimal é obtida através das sobras.1.4. Então 0.8B4 · · ·16 Somando-se as partes inteiras e fracionárias dos binários obtidos têm-se 261. 2. 5BE. 4.b) x=int(x/b) y=string(cx)+'. 7.76C. COMPUTAÇÕES NUMÉRICAS 9 Tabela 1. 5BE.1: Símbolos Hexadecimais.8B4 · · ·16 Conv10.76C. 6. das multiplicações escritas na ordem direta de sus obtenção. 9) ans = .0. ERROS EM COMPUTAÇÕES NUMÉRICAS 8.' i=0 while i < n p=x*b cx=int(p) y=y+string(cx)+'.16) ans = 1. 12.3) ans = 1.0.1.1.2) ans = 1.359.1.0.0.1.2.sce pode-se realizar as conversões. --> -->convF10(0.b.1.0. 3. // Conversão de fracionários da base 10 para uma base qualquer function y=convF10(x.1.sce Este roteiro Scilab realiza a conversão de fracionários na base 10 para base qualquer.0. Aqui estão os resultados: -->conv10(261. --> ConvF10. 2.10 CAPÍTULO 1. 8.2.n) y='0. endfunction Ao executar o roteiro Conv10. Aqui estão os resultados: -->convF10(0.3. 4. 1.sce pode-se realizar as conversões. 9.0.359.1.0.0.' x=p-cx i=i+1 end endfunction Ao executar o roteiro ConvF10. --> -->conv10(261.5.0. 11.0.0. 5.0.1. 10. end 9.9) ans = 0. 7. --> -->conv10(261.0. 6. 1. 10.0. 18.0. 7.6. 2.0.2.1. COMPUTAÇÕES NUMÉRICAS 11 0.11.b. 14.9) ans = . --> -->conv10X(261.0) ans = 1.1. 15.359.b) x=int(x/b) yi=string(cx)+'.0.0.' x=p-cx i=i+1 end y=y+yf endfunction Ao executar o roteiro Conv10X.sce ) . 8..4.1.12.sce e ConvF10.1. 16.0.2.1.1.1.0.7. Aqui estão os resultados: -->conv10X(261. 22.9) ans = .1. 17.1.n) x=int(xx) yi='' while x > 0 cx=modulo(x. 3.16.0.5. 19. 4. 13.0.2.11. 6.0.2.4.14. 12.2. 1. 11.0.0.8.sce Este roteiro Scilab realiza a conversão de um número na base 10 para base qualquer (combina Conv10. // Conversão da base 10 para uma base qualquer: Inteiro + Fração function y=conv10X(xx.0. 21.1.359. --> Conv10X.sce pode-se realizar as conversões.359.' i=0 while i < n p=x*b cx=int(p) yf=yf+string(cx)+'. 20.9) ans = 0. 5.'+yi end y=yi x=xx-int(xx) yf='. --> -->conv10X(0. 9.0. --> -->convF10(0. 200.5.11.1.12 Parte inteira 1 · 28 + 0 · 27 + 0 · 26 + 0 · 25 + 0 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 0 · 20 = 261 Parte fracionária 0 · 2−1 + 1 · 2−2 + 0 · 2−3 + 1 · 2−4 + 1 · 2−5 + 0 · 2−6 + 1 · 2−7 + 1 · 2−8 + 1 · 2−9 ∼ = 0.1.1..1.5.0. 0016 Exemplo 5 261.5.8.359.1011.0000.12 CAPÍTULO 1.16. --> -->conv10X(0.0101.14.9) ans = 1.16.200.1.11. --> -->conv10X(261. 35910 ∼ = 100.0.4. 35910 ∼ = 1.16.12.1.14.2013 Parte inteira 1 · 35 + 0 · 34 + 0 · 33 + 2 · 32 + 0 · 31 + 0 · 30 = 261 .7. ERROS EM COMPUTAÇÕES NUMÉRICAS 1.0.5.7. 3574| = 0.0.9) ans = .0.1.4.0.3 Conversão de uma base qualquer para base 10 Para obter-se o número decimal equivalente a um número escrito em qualquer base é só multiplicar cada dígito por sua potência: Exemplo 4 261.1. 100.359.0.0. 359 − 261. --> 1.6.8.0. 3574 Erro |261. 0101.11.12.0.4.6...0) ans = 1.11. --> -->conv10X(261.0. sendo geralmente escolhido como uma potência de 2.4 Representação de um número inteiro A representação de um número inteiro num computador qualquer que trabalha internamente com uma base xa β ≥ 2 (um número inteiro).8B416 Parte inteira 1 · 162 + 0 · 161 + 5 · 160 = 261 Parte fracionária 5 11 14 7 6 12 8 11 4 + 2+ 3+ 4+ 5+ 6+ 7+ 8+ 9 1 16 16 16 16 16 16 16 16 16 ∼ = 0. na base β = 10. ele possui uma única representação. 35910 ∼ = 105. Por exemplo. · · · . 35899 Erro |261.6) onde os ni . 1. 5BE. 359 − 0. .1. 00001 Exemplo 6 261. n = ±(nk nk−1 · · · n1 n0 ) = ±(nk β k + nk−1 β k−1 + · · · + n1 β 1 + n0 β 0 ). 35910 ∼ = 105.4. 35899| = 0. 261. i = 0. (1. o número 1957 é representado por: 1957 = 1 × 103 + 9 × 102 + 5 × 101 + 7 × 100 e é armazenado como n3 n2 n1 n0 .76C.4. k são inteiros satisfazendo 0 ≤ ni < β e nk ̸= 0. 5 11 14 7 6 12 8 11 416 ou seja. 35899999999674 Erro |261. 24 × 10−12 1. 35899999999674| ∼ = 3. COMPUTAÇÕES NUMÉRICAS 13 Parte fracionária 1 · 3−1 + 0 · 3−2 + 0 · 3−3 + 2 · 3−4 + 0 · 3−5 + 0 · 3−6 + 2 · 3−7 + 0 · 3−8 + 1 · 3−9 ∼ = 0. 359 − 261. Dado um número inteiro n ≥ 0. um número fracionário em ponto xo. respectivamente.14 CAPÍTULO 1. k= expoente.4. 2 se o sistemas de numeração for binário. um número x na representação do ponto-utuante tem a forma seguinte: x = ±m · β k (1. Observação 1 m−1 ̸= 0 ou 1 < m < 1 (signica que devemos ter um digito não β nulo após a virgula) caracteriza o sistema de números em ponto utuante normalizado. Um número real. no passado. tal que se x ̸= 0..8) onde m= mantissa. i = 1. 0 ≤ m−i < β . isto é.x−1 x−2 x−3 . b) Representação do ponto-utuante Em geral. m= n ∑ m−i β −i i=l l > 0. o número 1957. na base β = 10. β −1 ≤ m < 1 e −m ≤ k ≤ M ) .325 = + −3 ∑ xi β i i=3 = 1 × 103 + 9 × 102 + 5 × 101 + 7 × 100 + 3 × 10−1 + 2 × 10−2 + 5 × 10−3 e é armazenado como x3 x2 x1 x0 . . ERROS EM COMPUTAÇÕES NUMÉRICAS 1.5 Representação de um número real A representação de um número real no computador pode ser feita de duas maneiras: a) Representação do ponto xo Este foi o sistema usado. x ̸= 0. então m−1 ̸= 0. por muitos computadores. β = base. Por exemplo. · · · t. etc. ele será representado em ponto xo por: x=± −l ∑ (1. Sendo ainda usado por ser simples em aplicações de microprocessadores. com t a quantidade de dígitos signicativos ou precisão do sistema . um inteiro. 2. frequentemente l = 1. 10 se o sistema de (onde numeração for decimal. Observação 2 o número zero pertence a qualquer sistema e é representado com mantissa igual a zero e k = −m.325 é representado por: 1957.7) xi β i i=k onde k e l são o comprimento da parte inteira e fracionária do número x. normaliza-lo se deslocarmos o ponto três lugares à direita e somar -3 ao expoente. usa-se a notação: Um ±0. a mantissa é igual a -0.4 × 10−3 .0913 = 0. com t dígitos signicativos e com limites do expoente m FN (β. = 0. Então: x1 x2 x3 x4 x5 = 0.3 = 0. = 0.0004 = 0.472 = −0.0004 = 0.9) −m ≤ k ≤ M . Diferença entre dois números na aritmética em ponto utuante nor- 0.8472 × 101 .3 e x5 = 0.27143247 · 107 −0. m. Solução: Os número serão representado por ±0. M ). = −8.2 · 10−8 em ponto utuante na forma Reescrevendo o número para a forma N = −0. M ) será representado por: e M. 3.913 × 10−1 .53 = 0.0913.3 = 0.4. x2 = −8. t.4 × 10−3 .472. 15 COMPUTAÇÕES NUMÉRICAS Exemplo 7 normalizada.3 = 0. Para representarmos um sistema de números em ponto utuante normalizado. onde todos estão na base β = 10. t. por outro lado 0. causando overow. obtendo-se 0. Observe que os números x4 = 35391. = 0.71011000 · 104 normalizado.0004 = 0. = −8.m−1 m−2 m−3 · · · m−t × β −k onde m−1 ̸= 0 e (1.353913 × 105 . onde −2 ≤ k ≤ 2. Escrever o número N = −19.00071011 · 107 Vemos que a diferença entre estes dois números ponto-utuante normalizados.27072236 · 107 0.4 × 10−3 e assim o expoente é menor que −2 causando underow. 2). Podemos.0004 não podem ser representados no sistema.0913 = 0. Exemplo 8 Considere o sistema FN (10. resulta num número em ponto-utuante não normalizado. na base β . −2. = 0.53. = 35391.53 = 0. x4 = 35391. De fato.1.m−1 m−2 m−3 · · · m−t × β −k . Represente nesse sistema os números do exemplo anterior.192 e a base é 10.913 × 10−1 .3 e x5 = 0.53 × 100 .192 · 10−6 .353913 × 105 . o número 35391. x3 = 0.0004 .53 × 100 . número em FN (β. .353913 × 105 tem o expoente maior que 2. = 35391. o número ca na representação do ponto-utuante. m. entretanto.8472 × 101 . o expoente é igual a -6.472 = −0. Escrevendo agora os números: x1 = 0. Exemplo 9 malizada. em ponto utuante na forma normalizada: x1 x2 x3 x4 x5 = 0. 25 0. 0. seguinte: O número tem o máximo de oito dígitos de precisão e a representação falha quando temos números muito grande ou muito pequeno. 0 se positivo e 1 se negativo. O número pode ser representado.5 x2 = 1. De modo análogo.00053474839 num computador deci0. mantissa = fração binária normalizada. A notação ponto-utuante normalizada deste número é 47 Par evitar expoente negativo.53474839 · 10−3 . 50 (deslocamento) ao expoente e o número agora é 0.1012 = 0. 12 2 0 6 0 2 3 2 1 1 Multiplicação 0. através da normalização da notação ponto-utuante.50 0. característica = 128 + expoente (resultado escrito em binário).25 x2 = 0. nós adicionamos.625x2 = 1. ERROS EM COMPUTAÇÕES NUMÉRICAS 1. Uma palavra armazenada tendo um bit de "sinal"e 31 bits regulares pode representar um número binário ponto-utuante na forma seguinte: 0 1 sinal 8 característica 9 31 mantissa normalizada onde sinal = sinal do número codicado.4. Exemplo 10 Represente o número 12.0 12.1100101 × 24 Ajustando a característica: 4 + 128 = 132 Sobra 1 0 1 . arbitrariamente.62510 = 1100.6 Armazenamento na memória Para começar vamos representar o número mal.53474839 · 10 . unicamente. na memória do computado utilizando o esquema de representação seguinte: + 5 3 4 7 4 8 3 9 ↘ 4 7 ↘ sinal característica = expoente + 50 Deve ser observado que a característica coloca o expoente limitado a expressão −50 ≤ k ≤ 49.625 numa palavra de 32 bits conforme esquema de representação acima. um número binário na representação do ponto-utuante também pode ser armazenado na memória de um computador digital. O expoente somado a uma constante arbitrária é chamado de característica.16 CAPÍTULO 1. . Na adição ou subtração de dois números o computador examina a característica ajustada dos dois números..4.Características distintas: menor valor. 32109876 54 +12340123 54 44449999 54 2.. Mantém-se a de maior módulo e ajusta-se a de .1.Quando existe estouro (overow) na adição das mantissas: O resultado será ajustado. Os seguintes casos são possíveis: 1. 51319212 55 +98756431 55 150075643 55 ↘ ↘ estouro característica Resulta em: 15007564 56 ↘ característica ajustada 3.. Princípios semelhantes são utilizados em computadores binários (digitais). 17 COMPUTAÇÕES NUMÉRICAS 132 2 0 66 0 2 33 2 1 16 2 0 8 2 0 4 2 0 2 2 0 1 13210 = 100001002 0 1 0 1 8 0 0 0 0 1 9 0 0 31 1 1 0 0 1 0 1 0.0 1. Para isto iremos considerar que estamos trabalhando num computador decimal com uma palavra de 10 dígitos de comprimento..4.7 Aritmética do ponto-utuante Os princípios das operações aritméticas básicas de um computador serão discutidos agora.Características iguais: Adiciona-se as mantissas e mantém-se a característica. 5 Análise de erros Resultados exatos dos cálculos são um supremo ideal em análise numérica. 31411122 55 +12344321 53 ERROS EM COMPUTAÇÕES NUMÉRICAS −→ 31411122 55 +00123443 55 31534565 55 4. à esquerda: 34122222 73 −34000122 73 00122100 73 resulta em: Normaliza-se o resultado. 038564583 característica ajuste +50 = 51 + 65 − 50 = 66. A produto é: 31313142 51 × 12315782 65 = 038564583 66 Com a normalização obtém-se o resultado: 38564583 65 1. O modelo resultante é uma abstração da realidade e vários modelos podem ser utilizados. .31313142 × 0. 12210000 71 Na multiplicação e divisão as mantissas e características são tratadas separadamente.12315782 = 0. Nas seções seguintes os quatro tipos de erros são caracterizados. eles são inevitáveis.. Os limites de erro são parte da especicação do problema numérico: ≤ |Erros do modelo + erros dos dados + erros de algoritmos + erro de arredondamento| tolerância Todos os erros relevantes têm que ser identicados e seus efeitos nos resultados numéricos devem ser avaliados. erros de dados. e requerimentos de exatidão podem ser impostos. por exemplo. 31313142 51 ×12315782 65 mantissa = 0.e. 1. Quatro tipos de erro afetam a exatidão dos cálculos [1]: erros de modelo. de erros de programação. Estes erros não são conseqüências de equívocos ou decisões precipitadas. ou zeros. onde −50 é o desconto para compensar o em cada ajuste do expoente da representação. A maioria da literatura em língua inglesa faz classicação diferente. eles podem ser controlados para permanecerem abaixo de certos limites de erros. Em muitos casos eles podem ser antecipados.Resultado com zero. várias grandezas são desprezadas.18 CAPÍTULO 1.5. Diferente.1 Erros de modelo Em qualquer processo de modelagem. i. erros de algoritmos e erros de arredondamento. 5. então pode ser tentada uma solução por algoritmo numérico. Uma instância é identicada por valores de parâmetros Por exemplo.1. Os impactos dos erros de dados são objetos de análise. mas para uma classe de aplicações similares.5. exp. O número κ2 é o número condição euclidiano da matriz A (ver seção 13. O erro devido a troca de um processo innito por uma seqüência nita de operações aritméticas é chamado de erro de truncamento. 2 κ2 := ∥A∥2 A−1 2 multiplicações matriz-vetor são necessárias para solução iterativa [3]. No desenvolvimento de algoritmos numéricos são feitas simplicações antes que uma formulação nita do problema possa ser obtida para que o esforço computacional requerido seja reduzido a um nível razoável. Exemplo: A solução do sistema de equações Ax = b. do modelo. A ∈ Rnxn . Normalmente tais estimativas não são obtidas pois os fatores envolvidos são desconhecidos e não quanticados. o deslocamento angular inicial θ e a (que depende da localização geográca) são parâmetros do modelo matemático do pêndulo simples.5. o custo computacional pode ser reduzido signicativamente. É necessário estimar a magnitude dos efeitos dos erros de modelagem para garantir os requisitos de tolerância de erro. . divisão e lógicas).2 Erro de dados Geralmente modelos não são para uma aplicação especíca. 1. Se A não possui estrutura especial. Para calcular funções predenidas sin. os valores usados para parâmetros do modelo diferem do verdadeiro valor (normalmente desconhecido). . somente uma seqüência nita de operações aritméticas são executados pelo computador. O desvio resultante dos resultados obtidos pelo algoritmo dos da solução do problema matemático é denotado por erro de algoritmo. 19 ANÁLISE DE ERROS O desvio inevitável entre o modelo e o objeto modelado é denotado por erro de modelagem. requer um esforço computacional proporcional a b. .4 Erro de truncamento Algoritmos numéricos implantados em um computador podem somente realizar uma seqüência nita de operações aritméticas (adição. isto é chamado de erro de dados. x ∈ Rn n3 . ln. então somente k≈ √ κ2 ln(2/ϵ) .5. 1.8 [1]). multiplicação. Devido a medições inexatas e outros fatores. Se uma solução aproximada x e satisfazendo ||Ae x − b|| < ϵ é suciente. subtração. .3 Erro de algoritmo Quando um problema matemático não pode ser resolvido analiticamente usando manipulações algébricas. 1. o comprimento constante gravitacional g l. A diferença entre o resultado exato e o resultado arredondado de uma operação á chamado de erro de arredondamento. 2.5. 1. 1. 1. Os erros de arredondamento comprometem a exatidão dos resultados quando tenta-se minimizar os erros de truncamento renando-se a malha de discretização.7 Estudo de caso É interessante ilustrar diferentes tipos de erro mais explicitamente [13]. Desta forma as operações feitas num programa de computador não são geralmente executadas exatamente.6 Erros de arredondamento Um computador fornece somente um conjunto nito de números: inteiros. A diferença entre inicial. portanto não são operações exatas.5 Erros de discretização O erro resultante de uma troca de informação contínua por informação discreta.20 CAPÍTULO 1. Normalmente f1 (freqüentemente uma expansão em série truncada). A diferença ϵ2 = f1 (e x) − f (e x) é o erro de truncamento. enquanto ϵ1 f = f (e x)−f (x) é o erro propagado correspondente. é referido como erro de discretização. O efeito dos erros de arredondamento acumulados sobre o resultado nal do método de aproximação é chamado de efeito de erro de arredondamento. Suponha que se quer computar por x e f (x) para um dado x real. Os é trocado por uma função mais simples de potência cálculos são feitos por um computador. · · · f (xn )}.5. Exemplo 12 O cálculo de uma integral denida ∫ b I= f (x)dx a são aproximados por somas nitas envolvendo uma malha de pontos xi ∈ [a. No cálculo prático x é aproximado x e − x é o erro pois o computador tem uma palavra nita. · · · n que pertencem ao conjunto de números de pontos utuantes e as correspondentes avaliações aproximadas das funções {f (x1 ). normalmente o mias próximo. num processo de amostragem. i = 1.5. Exemplo 11 ERROS EM COMPUTAÇÕES NUMÉRICAS A troca da série innita da exponencial: ex = ∞ ∑ xk k=0 k! com Pn (x) = n ∑ xk k=0 k! produz um erro de truncamento etrunc (x) := Pn (x) − cos(x) que cresce com a distância entre x e zero. Cada passo mapeia seu resultado em um dos números de ponto-utuante disponíveis. Muitos autores estendem o termo erro de truncamento para incluir o erro de discretização. Na o qual é um valor calculado errado . realidade calculamos f2 (e x) no lugar de f1 (e x). e número de ponto-utuante com mantissa de comprimento xo. b]. 3955296304 obtidos com 10 decimais ϵ3 = −0.6 Propagação de erros Os erros são denidos como absoluto e relativo. Se x é o número exato e x e uma aproximação. 21 PROPAGAÇÃO DE ERROS de uma função errada com argumento errado.3333 ( ϵ2 = f1 (e x) − f (e x) = − x2 x3 x4 x + + + 1! 2! 3! 4! ) 0. A diferença ϵ3 = f2 (e x) − f1 (e x) é o erro de arredondamento propagado.0000296304 ϵ = 1. O erro total é ϵ = f2 (e x) − f (x) = ϵ1 + ϵ2 + ϵ3 .0555 + 0. então temos: Erro absoluto : ϵ = |x − x e| e .3333 + 0. Exemplo 13 Calcular e1/3 fazendo todos os cálculos com 4 decimais.3333 − e1/3 = −0.0000362750 5! 6! f2 (e x) = 1 + 0.1.0005 = 1.000465196 ex ≈ f1 (x) = 1 + para xe = 0. (Obs.6.0001124250 1. Os cálculos foram feitas com uma calculadora) ϵ1 = e0.3955 − e1/3 = ϵ3 + ϵ3 + ϵ3 = −0.3955 f1 (e x) = 1.33336 0.0062 + 0.33335 + + · · · = −0. . ϵ . . . x e . . . . . Erro relativo : . . = . x − . Se o número na posição n + 1 for igual a 5. . o digito na posição n é acrescido Um número decimal é arredondado na posição tos à direita desta posição. n . x x (1. Frequentemente é feito o truncamento para decimais onde todos os dígitos além da posição n são simplesmente desprezados.11) n desprezando-se todos os dígin é deixado inalterado ou acrescido de uma unidade se o dígito da posição n + 1 é um número menor que 5 ou maior que 5.10) (1. O dígito na posição de uma unidade se ele for par e é deixado inalterado se for impar ( a regra pode ser o contrário: o digito na posição n é acrescido de uma unidade se ele for impar e é deixado inalterado se for par ) . 1415926535 Arredondamento: 3. . Nós encontramos direta- mente que ∆f = ∂f ∂f ∂f ∆x1 + ∆x2 + · · · + ∆xn ∂x1 ∂x2 ∂xn (1. somente com o conhecimento da situação é que podemos decidir se eles são signicativos ou não. x2 . x2 . xn ) com conhecidos. xn ) f (x1 . Portanto se a parte fracionária termina com um ou vários zeros. O erro máximo é dado por . eles são signicativos por denição.1416 (4d) 3. .14 (2d) 3. Naturalmente um dígito d localizado mais à esquerda tem mais informação do que um mais à direita. Em muitos casos nós estimamos o erro de uma função erros individuais nas variáveis (x1 ....22 CAPÍTULO 1.141 (3d) 3. . Pode-se dizer de forma simplória que dígitos signicativos são aqueles que têm informação sobre a dimensão do número sem contar com a parte exponencial. . Exemplo 14 ERROS EM COMPUTAÇÕES NUMÉRICAS 3. Se o número é inteiro e termina com zeros. . Quando um número é escrito com somente seus dígitos signicativos estes formam uma cadeia de símbolos que começa com o primeiro dígito diferente de zero. 8630574 escrito com 4 dígitos signicativos é 8630000.12) onde os termos de ordem superior foram desprezados.1415927 (7d) onde (nd) = número de casas decimais. Por exemplo. . . . . . . ∂f . . ∂f . . ∂f . . . . . |∆xn | . . |∆f | = . |∆x1 | + . |∆x2 | + · · · + . ∂x1 . ∂x2 . ∂xn . Por exemplo. se 20000 números são arredondados com quatro casa decimais e adicionados. ( ) x x e x+δ Calcula-se z = = = +ϵ y arredondado ye y+γ então z˜ ∼ =z+ 1 x ·δ− 2 ·γ+ϵ y y . Exemplo 15 x y Cálculo de z = . Se xe = x + δ e ye = y + γ são duas aproximações para os números exatos x e y . em computações práticas os erros têm uma tendência a cancelar [13]. (1. o erro máximo é 1 × 10−4 × 20000 = 1 2 O experimento com simulação Monte Carlo abaixo demonstra que a previsão acima é pessimista para o cenário examinado.13) O limite superior do erro é geralmente bastante pessimista. Os efeitos do uso da aritmética do pontoutuante serão vistos em alguns exemplos que seguem.1 Cancelamento numérico Devido ao comprimento limitado das palavras em computadores.6.010) = 9.07 x e=x+δ y=5 δ = 0.90 + (−0.04 ye = y + γ x = 1.6.000 z = −0.990) = 9.589 ye z+ 1 x · δ − 2 · γ + ϵ = 1.589 y y Caso B: x=8 δ = −0.909 + (0.6 y x e = 1. Os exemplos a seguir violam a lei associativa da adição: Exemplo 16 (usando-se uma máquina com quatro dígitos decimais na mantissa da representação) x = 9.1.909 y = 1.009 x e=x+δ y=5 δ = 0.6 y x e = 1.919 Exemplo 17 (usando-se uma máquina com quatro dígitos decimais na mantissa da representação) . 23 PROPAGAÇÃO DE ERROS Caso A: x=8 δ = 0. e em conseqüência do uso da aritmética do ponto-utuante com representação normalizada. as leis da aritmética elementar não são satisfeitas.56 y y O erro em z˜ é constituído dos erros propagados de x e y acrescido de um novo erro de arredondamento.990 (x + y) + z = 10.910 x + (y + z) = 9.08 ye = y + γ x = 1.561 ye z+ 1 x · δ − 2 · γ + ϵ = 1. 1. 0000 2.000 1. o que conduz a um 1 cancelamento perigoso.24 CAPÍTULO 1.000 = 300. Exemplo 18 x = 9909 y = −1. Se x2 for reescrito como: x2 = ϵ 2ϵ √ = x1 b + b2 − 4ϵ a raiz é aproximadamente ϵ sem perda de dígitos signicativos.0001) = −9.3472 + 0.000 √ 90000 − 4.0000 x2 = = = 0.000 ϵ = = 0. usando a relação x2 = x1 300. Se quisermos Sabe-se que para x grande senh(x) ∼ = cosh(x) ∼ = 2 calcular e−x podemos dizer que e−x = cosh(x) − senh(x).3472 + 4561) − 4561 = 4561 − 4561 = 0.0000 = 0.00 x × (y + z) = 9909 × (−0. b Usando-se uma máquina com quatro dígitos decimais na mantissa da representação: b = 300.0 2.3472 + (4561 − 4561) = 0. cosh(x) + senh(x) .0000 y + (x − x) = 0.3472 Vejamos agora um exemplo (usando-se uma máquina com quatro dígitos decimais na mantissa da representação) que viola a lei distributiva.000 300.3472 (y + x) − x = (−0.0033 é um resultado mais preciso.0 x1 = Exemplo 20 x e .0 e ϵ = 1. x2 é expresso como a diferença de dois números praticamente iguais e poderá perder muitos dígitos signicativos. Por outro lado e−x = fornece resultados mais precisos. ERROS EM COMPUTAÇÕES NUMÉRICAS x = 4561 y = 0.999 (x × y) + (x × z) = −9909 + 9899 = −10.0 600.000 z = 0.000 2. 909 Exemplo 19 x1 = b+ A equação do segundo grau x2 − b · x + ϵ = 0 tem duas soluções: √ √ b2 − 4ϵ b − b2 − 4ϵ e x2 = 2 2 Se b < 0 e ϵ << b .0 − 300.0 = 300.0 0. descrito no nal da indrodução da seção 1. ×. As +.14) Exames rigorosos mostram que a distribuição de arredondamento não é muito uniforme (ver Sterbenz [9]). Um tratamento mais profundo da aritmética intervalar pode ser visto em Moore [5].6. −. Alefeld [6] e Kulish [7] (para inclusão dos arredondamentos direcionados da aritmética de ponto utuante). 25 PROPAGAÇÃO DE ERROS 1. x] x.0011] (resultado o´timo) Para o sucesso da aplicação da aritmética intervalar é necessário desenvolver novos algoritmos que produzam limites de erros aceitáveis. σϵ2 = E(ϵ2 ) = 1 2 eps ∫ [−eps. seus resultados são considerados uma variável aleatória no intervalo [−eps.1. caso contrário os resultados conáveis de limites de erro serão. eps t2 dt = −eps obtém-se 1 eps2 =: ϵ−2 3 (1. eps] onde |ϵ| ≤ eps . Algoritmos A aritmética intervalar faz cálculos sistemáticos através de intervalos limitados de números de máquinas operações aritméticas intervalares são implementados em computadores produzindo resultados intervalares garantidos conterem a solução desejada.2 Aritmética intervalar O cálculo de erro de arredondamento estimado por aproximação de primeira ordem. são inviáveis para serem utilizados em métodos numéricos típicos onde o número de operações aritméticas é muito grande para permitir uma estimativa satisfatória do efeito total de todos os erros de arredondamentos.9. x ∈ F. Alem disso assume-se que os erros de arredondamento atribuídos as operações diferentes 2 são variáveis independentes. considerando todos erros de dados e arredondamento. 1.3 Estimativa estatística de erros de arredondamento Para obtenção de estimativas estatísticas de erros de arredondamento relativo (ver Rademacher [8]) que é causado por uma operação elementar.9989. 1.1] ? Pelo esquema de Horner y = ((x − 3)x + 3)x [y] = [0. Eles satisfazem as seguintes relações gerais σϵ2 = E(ϵ − E(ϵ))2 = E(ϵ2 ) − ((E(ϵ))2 = µϵ2 − µ2ϵ Assumindo uma distribuição uniforme no intervalo µϵ := E(ϵ) = 0. 1. em vez de números reais simples x. Deve-se ter em mente que o padrão ideal do erro . /eps].6209. A aritmética intervalar é uma alternativa para determinar limites para o erro absoluto de um algoritmo. Por µϵ e σϵ denota-se o valor esperado e variância da distribuição do arredondamento. muito pessimísticos. na maioria das vezes.6. Exemplo 21 Calcule y = x3 − 3x2 + 3x para [x] = [0. 1.6. A aritmética intervalar deve ser usada com bastante senso crítico. [x] = [x.4191] (muito largo) usando y = 1 + (x − 1)3 [y] = [0.6 acima. ÷ são denidas através de intervalos. Os resultados x dos algoritmos estando sujeitos a erros de arredondamento aleatórios tornam-se variaríeis aleatórias com valor esperado σx2 satisfazendo a mesma relação básica µx e variância σx2 = E(x − E(x))2 = E(x2 ) − ((E(x))2 = µx2 − µ2x Os efeitos da propagação de erros de arredondamento das operações elementares são descritas pelas seguintes fórmulas para variáveis aleatórias independentes e constantes x.7 Padronização do sistema de números de ponto utuante Padrões internacionais são desenvolvidos pelo ISO (International Standardization Organization) com suas organizações nacionais aliadas de padronização (ABNT . β ∈ R: µαx±βy = E(αx ± βy) = αE(x) ± βE(y) = αµx ± βµy 2 σαx±βy = E((αx ± βy)2 ) − (E(αx ± βy))2 = α2 E(x − E(x))2 + β 2 E(y − E(y))2 = α2 σx2 + β 2 σy2 (1. assim os as estimativas de µϵ e σϵ devem ser determinadas empiricamente. então de (1.15) e (1.9 por 2ϵr 1. que é satisfeita se x. Esta suposição é justicada uma vez as distribuições dos erros propagados tendem a ser normal se sujeitas as muitas operações elementares.Associação Brasileira de Normas Técnicas) . assumindo que o erro nal tem distribuição normal.26 CAPÍTULO 1. y α. Nos anos 70 tentou-se desenvolver padrões para a aritmética de ponto utuante binária para microcomputadores. o erro relativo do resultado nal r é limitado com probabilidade 0. na qual os padrões são desenvolvidos pela IEC (International Electrotecnical Commission). xey A segunda fórmula segue da relação E(xy) = E(x) · são independentes. Ela é valida para variáveis aleatórias E(y).16) Alem disso os valores esperados µx são trocados por valores estimados x e ϵ2x = σx2 /µ2x ≈ σx2 /x2 são considerados. Assim µx×y = E(x × y) = E(x)E(y) = µx µy 2 = E(x × y − E(x)E(y))2 = µx2 µy2 − µ2x µ2y σx×y = σx2 σy2 + µ2x σy2 + µ2y σx2 (1. Um dos principais objetivos era tornar programas mias portáveis para que técnicas de programação particulares usadas para tratar . y . Supondo o resultado nal ser normal. Um caso especial é o campo da engenharia elétrica e eletrônica.16): variâncias relativas z = x + y ou z = x − y : z = x × y ou z = x ÷ y : ϵ2z = ˙ ( xz )2 ϵ2x + ( yz )2 ϵ2y + ϵ¯2 ϵ2z = ˙ ϵ2x + ϵ2y + ϵ¯2 Os limites de erros para o resultado nal r de uma computação numérica são 2 obtidos da variância relativa ϵr .15) A primeira fórmula acima resulta da linearidade do valor esperado. ERROS EM COMPUTAÇÕES NUMÉRICAS de arredondamento é somente uma aproximação do padrão observado em cálcu2 los computacionais. e é equivalente ao uso de números inteiros que representam partes de unidades.23FAC × 16 . cada campo são mostradas (intervalo dos bits O número de estão entre colchetes): bits para . A representação de ponto utuante resolve alguns problemas de representação.7.FAC número pode ser representado 2 como 1.a solução mais usual . A notação cientíca representa os números como um número de base e um expoente. Por exemplo. Macintoshes e a maioria das plataformas Unix.123 pode ser representado 2 como 1. A representação do ponto xo coloca um ponto (potência) em algum lugar no meio dos dígitos. A mantissa é composta por fração e um dígito líder implícito (explicado abaixo). Outra possibilidade é usar racionais e representar cada número como a razão entre dois inteiros.1 O que são os números em ponto utuante? Existem várias maneiras de representar números reais em computadores. o expoente e a mantissa. 0000000000000001 e Isso permite que ele represente números de 1. A representação de ponto utuante emprega uma janela deslizante de precisão adequada à escala do número. IEC 559:1989 da aritmética de ponto utuante para sistemas de microcomputadores. com quatro dígitos decimais. Em 1984 o IEC decide considerar este padrão nacional um padrão internacional .000.03. A representação de ponto utuante .7.000. O Ponto xo tem uma janela xa de representação. 1. 27 PADRONIZAÇÃO DO SISTEMA DE NÚMEROS DE PONTO FLUTUANTE erros de arredondamento exceções (e.basicamente representa reais em notação cientíca. O padrão relacionado IEEE 854-1987 generaliza 754 para cobrir tanto decimal como binário. a sociedade americana de computadores IEEE (Institute of Electrical and Eletronics Engineers) adota o padrão IEE 754-1985. O ponto xo é propenso a uma perda de precisão quando dois grandes números são divididos. o padrão para a aritmética de ponto utuante binária (abreviadamente IEEE-754).g. Padrão IEEE 754 ponto utuante é a representação mais comum hoje em dia para os números reais em computadores. A base do expoente (2) é implícita e não precisa ser armazenado. 0. 123. overow de expoentes) fossem efetivas para arquiteturas de computadores diferentes. Por exemplo.7. Após lenta negociação. pode representar um centésimo (1/100) de uma unidade.45 ou 00. o que limita de representar números muito grandes ou muito pequenos. 1. o 123.000. pode-se representar 32.1. Em hexadecimal.2 Esquema de armazenamento Os números de ponto utuante IEEE tem três componentes básicos: o sinal.23123 × 10 .000 com facilidade. . A tabela a seguir mostra os esquemas de armazenamento de precisão simples (32 bits) e precisão dupla (64 bits)s de ponto utuante. incluindo PC com processador Intel. já que a única forma possível do dígito zero é 1. também conhecida como o signicando. 1 denota um número negativo. Para fazer isso. a m de se obter o expoente de armazenamento. Para IEEE de precisão simples. Uma otimização pequena e agradável está disponível na base dois. É composto de um bit implícito e os bits da fração. um expoente zero signica que 127 é armazenado no campo de expoente.004957 × 106 Para maximizar a quantidade de números representáveis. Assim.957 × 10 . representa os bits de precisão do número. Para precisão dupla. exemplo. este valor é de 127. Para saber o valor do bit líder implícito. um deslocamento é adicionado ao verdadeiro expoente. o número 4957 Por pode ser representado por qualquer uma dessas: 4957 × 100 0. O expoente O campo de expoente precisa representar expoentes positivos e negativos.os expoentes de −127 (todos bits 0's) e 128 (todos bits 1's) são reservados para números especiais. considerar que qualquer número pode ser expresso em notação de ponto utuante de muitas maneiras diferentes. ERROS EM COMPUTAÇÕES NUMÉRICAS Precisão Sinal Expoente Fração Simples 1 [0] 8 [1-8] 23 [9-31] Deslocamento 127 Dupla 1 [0] 11 [1-11] 52 [12-63] 1023 Gracamente: 0 sinal 1 8 9 31 característica mantissa e 0 sinal 1 11 12 63 característica mantissa O bit de sinal O bit de sinal é simples: 0 denota um número positivo. A mantissa A mantissa. Por razões apresentadas mais tarde. Na forma norma3 lizada 4957 é representado como 4. Um valor armazenado de 150 indica um expoente de (150-127). o campo de expoente tem 11 bits e um deslocamento de 1023.28 CAPÍTULO 1. Invertendo-se o valor deste bit inverte o sinal do número.4957 × 104 4. ou 23. os números de ponto utuante são normalmente armazenados na forma normalizada.957 × 103 0. Pode-se supor apenas um dígito de 1. . 93 ±2−1074 ≈ ±10−323. • Números negativos normalizados são denidos dentro da faixa de: −2(1−deslocamento) até −(2 − 2−precis˜ao ) × 2deslocamento . ( 2−149 . onde f é o Intervalo de números de ponto utuante O intervalo de números positivos de ponto utuante podem ser divididos em números normalizados (que preserva toda a precisão da mantissa). PADRONIZAÇÃO DO SISTEMA DE NÚMEROS DE PONTO FLUTUANTE e não precisa-se representá-lo explicitamente. e os números desnormalizados (discutido mais tarde) que usam apenas uma porção de precisão da mantissa. A base do expoente é dois.93 at´ e (2 − 2−23 ) × 2127 ≈ 1038.7. 1. • Números positivos menores do que −(2 − 2−23 ) × 2127 . Precisão Simples Dupla Desnormalizados ±2−149 ≈ ±10−44.f . da mantissa é geralmente assumida como campo fração de bits. • Números positivos normalizados são denidos dentro da faixa de: 2(1−deslocamento) até (2 − 2−precis˜ao ) × 2deslocamento .29 1.25 Dado que o sinal dos números de ponto utuante é dado por um bit líder especial. Ressumindo: 1. (2 − 2−precis˜ao ) × 2deslocamento e −(2 − 2−precis˜ao ) × 2deslocamento 2(1−deslocamento) e 1−deslocamento que −2 são Números positivos normalizados menores que números negativos normalizados maiores entes ( underows ). 2. 1 para o negativo. Há cinco diferentes intervalos numéricos que a precisão simples de números de ponto utuante não são capazes de representar: • Números negativos menores do que • Números negativos maiores do que • Zero. O primeiro bit 127 mais o verdadeiro expoente de precisão mais verdadeiro para o expoente de precisão dupla. O campo de expoente contém simples ou 1023 4.85 at´ e (1 − 2−23 ) × 2126 ≈ 1037.53 ±2−1022 ≈ ±10−307. O bit de sinal é 0 para positivo.31 at´ e (1 − 2−52 ) × 21022 ≈ 10307. o intervalo de números negativos é dado pela negação dos valores acima. (underow (overow negativo) negativo) positivo) .65 insuci- Normalizados ±2−126 ≈ ±10−37. a mantissa tem 23 bits. • Números positivos normalizados superiores números negativos normalizados inferiores são transbordados ( • overows ). −2 −149 underow .65 at´ e (2 − 2−52 ) × 21023 ≈ 10308. efetivamente 24 bits de resolução com fração de Como resultado. 3. 21023 para o dupla). quando o expoente é o valor máximo para os números nitos (2127 para precisão simples. que é garantido ser muito próximo de zero.m × 2−1022 . mas a mantissa for diferente de zero (o que poderia ser interpretado como zero). então o valor é um número desnormalizado. embora ambos são comparados como iguais.53 ≈ ±10308. 1 antes do ponto binário. Desnormalizados Se o expoente é todo de 0's. porque ele apenas denota uma perda de precisão. a mantissa está completa de 1's (incluindo 1 bit da normalização). • ERROS EM COMPUTAÇÕES NUMÉRICAS Números positivos superiores à (2 − 2−23 ) × 2127 . Zero é um valor especial denotado com um campo de expoente zero e um campo de mantissa zero. 1.m × 2−126 . são indicados com um expoente de 1's e uma mantissa de 0's. As . o zero não é diretamente representável no formato direto. O bit de sinal faz a distinção entre innito positivo e innito negativo. Segue uma tabela com o intervalo efetivo (excluindo valores innitos) de números IEEE de ponto utuante: Precisão Simples Dupla Binário ±(2 − 2−23 ) × 2127 ±(2 − 2−52 ) × 21023 Decimal ≈ ±1038. e assim.3 Valores Especiais IEEE reserva valores do campo expoente com todos 0's e 1's para representar todos os valores especiais no sistema de ponto utuante. que não tem um líder assumido (−1)s × 0. porque permite as operações para tratar de situações de estouro ( operações com valores innitos são bem denidas no IEEE de ponto utuante.30 CAPÍTULO 1. A partir disto se pode de sinal e s desnormalizada números são da forma interpretar o zero como um tipo especial de número desnormalizado. devido à suposição de um 1 à esquerda (que seria preciso especicar numa mantissa zero real para produzir o valor de zero).25 Observação 3 Note-se que os valores extremos ocorrem (independentemente do sinal).7. Observe que −0 e 0 são valores distintos. Innito Os valores (+)innito (+∞) e (-)innito (−∞). (overow positivo) Overow signica que os valores são muito grande para a representação. Portanto representa um número onde s é o bit m é a mantissa. Para precisão dupla. Underow é um problema da mesma forma que os inteiros podem transbordar. Ser capaz de denotar o innito como um valor especíco é útil overow ). e. (−1) × 0. menos grave. Zero Como mencionado acima. M. 31 PADRONIZAÇÃO DO SISTEMA DE NÚMEROS DE PONTO FLUTUANTE Não é um número Not a Number ) é usado para representar um valor que não representa bits com um expoente O valor NaN ( um número real. QNaN denotam operações indeterminadas. 53. 1. Exemplo 22 (Intel) De acordo com a norma IEC/IEEE os sistemas de numeração utilizados nos microprocessadores Intel são F(2. Um SNaN é um NaN com o bit mais signicativo da mantissa limpa. −16381. QNaN propaga livremente através da maioria das operações aritméticas. m. maior expoente: M >0 5. menor expoente: m<0 4. 128. emax ). p. p. m. t.1. emax . dnorm) Quatro parâmetros e um valor booleano: 1. indicador de normalização: dnorm ∈ booleano caracterizam cada sistema de números IEEE/IEC dnorm = true caso o sistema contenha números denormalizados (sub-normal) = false para o sistema normalizado A notação de um sistema de ponto utuante F(β. emax ) ∪ FD (b. NaN são representados por um padrão de de 1's Quiet ( e uma mantissa diferente de zero. Existem duas categorias de NaN: QNaN NaN) e SNaN (Sinalização NaN). Precisão: t≥2 3. emin . dnorm) satisfaz as seguintes relações F(b. Base: β≥2 2.7. f alse) = FN (b. emin . true). −125. 64. p. true) = FN (b. emin . p. SNaN pode ser útil para atribuir a variáveis não inicializadas como armadilha de uso prematuro. emin . . emin . emax ) F(b. true) para precisão simples e precisão dupla. 24. Semanticamente.7. enquanto SNaN denotam operações inválidas. A QNaN é um NaN com o conjunto mais signicativo de bits na mantissa. t. −1021. 16384. p. Estes valores saltam de uma operação quando o resultado não é denido matematicamente. Microprocessadores Intel têm precisão estendida F(2. Ela é usada para sinalizar uma exceção quando utilizado em operações. true) e F(2. M. emax .4 Parâmetros de um sistema de número de ponto-utuante A notação de um sistema de ponto utuante é F(β. 1024. m1 m2 m3 × β k . Exemplo 26 Sabemos que os números reais podem ser representados por uma reta contínua. −64.5(10) 3. 48.5(10)   0.101(2) = 0. f alse) para extended precison. 10. 100. 14. 28. −64. f alse) cision e F(16. F(16. −16384 . 3. Para responder quais são os números lista-se as formas da mantissa: 0.110(2) ×   21  =  1.75(10) . 20 . Quantos e quais números podem ser representados no sistema FN (2. f alse). 8191. 1.100.110 e 0. m = 1 e M = 2 então −1 ≤ k ≤ 2 e t = 3. −64.100(2) ×   21  =  1.75(10)   0.0(10) 22 2.32 CAPÍTULO 1. Algumas trabalham com maior precisão interna enquanto exibem somente dez casas decimais. 6.101(2) ×   21  =  1. 0. Então os números são da forma: ±0. duas para m2 . Portanto neste sistema pode-se representar 33 números visto que o zero faz parte de qualquer sistema. Entretanto. −98.0(10) 22 desde que 0. f alse).625(10)   0.     . 21 e 22 .5(10) 22     desde que 0.25(10) 2. 2)? Solução: Temos que β = 2 então os dígitos podem ser 0 ou 1. duas para m3 e quatro para as formas de β k .111 e as formas de β k são: 2−1 . f alse) para short precision. f alse) e F(2. 63. 63. 0.101.625(10) . Tem-se então os seguintes números:   0. 63. Exemplo 23 ERROS EM COMPUTAÇÕES NUMÉRICAS (IBM System/390) Fornece três sistemas de numeração hexadecimal F(16. 96. 8191.110(2) = 0. Fazendo o produto 2 · 1 · 2 · 2 · 4 obtém-se 32. Tem-se duas possibilidades para o sinal. Para ilustrar este fato consideremos o seguinte exemplo. em ponto utuante podemos representar apenas pontos discretos da reta real.375(10)  20   0.100(2) = 0.25(10) 2−1  20   0.    2−1 0.0(10)      desde que 0. −16384. para long pre- Exemplo 24 (Cray) Fornece dois sistemas de numeração F(2. uma possibilidade para m1 .3125(10)  20   0.5(10) . Exemplo 25 (Calculadoras) Calculadoras cienticas são normalmente fornecidas com um único sistema de numeração F(10.    2−1 0. x2 = 4. em vez da função matematicamente denida f . represente os números: x1 = 0.100 × 2 e 0. pois para o segundo teremos overow e para o terceiro underow.875(10)   0. pag. n n Para resolver um sistema de equações na linear.8 e x3 = 0.8 Programas de precisão múltipla Em certas aplicações o sistema de ponto utuante fornecido pelo computador tem precisão ou intervalo insuciente.100 × 2−2 . 279) . tenta-se a precisão estendida.75(10) 3.48. Solução: Fazendo os cálculos obtemos que: 0. o artigo [11] é clássico.810 = 0. 3 1.8. Exemplo 27 Considerando o mesmo sistema do exemplo 26. Estes softwares permitem uma escolha exível da precisão e/ou intervalo necessário dos números de ponto utuante. A desvantagem mais séria das implementações de sistemas de numeração via software comparada a hardware é o tempo de processamento (crescimento em tempo de execução por um fator > 100 [10] 1. a função f : R → R deve ser implementada na forma de um (sub)programa. a mesma representação que o número 0.9 A inuência da aritmética do ponto utuante Os problemas com o uso da aritmética de ponto utuante são fartamente discutido na literatura. A seguir veremos alguns casos selecionados. O termo zero perde seu signicado comum mesmo no caso de funções de uma variável (n = 1) porque a equação f˜(x) = 0 com f˜ : F → F pode ter várias soluções (zeros) ou nenhuma solução na vizinhança de um zero isolado da função original.4810 tem no sistema dado.875(10) . Contudo esta estratégia prejudica a portabilidade dos programas. Observe que o número 0.111(2) ×   21  =  1.1. Se os cálculos são feitos em precisão simples.111(2) = 0. Apenas o primeiro número pode ser representado no sistema.1310 = 0. então o nível de precisão pode não ser adaptado aos requisitos de uma aplicação particular.4375(10)  20   0. pois poucos sistemas de computadores fornecem mais que dois níveis de precisão. se ainda assim. a precisão dupla é insuciente.5(10) 22      desde que 0.) . Exemplo 28 (zeros não encontados[12]. Matlab. 4. 33 PROGRAMAS DE PRECISÃO MÚLTIPLA   2−1 0. que permite aumentar a precisão independente da arquitetura. Além disso. etc. Uma solução é o uso de um software de precisão múltipla (Maple. então se usa precisão dupla para tentar remediar diculdades e.111 × 2−1 . esta estratégia é de uso limitado: existem raramente quatro níveis. Então os zeros da implementação f˜ : Fn → Fn são determinados.4810 = 0.18 dados na base 10.4375(10) . 17 pode se calculado. ϵ1 ∈ [3.14. e f (x) ≤ 0 é valido somente no intervalo localizado entre dois números de máquina. 279 ) O polinômio P7 (x) = x7 − 7x6 + 21x5 − 35x4 + 35x3 − 21x2 + 7x − 1 = = ((((((x − 7) + 21)x − 35)x + 35)x − 21)x + 7)x − 1 = (x − 1)7 tem somente um zero em x∗ = 1. Os dois zeros de f .17) ln(π − x)2 + 1 π4 Tem duas raízes no intervalo [3.15]. true) (analiticamente tem dois) A função 1 (1.1: Planilha do software matemático Mathcad usada para traçar o gráco da função f (x) = 3x2 + π14 ln(π − x)2 + 1.1). ERROS EM COMPUTAÇÕES NUMÉRICAS Figura 1. A implementação f˜ : F → F não possui zeros (ver gura 1. desde que f (x) > 0 Para todo x ∈ F(2.34 CAPÍTULO 1. π] e ϵ2 ∈ [π. A função não tem zeros quando calculada numericamente com F(2. 53. Exemplo 29 (grande número de zeros [12]. true) para a qual 1. x∗1 ≈ π − 10−647 e x∗2 ≈ π + 10−647 estão localizados muito próximos de π .14. 1024.15]. −1021. A implementação de P˜7 : F → F usando o esquema de Horner tem milhares de zeros na vizinhança de x = 1 [cálculo com . 53. 3. −1021. pag. 1024. 3. Estes f (x) = 3x2 + zeros não podem ser determinados numericamente. i. A gura 1. para x > 1 existem milhares de pontos com valores P˜7 < 0. com uma aritmética de precisão simples IEC/IEEE]. .5 ∗ y 8 + x/(2 ∗ y) usando o Maple com precisão variada.10 e 4.75 ∗ y 6 + x2 ∗ (11 ∗ x2 ∗ y 2 − y 6 − 121 ∗ y 4 − 2) + 5. embora P˜7 < 0 nesta região. . 18 15           A gura 1. A=    .3 mostra a planilha Maple onde só a partir de 37 dígitos é que os resultados apresentados são numericamente válidos. y) = 333. A fenômeno do Caos surge do cancelamento dos dígi- tos mais signicativos (ver gura 4. true). Exemplo 31 Intlab toolbox produziu os resultados de (avaliação de função) Abaixo vamos avaliar a função f (x. pag. . −125.     x=     1 1 1 · · 1 1      = solução EXATA !     Obs. .1.e. A função verifylss do Matlab acordo. para x < 1 existem milhares de pontos com valores P˜7 > 0.. 24.9. A INFLUÊNCIA DA ARITMÉTICA DO PONTO FLUTUANTE 35 F(2. .  temos um resultado numericamente insatisfatório: A · x = b. embora P˜7 > 0 nesta região e. similarmente. 233)  8 3 0   7 8 3     7 8 3    e  .11 [1]. Exemplo 30 (solução do sistema linear inspirado em [12]. .2 mostra uma planilha Mathcad para resolução do sistema linear Embora o residual seja praticamente zero para todos as componentes do vetor solução.    7 8 3  0 7 8       b=     11 18 18 . 128. pag 145). 5 ∗ y 8 + x/(2 ∗ y) . ERROS EM COMPUTAÇÕES NUMÉRICAS Figura 1. y) = 333.75 ∗ y 6 + x2 ∗ (11 ∗ x2 ∗ y 2 − y 6 − 121 ∗ y 4 − 2) + 5.3: Software matemático Maple usado na avaliação da função f (x.2: Software matemático Mathcad usado na solução do sistema linear Figura 1.36 CAPÍTULO 1. responda às questões seguintes: a) O número está normalizado? Se não o normalize.1.1101.1011001111012 3) Reescreva os números seguintes na representação do ponto-utuante normalizada: a) e) 27. os oito seguintes a característica obtida com adição de 128 ao expoente do número ponto-utuante.1218 722 d) j) 67.534 11. b) Qual o sinal do número? c) O valor absoluto do número é menor que 1? 5) Repita a questão 4 com o número: 1000.0110.67 3.01012 18 × 1021 g) 0.0000.1100.001012 c) d) h) 1.10 Exercícios Propostos 1) Converta os seguintes números decimais para sua forma binária: a) g) 35 2000 b) h) 2345 655 c) i) 0.6 × 1021 e) l) 95 231 f) 2500 2. hexadecimal e decimal: 1011012 0.1110 Se o primeiro bit é o sinal do número. o menor número positivo e o próximo menor número positivo.11000012 a) b) c) d) e) f) i) −0. 7) Represente os números binários da questão 2 na maquina binária que utiliza o seguinte esquema de representação de ponto-utuante: ↘ sinal ↘ mantissa ↘ característica a) o bit de sinal é codicado 0 se o número é positivo e 1 se o número é negativo.1101.5 × 10−18 m) 2) Converta os números binários para suas formas octal.1011.01112 b) f) −89.901 −111. quais são aproximadamente o maior e o menor número.0001. e os 23 restantes são a mantissa.3756 × 10−7 1110101012 4) Seja o número seguinte em ponto-utuante num computador de 32 bits: 0010. 37 EXERCÍCIOS PROPOSTOS 1.0011001012 −1101010112 0.0101. b) a característica é obtida com adição de 128 ao expoente do número pontoutuante. .1001.1010.0001.00001012 h) −0.10.11012 101012 0.0110 6) Para a representação da questão 4.1111111012 g) −111010110112 j) 0.0000. 14 × 10−5 11) Use a aritmética do ponto-utuante.414234 e 22.81 × 8.2145 × 10−3 z = 0. de truncamento. para somar e subtrair os seguintes pares de números: a) 5.67 e 0.38 CAPÍTULO 1.2585 × 101 Efetue as seguintes operações: a) x + y + z b) x − y − z c) x/y d) (xy)/z e) x(y/z) 10) Use a aritmética do ponto-utuante. quais são os 13) Ao se calcular cos(x) ∼ = 1− 2! 4! 6! erros: inicial. 1 digito de sinal da mantissa e 1 digito sinal da característica.328 d) 5.5 d) 4000 ÷ 150 12) Calcular as cotas dos erros absolutos e relativos que se comete ao se tomar como valores de: a) 22/7 b) 333/116 c) 355/113 d) x2 x4 √ 3+ x6 √ 2 − − para x = 5/7. com a representação da questão 9 acima.7531 c) 54.14 × 7. ERROS EM COMPUTAÇÕES NUMÉRICAS 8) Converter para base 10 os valores representados na máquina binária da questão 7) acima: a) 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 b) 0 9) Seja um sistema de aritmética de ponto-utuante na base decimal com quatro dígitos na mantissa e dois na característica. ↓ mantissa ↓ expoente sinal sinal da mantissa do expoente O sinal é codicado (+) se o número é positivo e (-) se o número é negativo.47 b) 75.35 ÷ 28. Dados os números: x = 0.27531 b) 5.414234 e 2. com a representação da questão 9 acima. .4 × 10−8 e 3. para realizar as operações aritméticas seguintes: a) 3.77237 y = 0.15 c) 1. de arredondamento e total cometidos quando se realiza os cálculos arredondados em duas casas decimais. NJ. Labor. Havard Univ. J. 545-559. SIAM Review 28. Feigenbaum Introduction to applied numerical analysis. 16 (1948) pp 176-185 [9] Sterbenz. Kulish and W. Englewood Clifs. Moore: Interval Analysis. Springer-Verlag. New (1966) [7] U. 1 474 pages [2] J. pp. Assoc.A portable High Performance Multiprecision Package. software and analysis.W. Academic Press. NJ.: On the accumulation of errors in processes of integration on higg-speed calculating machines. Alefeld. Traub. Englewood Clifs. Annals Comp.H. A. USA (1966) [6] G. Prentice Hall. Hamming. H. Stoer. D. Springer Berlin Heidelberg (1997) Vol.F. 2nd ed. (1990) [11] Goldeberg. ACM Computing Surveys. E. 2 495 pages 39 .Bibliograa [1] C.H. D: What Every Computer Scientist Should Know About Floating-Point Arithimethic.: MPFUN . Herzberger: Introduction to Interval Computations. Ueberhuber: Numerical Computation: Methods. USA (1974) [10] Bailey.: Floating Point Computation. McGraw-Hill. Prentice Hall. [4] R. Springer Berlin Heidelberg (1997) Vol. software and analysis. R. Ueberhuber: Numerical Computation: Methods.L.W. 1 (1986) [8] Rademacher.A.W. H. Wozniakowski: On the Optimal Solution of Large Linear Systems. Procedings of a symposium on large-scale digital calculating machinary. P. Inc New York (1971) [5] R. NASA Ames Tech. Comp. 31 (1984). Report RUR-90-022. Miranker: The Arithmetic of the Digital Computers: A New Approach. Bulirsh: Introduction to Numerical analysis. J. Berlin Heidelberg New York Tokio (1993) [3] J.W. Mach. 23 (1991) pp 5-48 [12] C.E. Reading.40 BIBLIOGRAFIA [13] Fröberg. C-E. Mass. .D. New York. Co. 3rd ed. D. McGraw-Hill Book Company.: An Introduction to Numerical Analysis. . 1980 . F. 1965 [14] Süli. 2nd ed. AddisonWesley Pub. S. Cambridge University Press.: Elementary Numerical Analysis: An algorithmic approach. C. and Boor.: Introduction to numerical analysis. E and Mayers. 2003 [15] Conte. Documents Similar To Métodos Numéricos Para Engenheiros Co SCILABSkip carouselcarousel previouscarousel nextrepresentacaodedadoscap_08_codGuia de SeleÇão de Encoder978 85 8482 228 7 Calculo Numerico LivroTI-Nspire - Manual de Referência (2014)Apostila de Sistema de NumeraçãoLista - Bases de Numeração itaETEC Martin Luther Kingaula1NOVAinvestigacionesYAlgoritmos_CesarPoacMoralesCapitulo I Sistemas de Numeracao02sncalculo_numerico.cap1.pdfCircL%80%A0%A6%F3gicosCap1Unidade_1 Sistemas DigitaisED - Mecatrônica 2013Manual ITICSC159Computação Básica AtualizadoReconfiguração de Sistemas - Busca GlobalTeoria 5 - Codificadorers e DecodificadoresMascaras Em DBEditsProcessing 2 Numeros e Texto01 EA 772 Circuitos Lógicos 2013Aula08 Portas Logicas TopicosConversão entre sistemas numéricosLABORATORIO 2Trabalho InstrumentacaoAOCOPortas LógicasMore From zaazlxSkip carouselcarousel previouscarousel nextElementos Finitos para compósitos CEG228-Apostila-SketchUp-8-prof-Marcio-Carboni1.pdfVolta a o Mundo Marco 2018Manual Sketchup em Portugu_s.pdfAlexandre DissertacaoCEG228-Apostila-SketchUp-8-prof-Marcio-Carboni1.pdfArcoCEG228-Apostila-SketchUp-8-prof-Marcio-Carboni1.pdfQuero Saber - Nº 84 (Outubro 2017)Fundamentos de Geometria HSM Coxeter PDFGmsh IntrokiringMetodos Sem MalhaViaje Mais Luxo - Nº 21 (2018)Geometria projetivaLivro Iniciacao Ao ScilabTutorial Luiz Soares BarretoApostila de Scilab - AtualizadaGeo ProjAnalise Matematica II NewEs Miguel Amaral 24191Scilabgeoproj_apostila-01Scilab BeginnersApostila LatexComer DevagarExerc Ficha 4 Campos Top LimApontamentos Teoricos AMapostilaprogramao-120512152026-phpapp02Footer MenuBack To TopAboutAbout ScribdPressOur blogJoin our team!Contact UsJoin todayInvite FriendsGiftsLegalTermsPrivacyCopyrightSupportHelp / FAQAccessibilityPurchase helpAdChoicesPublishersSocial MediaCopyright © 2018 Scribd Inc. .Browse Books.Site Directory.Site Language: English中文EspañolالعربيةPortuguês日本語DeutschFrançaisTurkceРусский языкTiếng việtJęzyk polskiBahasa indonesiaSign up to vote on this titleUsefulNot usefulYou're Reading a Free PreviewDownloadClose DialogAre you sure?This action might not be possible to undo. Are you sure you want to continue?CANCELOK
Copyright © 2024 DOKUMEN.SITE Inc.