cálculo computacional

download cálculo computacional

of 55

Transcript of cálculo computacional

Calculo NumericoComputacionalDalcidioMoraesClaudioJussaraMariaMarins24deagostode20052Sumario1 IntroducaoaMatematicaNumerica 51.1 NaturezaeObjetivosdaMatematicaNumerica . . . . . . . . . . . . . . . . . . . . . 51.2 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3 AlgoritmosNumericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Introducao`aAritmeticadeMaquina 132.1 SistemadePontoFlutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2 Arredondamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.3 Erros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.4 DigitosSignicativosExatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.5 PrecisaoeExatidaodeMaquinasDigital . . . . . . . . . . . . . . . . . . . . . . . . . 272.6 Instabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.6.1 InstabilidadedosAlgaritmos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.6.2 Instabilidadedeproblemas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 ResolucaodeSistemasdeEquacoesLineares 413.1 Revisao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.1.1 Colocacaodoproblema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.1.2 Denicoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.1.3 AritmeticaMatricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.2 Erros Computacionais no Calculo Numerico de SELAs. . . . . . . . . . . . . 473.2.1 TiposdealgoritmosusadosnoCalculoNumericodeSELAs . . . . . . . . . . 473.2.2 Tiposdeerroscomputacionaisnosalgoritmos . . . . . . . . . . . . . . . . . . 483.3 EtapasderesolucaodosSELAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.3.1 Etapa: DescomplexicacaodosSELAs . . . . . . . . . . . . . . . . . . . . . . 493.3.2 Etapa: OsalgoritmoscalculadoresdeSELAsesuasestruturas . . . . . . . . . 513.4 MetododeEliminacaodeGauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.4.1 AlgoritmobasicodeGauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.4.2 Etapa: Triangularizacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.4.3 Etapa: Retrossubstituicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.4.4 Instabilidadenumerica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.4.5 AlgoritmodeGausscompivotamento. . . . . . . . . . . . . . . . . . . . . . . 603.4.6 Condicionamentodeumamatriz . . . . . . . . . . . . . . . . . . . . . . . . . 633.4.7 Renamentodasolucao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.4.8 Equacionamentomatricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.4.9 MetodosdeGauss-Jordam . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.4.10 OrenadorparaGauss-Jordam. . . . . . . . . . . . . . . . . . . . . . . . . . 793.5 MetodosIterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.5.1 MetododeJacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8134 SUMARIO3.5.2 MetodosdeGauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.5.3 OsalgoritmospreparadosparaoGauss-Seidel/Jacobi . . . . . . . . . . . . . . 863.5.4 Condicoesdeconvergenciadometodo. . . . . . . . . . . . . . . . . . . . . . . 874 EquacoeseSistemasnaoLineares 994.1 Introducao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.2 RevisaosobrePolinomios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.3 EnumeracaodasRazes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.3.1 Enumeracaodasrazesdeumaequacaopolinomial . . . . . . . . . . . . . . . 1044.3.2 Enumeracaodasrazescomplexasdeumaequacaopolinomial . . . . . . . . . 1054.4 LocalizacaodasRazes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074.4.1 Localizacaodasrazesreaisdeumaequacaopolinomial . . . . . . . . . . . . . 1074.4.2 Localizacaodasrazescomplexasdeumaequacaopolinomial . . . . . . . . . . 1094.5 Separacaodasrazesdeumaequacaopolinomialoutranscendente . . . . . . . . . . . 1114.6 OrdemdeCovergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144.7 MetodosIterativospararesolucaodeequacoespolinomiaisoutranscendentes . . . . . 1154.7.1 Metodosdequebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.7.2 MetodosdePontoFxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264.7.3 Metodosdem ultiplospassos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374.8 AceleracaodeAitken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1434.9 Comparacaodosmetodosdopontodevistacomputacional . . . . . . . . . . . . . . . 1444.10 Resolucaodesistemasdeequacoesalgebricasoutranscedentes . . . . . . . . . . . . . 1464.10.1 MetodosdeNewton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474.10.2 MetodosdeNewtonmodicado . . . . . . . . . . . . . . . . . . . . . . . . . . 1504.11 Softwarepararesolucaodeequacoesesistemasdeequacoesnaolineares. . . . . . . . 150.1 Introducao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157.2 Formatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158.3 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.4 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5 arredondamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Captulo1IntroducaoaMatematicaNumerica1.1 NaturezaeObjetivosdaMatematicaNumericaOestudodaMatematicadopontodevistacomputacional constitui aMatematica Computacional.A Matematica Numerica insere-se no contexto da Matematica Computa-cional, que pode ser visualizada pela gura 1.1.ViraguraFigura1.1: AMatematicaComputacionalNao formalizaremos aqui a descricao de cada item da gura.Por metodosconstrutivosentendemos todo o metodo que envolve ape-nas umsistemadeoperacoes elementares dadas apriori, utilizadas emumn umeronitodevezeseque construirao todooprocessodecalculoenvolvido.O sistema de operacoes escolhido para a Matematica Numerica e eviden-tementeoconjuntobasicodeoperacoesaritmeticas +, , , /,eatravesdelas serao denidas as demais operacoes necessarias. Tal escolha e devida`afacilidadedeimplementacao, compreencaouniversal epossibilidadedeexpansoes que formam operacoes mais complexas.AMatematicaNumericatemporobjetivoestudarprocessosnumericos(algoritmos)paraasolucaodeproblemas, visando`amaximaeconomiaeconabilidadeemtermosdosfatoresenvolvidos. Comoestesalgoritmos56 CAPITULO1. INTRODU CAOAMATEMATICANUMERICAseraoimplementadosemcomputadores, osfatoresenvolvidospodemser:tempo de execucao, memoria utilizada e erros de arredondamento.1.2 AlgoritmosPara que possamos resolver um problema atraves de um computador enecessario ter toda a sequencia de passos e operacoes estabelecida de modoformal para a resolucao do problema ou seja um algoritmo.Um conceito (e nao denicao) de um algoritmo pode ser uma sequenciade instrucoes ordenadas de maneira a dar em seu decurso a solucao paraum problema especco.Tais instrucoes devemaparecer emumn umeronitoe seremexe-cutaveis mecanicamente com uma quantidade limitada de esforco.Umalgoritmopoderadependerounaodedadosiniciais(entradas),masteraobrigatoriamentedeproduzirpelomenosumresultadonal(sada).Deve ter apenas um ponto de incio e pelo menos um ponto de parada.1.3 AlgoritmosNumericosSaoosalgoritmosvoltadosaoprocessamentonumerico, isto e, asope-racoes aritmeticas formam o cerne do algoritmo e seu objetivo e obter umoumaisresultadosnumericos. Umalgoritmonumericodeboaqualidadetem as seguintes caractersticas:1. InexistenciadoErroLogicoouMatematicoExemplo1.3.1. Procura-se uma solucao xda equacao ax = b.Um algoritmo ingenuo e errado, do ponto de vista matematico, seria:1.3. ALGORITMOSNUMERICOS 7Algoritmo1.3.1.1. Incio2. Ler a, b;3. x = b/a;4. Imprimir x;O algoritmo correto e:Algoritmo1.3.2.1. Incio2. Ler a, b;3. Se a = 0 entao se b = 0 entao imprimir Identidade4. senao imprimir Contradicao5. senao x = b/a;6. imprimir x;Os erros l ogicos ocorrem quando nao sao vericadas as diversas possibi-lidades entre as opcoes dos testes, principalmente quando sao encadeados oumesmo quando se faz mais testes do que o necessario. No ultimo algoritmo,por exemplo, naoemais necessariotestar sebenuloounao, pois naoimportaesteresultadoeteremosasolucaocorreta. Defatoistofazparteda propria denicao da equacao e nao da Logica.2. InexistenciadoErroOperacionalMesmo que nao haja erro logico ou de denicao, o algoritmo pode falharpor violar restricoes fsicas da maquina e teremos erros que sao detectadosem tempo de execucao. O proximo exemplo deixa isto mais claro.Seja T o conjunto de n umeros possveis de serem representados por umamaquina e que valha:1. x T, x T2.t1 = infx [ x T x > 0t2 = supx [ T x > 08 CAPITULO1. INTRODU CAOAMATEMATICANUMERICASe temos valores y, tais que [y[ < t1 (underow) ou [y[ > t2 (overow),1ocorreraumerrooperacional. Algumasvezestaiserrosnaosaoindicadospelo sistemas operacional ou compilador em muitos computadores. Ocorre,entao que se obtem um resultado mas que nao possui conabilidade.Exemplo1.3.2. Seja z= x + iy C, x, y R.Procuramos [z[ = mz=_x2+ y2.Senumalgoritmoimplementamos diretamenteaformulaacima, con-formeforemos valores dexouypodemos ter overowemx2ouy2,embora valha_x2+ y2< t2Este problema nao ocorre se o algoritmo for o seguinte:Algoritmo1.3.3.1. Incio2. Ler x, y3. Se x = y= 0 entao mz= 03.1 senao se [x[ >= [y[ entao mz= [x[ _1 +_yx_23.2 senao mz= [x[ _1 +_xy_24. sada mz;3. QuantidadenitadecalculosExemplo 1.3.3. Determinar pelo metodo de Newton uma raiz da equacao:f(x) = signl(x) _[x[ = 0onde signl(x) e a funcao sinal que e denida por:sign(x) =___1 se x > 00 se x = 01 caso contrarioUm algoritmo problematico e dado por:1Ver conceitos no exemplo 2.1.3.1.3. ALGORITMOSNUMERICOS 9Algoritmo1.3.4.1. entradax0, 2. enquanto[f(xi)[ > faca:2.1 se f/(xi) ,= 0 entao xi+1 = xif(xi)f/(xi)3. sada i, xi4. pare.Na realidade, tal algoritmo nao ira parar, alem de estar incompleto, poisparadiferentes valores dex0 ,=0edeometododeNewtonalternaseusvaloresentrex0ex1= x0,emboratenhamosf/(x) ,=0paracadax (0, ).Paracorrigirtal problemaprecisamosestabelecerumn umeromaximodeiteracoesaseremexecutadaspeloalgoritmo. Porexemplo,ocomando1 e 2 pode mudar para:1.entrada x0, , MAX2.enquanto [f(xi)[ > e i < MAXfaca.Com esta funcao e a correcao proposta nao atingiremos a solucao corretaembora tenhamos evitado um loopno comando 2. Outro modo de resolveroproblemaeutilizar ometododeNewtonIntervalar queseravistonocaptulo 10.4. ExistenciadeumcriteriodeexatidaoNaMatematicaIntervalartodososmetodosapresentamtal caracters-tica, umavezqueos resultados saosempreumintervaloquecontemasolucao exata e da temos implicitamente o limite para o erro.Normalmente os limites de rros sao empricos e pouco conaveis.5. IndependenciadaMaquinaNos algoritmos numericos nao deve haver dados dependentes da maquina.6. Com precisao innita, os limites de erro devem convergirazero10 CAPITULO1. INTRODU CAOAMATEMATICANUMERICAExemplo1.3.4.Dadoa R, queremosdeterminarx=sin(a). Umalgoritmo ingenuo, que explora o fato de que sin(x) varia sempre entre 1e +1, onde o sinal pode ser determinado aleatoriamente, e dado por:Algoritmo1.3.5.1. Entrada:a2. x = 0 1;3. Sada:a, xEste algoritmo errado satisfaz as exigencias de 1 a 5: nao ha erro logiconem operacional, o algoritmo e nito, os dados nao dependem de maquina,temosqueoresultadodentrodoslimitesdeerro; contudoparapreencherocriterio6devehaverumcriteriodetruncamentoapropriado. Seeleesatisfeito, temos o que se chama de convergencia numerica. Para calculara funcao senoou mesmo outras funcoes trigonometricas ou transcendentesdevemos usar a Serie de Taylor que sera exemplicada para a funcao expo-nencial na secao de Instabilidade.7. EcienciaQuando se deseja encontrar a solucao para um problema, sempre visamosobter economia de recursos envolvidos.Sobre ele formulamos condicoes de rapidez, alta exatidao, trabalhar compoucosdadosdereferencias, ocuparmenorespacodememoria, serfacil-mente representavel etc.Aecienciacomocaractersticadeumbomalgoritmoebemdiferentedas caractersitcas 1 e 2 que dizem respeito a ecacia. Explicando melhor,ecaciaeaqualidadedeproduzirumrespostadeformacorretaparaoproblema dado, enquanto a eciencia, alem de intuir a ideia anterior, exigeque o processo seja economico nos termos citados.Exemplo1.3.5. Fazer contas com os dedos da mao.E inecaz para calculos nao aritmeticos.E ecaz, mas nao eciente para calculos aritmeticos nao triviais.1.3. ALGORITMOSNUMERICOS 11E eciente para certos calculos aritmeticos triviais.Exemplo 1.3.6. Algoritmo de Cramer para solucao de sistemas de EquacoesLineares.De forma geral, dado o sistema n n:__a11a12a13. . . a1na21a22a23. . . a2na31a32a33. . . a3n...............an1an2. . . an3ann__

__x1x2x3...xn__=__y1y2y3...yn__(1.1)Calcula-seodeterminantedamatrizdoscoecientesemaisosnde-terminantes xiresultantes dasubstituicaodacolunai damatriz doscoecientespelovetordostermosindependentes. Assim,peloteoremadeCramer a solucao (x1, x2, ..., xn) e dada por:xi =xiTal algoritmo envolve no mnimo (n + 1)!(n 1) operacoes aritmeticas.Levandoemconta. otempoparacadaoperacao(AdicoeseSubtracoes:40s e Multiplicacoes: 400s), temos o seguinte quadro:n = 5 n = 10 n = 20Cramer ( pela denicao) 2,5 s 3,4 dias 20 bilhoes de anosCramer ( por Laplace) 0,4 s 6 min 5 mesesGauss Metodo de Eliminacao 36 ms 0,22 s 1,5 s12 CAPITULO1. INTRODU CAOAMATEMATICANUMERICACaptulo2Introducao`aAritmeticadeMaquina2.1 SistemadePontoFlutuanteIntroducaoOs n umeros inteiros possuem representacao computacional exata, den-tro da regiao de representabilidade.Existem varios codigos mas o mais comum e o complemento de doisDentro da regiao de representabilidade, a aritmetica e exata.Os n umeros reais, em geral, nao tem representacao exata e sao aproxi-mados.Exemplo2.1.1. H= 1/2X= 2/3 HY= 3/5 HE= (X + X + X) HF= (Y+ Y+ Y+ Y+ Y ) HG = F/EAlguns resultados:1314 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAHP 48G SR 50 PC1H= 0.5 H= 0.5 H= 0.5X= 0.166666666667 X= 0.1666666667 X= 0.166667Y= 0.1 Y= 0.1 Y= 0.1E= 0.000000000001 E= 2.0E(13) E= 0F= 0 F= 0 F= 0G =FE 0 G =FE ?! G = 0.5A expressao ?! indica uma operacao invalida.Resultados de G em oat e 0.5 e para double ca em 1.0.Denicao2.1.1.Umn umeroreal x Reditoumn umerodepontoutuante normalizado se valerem:1.x = mbe2.m = d1d2d3...dn, n N3.1 d1 b 1, 0 di b 1, i = 2(1)n4.e1 e e2sendo e1 0, e2 1, e1, e2 Zonde:b e chamado base, b 2.e e chamado expoente, e1 e o menor e e2 e o maior expoente.m e chamado mantissa.n e o n umero maximo de dgitos usados na representacao do n umero.di, i = 1(1)n, sao os dgitos da mantissa.Denicao2.1.2. A uniao de todos os n umeros de ponto utuante com ozero, que e representado na seguinte forma:0 = 0.000...0. .n vezesbe1e chamado de Sistema de Ponto Flutuante T.2.1. SISTEMADEPONTOFLUTUANTE 15Usualmente, procuramos representar um sistema de ponto utuante porT= F(b, n, e1, e2)onde e1e e2sao respectivamente o menor e o maior expoente, b e a base en e a precis ao.Exemplo2.1.2. Sistema de Ponto utuante da:a) HP 25 : F(10, 9, 98, 100)b) Texas SR50 : F(10, 10, 98, 100)c) Texas SR52 : F(10, 12, 98, 100)d) HP 48G : F(10, 12, 500, 499)Vamos indicar por / e /, respectivamente, o menor e o maior n umeropositivo de T./ = 0.1be1ou ainda/ = (0. 1000 . . . 0. .n casas)b = b1/= 0.[b 1][b 1][b 1] . . . [b 1]be2= (1 bn)Vejamos algumas propriedades dos n umeros de ponto utuante. Seja Tum sistema de um ponto utuante da por T= F(b, n, e1, e2), entao:#T= 2(b 1)bn1 (e2e1 + 1) + 1 (2.1)Para qualquer mantissa m vale:b1 [m[ < 1 (2.2)[m[ < 1, pois toda mantissa tem como primeiro dgito (antes do ponto)o zero.[m[ b1, poisse [m[ 1Algunsmetodosparaocalculodenaodaoseuvalorexato, masistonem sempre e necessario, pois o que importa e a sua oredem de grandeza.O programa Pascal seguinte calcula uma aproximacao de da maquina:PROGRAM EPSMAQ (OUT PUT);VAR EPSILON, EPS : REAL;BEGINEPS: = 1;REPEAT EPSILON: = EPS;EPS: = 0.5 * EPSUNTIL EPS + 1 = 1;WRITELN(EPSILON DA MAQUINA = :30, EPSILON : 30);END.O resultado e = 0.71054273576011014Exemplo2.5.2. seja o n umero irracional2 = 1.414213562...30 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINA1.1.4142 e mais preciso e mais exato que 1.41, pois o primeiro tem maiorn umero de casas e aproxima melhor2.2.1.4149 emaisprecisoque1.414,poistemmaiscasasdecimais,poreme menos exato do que 1.414, pois o dgito 9 do primeiro nao e exato.2.6 InstabilidadeVeremos agora uma serie de problemas cujos diferentes modos de solucaopodem acarretar diferentes resultados.E claro que para muitos problemasnaoimportaqualasolucaoutilizadaqueteremossempreomesmoebomresultado. Quandonaotemosumbomresultado,oserrospodemsercau-sadospelosmodelosouentradadedados(inerentes), pelotruncamentoepeloarredondamentoconformejacitamosanteriormente. Naotrataremosaqui dos erros inerentes. Na realidade, podemos ver os problemas do pontode vista da instabilidade. Esta instabilidade pode ser entendida como umasensibilidade a perturbacoese pode ocorrer tanto no problema em si comono algoritmo, isto e, na maneira de resolve-lo.2.6.1 InstabilidadedosAlgaritmosComecemos com dois exemplos que sao citados em [2].Exemplo2.6.1. Calcular e e e5.5pela expansao na serie de Taylor.Dado que:ex= 1 + x + x22+ x33!+ x44!+ . . .Entao para x = 1 temos:e=1 + 1 + 0.5 + 0.16667 + 4.1667E 2 + 8.3333E 3++1.3889E 3 + 19841E 4 + 2.4801E 5++2.7557E 6 = 2.7183(2.19)Comparandoasomaanteriorcomavalor2.718281828, temosumerrorelativo de 6.6E 6, que e bem pequeno.2.6. INSTABILIDADE 31Para x = 5.5 temos:e5.5=1 5.5 + 15.125 27.730 27.730 + 38.12941.942 + 38.446 30.208 + 20.768 12.692+6.9803 3.4902 + 1.5997 . . . = 0.0026363(2.20)Comparando agora com e5.5dado por uma calculadora, temos que:e5.5= 0.004 086 771 439E o erro relativo e de 0.35 que e bem maior que o erro anterior.Qual a causa da diferenca?Observandoos termos dasomadosegundocaso, vemos quehaumacombinacao de dois fatores:somas de grandezas de diferentes ordens;subtracao e grandezas quase iguais.Estefenomenoechamadodecancelamentosubtrativooucon-celamentocatastroco, queebastantecomumemcalculos. senaohouvessemos arredondado cada parcela, o erro seria sensivelmente menor.Temos so esta causa?O cancelamento subtrativo nao e a real causa do erro nal da soma;Como melhorar?Semudamosocalculodee5.5para1/e5.5eutilizarmosasmesmasparcelas, teremos 0.0040865 e o erro relativo e 6.6E 5.Logo, podemos utilizar a serie de taylor para argumentos positivos.Exemplo2.6.2. Calcular In =_10xnex1dx para n = 1, 2 . . .Solucao: integrando por partes:_10xn..uex1dx. .dv=_xnex110_10n xn1ex1dx = 1nIn1, n = 2, 3, . . .(2.21)32 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAOu seja:In =_10xnex1dx = 1 n In1onde:I1 =_10xex1dx =1eUsando T= F(10, 6, 98, 99), temos os seguintes valores:I1= 0.367879 I6= 0.127120I2= 0.264242 I7= 0.110160I3= 0.207274 I8= 0.118720I4= 0.170904 I9= -0.068480I5= 0.145480Olhando o integrando I9=_x9ex1,vericamos que e sempre positivoem [0, 1] e, no entanto, o valor computado foi Negativo.Oquecausoutal erro?Notemos que so foi feito um erro de arredondamento emI1 quando 1/e foitomado por 0.367879 em vez de 0.3678794412. Como a formula esta correta,oerronal edevidoapenasaesteerrofeitoemI1. Observemoscomotalocorreu: em I2 o erro foi multiplicado por 2, depois em I3 foi multiplicadopor 3,1etc. Entao, oerrodeI9eexatamente(2)(3) . . . (9)=9!Sendo:E1 = [1/e 0.367879] = 4.412107(2.22)Temos no nal:4.412107 9!= 0.1601Na realidade, o valor correto de I9 e:I9 = 0.06848 + 0.1601 = 0.00916que eumavalorrazoavelparaI9. Logo,emboraaformula 2.21estejacorreta,ela esensvelemrelacaoaoac umulodeerro,ouseja,oalgoritmo2.6. INSTABILIDADE 33gerado e de ma exatidao. Um algoritmo estavel e dado pela formula equiv-alente:In1 =1 1nnn = . . . , 4, 3, 2 (2.23)Nestaformula, acadapasso, ovalordoerroemInedecrescidopor1n,(em vez de multiplicado por n). Se nos comecamos por n 1, voltaremose entao o erro inicial ou erros de arredondamento diminuirao a cada passo.Resta-nos saber qual sera o valor nal para In. Observemos que:In =_xnex1dx _1oxndx =_xn+1n + 1_10=1n + 1(2.24)Portanto, In tende a zero quando n tende ao innito. se aproximadamamosI20para zero e o usamos como valor inicial, temos:I20= 0 I14= 0.0627322I19= 0.0500000 I13= 0.0669477I18= 0.0500000 I12= 0.0717733I17= 0.0527778 I11= 0.0773523I16= 0.0557190 I10= 0.0838771I15= 0.0590176 I9= 0.0916123Majorando o erro em I20por121, temos:para E19 =120121= 0.0024para E18 =119120121Em E15 temos 4108, o que mostra que o erro inicial esta praticamentediludo. Continuando o algoritmo dado por 2.23, temos:I8= 0.1009320 I4= 0.1708934I7= 0.1123835 I3= 0.2072767I6= 0.1268024 I2= 0.2642411I5= 0.1455329 I1= 0.367879534 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAExemplo2.6.3. Calcular a media aritmetica de dois n umeros a e b.Algoritmo1:1.entrada a, b2.s a + b3.m s/24.sada mAlgoritmo2:1.entrada a, b2.s1a/23.s2b/24.m s1 + s25.sada mAlgoritmo3:1.entrada a, b2.d1a b3.d1d1/24.m b + d15.sada mParaumdado T=F(b, n, e1, e2)podemoster, conformea, b Fosseguintes problemas:Algoritmo 1: overowem 2.underowem 2 e 3.2.6. INSTABILIDADE 35No algoritmo 3 nao teremos provavelmente nenhum erro operacional, maspoderemos ter um erro no comando 2 se houver cancelamento subtrativo.Vejamos agora um algoritmo classico para calcular as razes de equacaodo 2ograu cujas as formulas sao dadas pelas equacoes seguintes:x1=b +b24ac2a(2.25)x2=b b24ac2a(2.26)Vamos analisar alguns cassos a serem resolvidos emT= F(10, 8, 50, 50)Exemplo2.6.4. Casoa:a = 1 , b = 105, c = 1As razes exatas corretamente arredondadas para 11 dgitos sao:x1 = 99999.999990x2 = 0.000010000000001Se as razes forem calculadas por (22), teremos:x1 = 100000.0 (muito boa)x2 = 0 (ruin)Na realidade, no calculo de x2 fomo vtimas do chamado cancelamentocatastroco. Facamos um parentese para explicar tal fenomeno.Considerandox=12345678.0ey=12345677.0, temosumadiferencax y=1.00000000, porem, comumapequenamudancadexpara x=12345678.1 e de ypara y= 12345676.9, obtemos uma diferenca de: z= 1.2000000036 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAPortanto, umamudancanononodgitodeumdadocausouumamu-dancanosegundodgitodaresposta. Nestecaso, quandoestamossub-traindograndezas aproximadamente iguais e haumerromuitogrande,dizemos que houve um cancelamento subtrativo (o mesmo vale para somargrandezas iguais, mas de sinais diferentes).Voltando para o exemplo inicial, para calcular x2por 2.25 ocorre:x2 =+10510102=02= 0 (2.27)Que e identicado cancelamento subtrativo.Uma forma de evitar tal problema, e usar o seguinte algoritmo:x1 = b sign(b)b24ac2a(2.28)Como ax2+bx+c = a(xx1)(xx2) implica que ax1 x2 = c, podemoscalcular a raiz por:x2 =cax1(2.29)Aplicando este algoritmo, nao tao ingenuo como 2.25, temos:x1 = 10000.00x2 = 1.0000000/100000.00 = 0.000010000000Casob:a = 6 , b = 5 , c = 4Aqui nao ha diculdades em calcular para x1e x2os valores:x1 = 0.50000000x2 = 1.3333333Seja qual for a formula utilizada.Casoc:2.6. INSTABILIDADE 37a = 6x1030, b = 5x1030, c = 4x1030Desde que os coecientes foram multiplicados por 1030nao ha mudancanasrazes. Contudo, aaplicacaodasformulaspodelevaraumproblemade overow, desde b2> 1050(considerando o Tdado).Casod:a = 1030, b = 1030, c = 1030Aqui, x1 esta muito perto de 1, enquanto x2 esta perto de 106. Portanto,nosso algoritmo deve determinar x1 muito aproximadamente, mas ira falharpara x2.Casoe:a = 1.0000000 , b = 4.0000000 , c = 3.9999999As razes verdadeiras sao:x1 = 1.999683772x2 = 2.000316228Mas aplicandoaformula 2.28, obtemos x1=x2=2.0000000, comquatro dgitos corretos.Exemplo2.6.5. Seja o sistema:_ 0.117102x + 0.648 y= 0.6490.512 x 0.920103y= 0.511(2.30)Que, resolvidos em T=F(10, 3, 3, 3) comarredondamentoparaon umero de maquina mais proximo, temos:_ 0.117102x + 0.648 y= 0.6490x + 0.284103y= 0.511(2.31)E da y= 0.996 e x = 3.42.38 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINATrocando a ordem das equacoes e resolvendo no mesmo sistema de pontoutuante, temos x = 1 e y= 1, a qual se acha bem mais proxima da solucaoexata que e:x = 0.999843279 . . . e y= 0.999737937 . . .VoltaremosaapresentaresteexemplonoCaptulo3quandoveremosoMetodo de Eliminacao de gauss com Pivotamento Parcial.Comosexemplosanterioresvemosqueosalgoritmospodemgerar,sobcertos dados, erros consideraveis de modo a tornar in util o resulstado.Vejamos agora outro tipo de instabilidade.2.6.2 InstabilidadedeproblemasConsideremos a tarefa de colocar um lapis comum, de base plana, em pe.Seabaseforcolocadaparabaixo, aterefaserafacil; contudo, seaparteconica da ponta car para baixo, a tarefa e quase impossvel (sem truques).A primeira tarefa constitui um problema estavel, enquanto a segunda e ditainstavel, pois, efetivamente, se o lapis car em pe, sera apenas por algumasfracoesdesegundoedepoiscaira. Algosemelhanteocorrecomproblemasnumericos.VeremosagoraumproblemaclassicoemmetematicaNumericaqueecitado em [26[ Wilkinson.Exemplo2.6.6.p(x) = x20210x19+. . . = (x1)(x2)(x3) . . . (x19)(x20) = 0Eclaroqueas razes sao1, 2, 3, . . . , 19 e 20eestaobemseparadas.Computandoasrazesdep(x) + 223 210x19= 0,numcomputadorcomsistema de ponto utuante T= F(2, 90, e1, e2), teremos:2.6. INSTABILIDADE 39R1= 1.000 000 000R2= 2.000 000 000R3= 3.000 000 000R4= 4.000 000 000R5= 4.999 999 928R6= 6.000 006 944R7= 6.999 697 234R8= 8.007 267 603R9= 8.917 250 249R10, R11= 10.095 266 145 0.643 500 904iR12, R13= 11.793 633 881 1.652 329 728iR14, R15= 13.992 358 137 2.518 830 070iR16, R17= 16.730 737 466 2.812 624 894iR18, R19= 19.502 439 400 1.940 330 347iR20= 20.846 908 101Notemos que umtermodaequacaomudoude 21019para 210+223x19, ouseja, umamudancanotrigesimodgitodabase2emapenasumdos coecientes. Oresultadoecompletamenteinesperadoeas mu-dancas nas razes saograndes. Arazaodessamudancadrasticanaoearredondamento nem o algoritmo e sem problema de condicionamento.Hacertosproblemasque, quandosofrempequenaalteracaonosdadosde entrada, tem na sua resposta pequena diferenca proporcional, enquantooutros mostram grande variacao no resultado do mesmo com uma pequens-sima alteracao nos dados de entrada. Os primeiros problemas sao ditos bemcondicionados e os segundos sao ditos mal condicionados.No caso de polinomio podemos analisar o seguinte:Seja p(x, ) = x20x19+ . . .Deferanciando p(x, ) = 0 em relacao a , temos:p(x, )xx + p(x, )= 040 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAx= p/px=x1920i=120j=1, j,=i(x j)Calculando em cada raiz, temos:xx=i =i1920j=1, j,=i(i j), i = 1, 2, . . . , 20. (2.32)Vejamos a seguinte tabela:Raizx[x = i Raizx[x = i1 8.2x101811 4.6x1072 8.2x101112 2.0x1083 1.6x10613 6.1x1084 2.2x10314 1.3x1095 6.1x10115 2.1x1096 5.8x10116 2.4x1097 2.5x10317 1.9x1098 6.0x10418 1.0x1099 8.3x10519 3.1x10810 7.6x10620 4.3x107Estesn umerosdaoumamedidadiretadasensibilidadeoucondiciona-mentodasrazesparaocoeciente. Logo,asrazesmaioressaoasmaissensveis. Naunidadequatrovoltaremosafalardocondicionamentodasrazes de equacoes nao lineares.Exemplo2.6.7.Dadaumacurvay =f(x), determinar atangenteaessa curva em x = x0, assim como a area limitada por esta curva e as retasx = a, x = b, e y= 0.2.6. INSTABILIDADE 41ViraguraFigura2.5: EstabiladadedaintegracaoeinstabildadedadiferenciacaoSepequenasvariacoesocorrerememf(x)emvirtude,porexemplo,dearredondamento ou truncamento, podemos ter grandes variacoes no calculodatangente`acurvanoponto(x0, f(x0)), comopodeservistonaFigura2.5, onde a curva gconstitui uma perturbacao na curva f.No entanto, a area sob a curva fou g mantem-se praticamente a mesma.Exemplo2.6.8. Consideremos a equacao diferencial:y/(x) = y 0 x 1.0y(0) = 1(2.33)Aproximando y/()x por:(h/2)[3y(x) + 4y(x + h) y(x + 2h)]Obtidopelaaproximacaodey(x)porumpolinomiodo2ograueasso-ciando y(x) com yi, y(x + y) com y(x + 2y) com yi+2, temos:yi+2 = 4yi+13yi2hyii = 0, 1, 2, . . .Onde y0 = 1 e y1 = eh.Se tomarmos h = 0.1, teremos:42 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAy2= 1.220 683 672y3= 1.346 187 75y4= 1.478 563 25y5= 1.606 452 2y6= 1.694 406 4y7= 1.636 978 56y8= 1.225 813 76y9= -0.735 076 352y10= -6.542 909 44E da deveramos ter em uma aproximacao para y(1) = e. Contudo, y10nada tem a ver com y(1).Os dois ultimos exemplos mostramque adiferenciacaopode ser umproblemanumericamentemaisinstaveldoqueaintegracao. Contudo,doponto de vista analtico o processo da diferenciacao de funcoes que surgemna pratica e mais simples do que a integracao.Comisso, concluimosestaunidademostrandoalgunsproblemasqueaMatematicaNumericalidaemfuncaodaaritmeticafeitanumamaquinacomoumcomputador digital. Felizmente, os problemas causados peloarredondamentooupelocondicionamentodosproblemasnaosaomaioresqueasvantagensdousodocomputador. Estesexemplosdevemlevar-nosapensar quenaodevemos emqualquer hipoteseconar cegamentenosresultados produzidos pela maquina..1. INTRODU CAO 157Topicos sobre a Norma IEEE 754.1 IntroducaoHistoricamente existem alguns marcos na representacao dos n umeros tantodos naturais ou inteiros como dos racionais como reais. Na notacao decimalousodozeroeosistemaposicional foi umdeles. Istofacilitounaosoarepresentacao em si, como tambem os algoritmos de operacoes aritmeticastornaram-semaissimples. Nestesistemaarepresentacaoden umerosdeforma nita ou de fracoes periodicas ou nao, esta bem estabelecido e usadode modo mundial.Com o advento dos computadores e sua memoria com palavras de tamanhonitotornaram-senecessarioscriarnovasrepresentacoes. Osn umerosin-teiros sao representados com sistemas de ponto xo. Para estes, usualmentetemosarepresentacaousandoocodigodecomplementodedois, parare-presentar adequadamente o zero, os positivos e negativos. Para os n umerosracionais sao usados os sistemas de ponto utuante. Os n umeros reais, saoaproximados por racionais. De fato em qualquer sistema de ponto utuantesotemosrepresentacoespararacionais. Istotrazvariosproblemascomosarredondamentos.Ate a decada de 80 cada fabricante de computador escolhia um sistema derepresentacaoeoimplementavaetodososdemaisaplicativosdesoftwarequeusariamestas maquinas usavamnecessariamenteestesistema. Porexemplo, no software basico de mainframes com IBM usava-se um tipo derepresentacao,combaseinternade16,ondeon umerodepontoutuanteerarepresentadocommantisa, sinal damantissaecaractersticaquere-presentavaoexpontesemsinal,fazendoumdeslocamento. JanosantigoscomputadoresBurroughsouCDC, usava-sebase8eon umerodepontoutuante possui, sinal da mantissa, mantissa, expoente e sinal do expoente.Comadifusaodecomputadoresdepequenoporteondeaexibilidadedeaplicativostornou-semaior,foinecessariodesenvolverumpadraoparaviabilizarouso,reusoeintercambiodeinformacoessobreaaritmeticade158 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAponto utuante de modo mais uniforme. Estes problemas foram estudadospor um comite do Instituto de Engenharia Eletrica e Eletronica do EstadosUnidos da America do Norte.3O objetivo da Norma IEEE 754 e estabelecer as diretivas para a imple-mentacao da aritmetica binaria de ponto utuante. Ela especica formatos,operacoes basicas: adicao subtracao, multiplicacao, divisao, raiz quadrada,comparacoes, conversoes, equaissaoassituacoesdeexcessao. AnormaIEEE 854-1987 generaliza a 754 e abrange a aritmetica de ponto utuantena base decimal, que e usada principalmente nas calculadoras.Embora a Norma propicie suporte para para diagnosticar certas situacoesde risco, isto nem sempre e implementado pelo fabricante em sua totalidade.O link da IEEE onde pode-se comprar a norma e www.ieee.org.ou http://standards.ieee.org/OlinkparamaisinformacoeseondeexistemartigoscomoodoDavidGoldberg e outros e http://grouper.ieee.org/groups/754/Um link muito interessante, criada por Quanfei Wen e:http://babbage.cs.qc.edu/courses/cs341/IEEE-754.html.2 FormatosToda a maquina ou qualquer instrumento material tem implicitamente umalimitacao fsica. Por exemplo, uma ta metrica comum nao serve para medircorretamente com milmetros e sim apenas com centmetros; se usarmos umpaqumetro,podemosmedircorretamentecommilmetros. Umamaquinacomoumcarrotemumlimitemaximodevelocidade. Paraatingirveloci-dades maiores temos que usar outro tipo de carro ou ate mesmo outro tipode veculo, como um aviao. Estas limitacoes estao associadas `a precisao.No caso de calculos feitos em maquinas digitais temos a chamada precisaosimples,duplaouprecisaoextendidaquedependemdevariosparametrosestabelecidos pelo hardware, como tamanho em bits da palavra de memoria,3Institute of Electrical and Electronics Engineers: IEEE ou EYE triple E.O IEEE e uma sociedade cujos membrossao tecnicos prossionais da area de engenharia eletronica, eletrica e atualmente de computacao e outras tecnologiasemergentes..2. FORMATOS 159tamanhoderegistradoresespeciais, n umerodebitsextrasdapalavradememoria, como os tagsbits ouagsque indicam a paridade, qual o tipodeconte udo, underow, overow, divisaoporzero, operacaoinvalidaououtros indicadores para o sistema operacional.Na Norma sao assumidos as seguintes denicoes:N umerodePontoFlutuanteBinarioEumaseq uenciadedgitosbinariosarmazenadosembits, compostode3campos, Obitmaissignicativoeosinal damantissa, 0parapositivo e 1 para negativo;um expoente deslocado (biasedem ingles)e uma mantissa que contem a parte fracionaria.N umeroNormalizadoE o n umero de ponto utuante cujo expoente esta dentro dos limites ea mantissa representa qualquer fracao binaria.ExpoenteE o mesmo expoente da denicao usual de n umero de ponto utuante,ou seja, e o expoente da base 2 nao deslocado, ou seja, not-biased.Expoente biased ouCaractersticaE a soma de uma constantebiascom o expoente gerando um expoentedeslocado, paraevitar que tenhamos que armazenar umsinal paraoexpoente, oquedicultaosalgoritmosaritmeticos. NasmaquinasIBM era chamado de Caracterstica para nao confundir com o expoentenormal.N umeroDesnormalizadoEumn umeronaonulocujoexpoentetemumvalorreservado,usual-mente o valor mnimo e cujo primeiro bit da mantissa e 0.E util pararepresentar os n umeros que cam na regiao de underow.MantissaouFracao160 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAE uma seq uencia de bits que representa a mantissa da denicao usuale que de fato possui como primeiro bit o valor 1 que se torna implcito,antes do ponto separador que tambem e implcito.InnitoseZerosComaspossibilidadesdebitstemosduasconguracoesparaozero:+0 e 0, o que e comum em certos codigos, e dois innitos: +, .NaN:Naoeumn umerodepontoutuanteEumaseq uenciadebitsquepossuivaloresindenidoserepresentamoperacoes invalidas.Para cada formato temos a seguinte expressao:(1)S2e(b0.b1b2b3. . . bn1)ondeS=0seamantissaforpositivaouS=1,sefornegativa,Emin e Emax, ovalorb0temovalor1, nabasebinariaeassume-sequeeste1/econstanteecasubentendidoenaoocupaumespacooubit;osdemaisdgitos binarios sao nulos ou 1.No formato simples temos 32 bits dispostos na seguinte forma:Quantidade de bits 1 8 23Conte udo Sinal Expoente fracaoBits 31 30, 29, . . . 23 22,21 . . . 1, 0Com esta conguracao temos as seguintes possibilidades:.3. EXEMPLOS 161Classe Sinal Exp FracaoZeros 1 0 00 0 0N umero Normalizado 0 1-254 qualquer1 1-254 qualquerN umero Desnormalizado 0 0 nao nulo1 0 nao nuloInnitos 0 255 01 255 0NaN( Not a Number) 255 nao nuloNo formato duplo temos 64 bits dispostos na seguinte forma:Quantidade de bits 1 11 52Conte udo Sinal Expoente fracaoBits 63 62, 61, . . . 50 51,50 . . . 1, 0Para outros formatos temos o seguinte resumo:Parametro FormatoBasico Basico Duplo Duplosingle Estendido double Estendidon (precisao) 24 32 53 64Emax+127 1023 +1023 16383Emin-126 1022 16382Bias +127 Nao +1023 Naoespecicado especicadoBits do expoente 8 11 11 15Total em bits 32 43 64 79.3 ExemplosEstesexemplossereferemaoformatosimples, quecorrespondemaotipooatnalinguagemCouReal emPascal nosatuaisPCcompalavra162 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAbasicade32bitsou4bytes. NalinguagemC,atravesdasbibliotecasdeI/Oaespecicacaodeformato%converteoconte udoapontadoparaasada desejada.especicador o argumento econvertido para ad ou i int notacao decimal deinteiro com sinalo int valor octal sem sinalsem os zeros naisx ou X int notacao hexadecimal, sem oszeros nao signicativosu int notacao decimal sem sinale ou E oat or notacao decimal cientcadouble com []m.mmm. . . mE[]nnnf oat or notacao decimaldouble com []mmmm.nn. . . ng ou G oat or usa a forma mais curta dentre e ou fdouble e sem os zeros nao signicativosu int notacao hexadecimal, sem sinalp pointer endereco armazenado num ponteiroO formato %p.qf indica que serao usadas p espacos para o n umero, con-tandoosinal eoponto, eqindicaon umerodecasas decimais apos oponto.Observacoes:Muitocuidadoenecessarioaousarosformatosadequadosaotipodevariavel.1.No caso de inteiros a linguagem C, como normalmente e implementadanao avisa sobre o overow ou underow.2.Adivis aoporzeronaocausaumainterrupcaoemsi,emboraquandoovaloreimpressotemos: (1/0)=1.#INF00. eseuconte udoca:7f800000x=(0[111 1111 1[00000 . . . 0)2quesinaliza+. Seeste.4. EXEMPLOS 163valor for reusado o processo de inderterminacao continua.3.Seporexemplo, ovalor(1.0/0.0)esomadoa10.0temos: (1/0 1 +10)f= 1.40445e + 3064.No caso de oat .....4 ExemplosExemplo.4.1. Indicaraconguracaodebitsqueassumemosseguintesvalores:1.oat num=357.8125;(a)Convertendo para binario:(357.8125)10 = (1 0110 0101.1101)2(b)Deslocar o ponto fracionario:(357.8125)10 = (1.0110 0101 1101)2 2+8(c)Completaramantissaatecompletaros23bitsoupreenchercomzeros o que faltarm = 011 0010 1110 1000 0000 0000Lembrar que o primeiro 1 ca subentendido e foi cortado, e comecamosa preecher do bit mais signicativo, da esquerda para direita.(d)Deslocando o expoente: Somar a constante do bias=127127 + 8 = 135 = (1000 0111)2(e)Preencher o expoente com o resultado do item anterior.Se nao houver 8 bits preencher com zeros.(f)Determinar o sinal da mantissa.S= 0164 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINA(g)Juntando as partes:(357.8125)10 = 0[100 0011 1[011 0010 1110 1000 0000 0000ou ainda em hexa:(357.8125)10 = 43b2e800xSe o n umero fosse negativo, caramos com:(357.8125)10 = c3b2e800xAtencao, isto nao e converter o n umero para a base 16.Exemplo.4.2. Seja agora o caso de n umeros inteiros: inti=-357;intj=357;Usa-se o complemeto de 2.1.Convertendo para binario e completando com zeros:357 = (1 0110 0101)2357 = (0 . . . 0 0001 0110 0101)22.Fazendo o complemento de 2:1 . . . 1 0 1001 1010+ 11 . . . 1 1110 1001 10113.paraovalorpositivo,nao enecessarionenhumaoutraconta,alemdaconvers ao inicial.Logo:(357)10 = 00000165x(357)10 = fffffe9bx.4. EXEMPLOS 165Exemplo.4.3. Outro n umero real float num = 951.339 843 75;1.Convertendo para binario:(951.33984375)10 = (11 1011 0111.0101 0111)22.Deslocar o ponto fracionario:(951.33984375)10 = (1.11011011101010111)2)293.Completar a mantissa ate completar os 23 bits ou preencher com zeroso que faltarm = 1.110110111010101110000004.Deslocando o expoente: Somar a constante do bias=127127 + 9 = 136 = (1000 1000)25.Preencher o expoente com o resultado do item anterior.Se nao houver 8 bits preencher com zeros.6.Determinar o sinal da mantissa.S= 17.Juntando as partes:(951.33984375)10 = 1[100 0100 0[110 1101 1101 0101 1100 0000ou ainda em hexa:(951.33984375)10 = c46dd5c0xSe o n umero fosse positivo, caramos com:(951.33984375)10 = 446dd5c0x166 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAExemplo.4.4. Consideremos um n umero real com precisao dupla:1.doublex=245.;2.Convertendo para binario:(245.)10 = (1111 0101)23.Deslocar o ponto fracionario:(245.)10 = (1.111 0101)2 2+74.Completar a mantissa ate completar os 52 bits ou preencher com zeroso que faltarm = 111 0101 0000 000. . . 0000Lembrar queoprimeiro1casubentendidoefoi cortado, comonaprecisaosimplesecomecamosapreecherdobitmaissignicativo,daesquerda para direita.5.Deslocando o expoente: Somar a constante do bias=1023 = 21011023 + 7 = 1030 = (100 0000 0110)26.Preencher o expoente com o resultado do item anterior.7.Determinar o sinal da mantissa.S= 08.Juntando as partes:(245.)10 = 0[100 0000 0110 1110 1010 0000. . . 0000ou ainda em hexa:(245)10 = 406ea000 00000000x.5. ARREDONDAMENTOS 167.5 arredondamentosOarredondamentoeumpontocrticodaaritmeticadepontoutuante.Para fazer o arredondamento de modo correto e necessario evitemente con-hecerosdemaisdgitosdoresultado. Defatonasunidadesdearitmeticaexistemmaisinformacoesdoque emostradonapalavradememoria.Eaaprtir destas informacoes que e calculado o arredondamento.Existem 4 tipos de arredondamento denidos na norma. Unbiased: arredonda para o mais proximoDirecionado ao ZeroDirecionado ao innito positivoDirecionado ao innito negativoSera continuado.Revisao de CalculoO seguintes resultados sao vistos nos cursos basicos e as referencias estaona Bibliograa.168 CAPITULO2. INTRODU CAO`AARITMETICADEMAQUINAReferenciasBibliogracas[1]Lamport, L., LaTeX : A Documentation Preparation System UsersGuide and Reference Manual, Addison-Wesley Pub Co., 2nd edition,August 1994.[2]Forsythe, G.E.;Malcom, M.A. & Moler C.B. ComputerMethodsformathematical computationsEnglewood Clifs, Prentice Hall, 1977.[3]Pennington, R.H. Introductory computer methods andnumericalanalysis. New York, MacMilan, 1965.169