Você está na página 1de 24

D I S C I P L I N A

Clculo Numrico

Aritmtica de ponto utuante e erros numricos


Autores

Marcelo Gomes Pereira Roberto Hugo Bielshowsky

aula

01
Calc_Num_A01_RF_ZBZ_020909.indd Capa1 02/09/09 09:33

Governo Federal
Presidente da Repblica Luiz Incio Lula da Silva Ministro da Educao Fernando Haddad Secretrio de Educao a Distncia SEED Carlos Eduardo Bielschowsky

Reitor Jos Ivonildo do Rgo Vice-Reitora ngela Maria Paiva Cruz Secretria de Educao a Distncia Vera Lucia do Amaral

Secretaria de Educao a Distncia- SEDIS


Coordenadora da Produo dos Materiais Vera Lucia do Amaral Coordenador de Edio Ary Sergio Braga Olinisky Projeto Grco Ivana Lima Revisores de Estrutura e Linguagem Eugenio Tavares Borges Janio Gustavo Barbosa Thalyta Mabel Nobre Barbosa Revisora das Normas da ABNT Vernica Pinheiro da Silva Revisores de Lngua Portuguesa Janaina Tomaz Capistrano Kaline Sampaio de Arajo Samuel Anderson de Oliveira Lima Adaptao para Mdulo Matemtico Joacy Guilherme de A. F. Filho Diagramadores Elizabeth da Silva Ferreira Ivana Lima Johann Jean Evangelista de Melo Jos Antonio Bezerra Junior Mariana Arajo de Brito Revisoras Tipogrcas Adriana Rodrigues Gomes Margareth Pereira Dias Nouraide Queiroz Arte e Ilustrao Adauto Harley Carolina Costa Heinkel Hugenin Leonardo Feitoza

Diviso de Servios Tcnicos Catalogao da publicao na Fonte. UFRN/Biblioteca Central Zila Mamede

Pereira, Marcelo Gomes. Clculo numrico: matemtica / Marcelo Gomes Pereira, Roberto Hugo Bielschowsky. Natal, RN: EDUFRN, 2009. 260 p. ISBN: 978 - 85 - 7273 - 521 - 6 Contedo: Aula 01 Aritmtica de ponto utuante; Aula 02 Introduo ao Scilab; Aula 03 Sistemas de equaes lineares; Aula 04 SEVs do n, bases e ajustes de modelos com quadrados mnimos; Aula 05 Autovalores e valores singulares; Aula 06 Valores singulares e erros numricos ao resolver Ax=b; Aula 07 Algoritmos e programao com o Scilab (Parte 1); Aula 08 Algoritmos e programao com o Scilab (Parte 2); Aula 09 Zeros de funes; Aula 10 Interpolao polinomial; Aula 11 Integrao numrica; Aula 12 Introduo numrica s equaes diferenciais ordinrias. 1. Clculo numrico. 2. Aritmtica de ponto utuante. 3. lgebra linear computacional. I. Bielschowsky, Roberto Hugo. II. Ttulo. CDD 519.4 CDU 519.6

RN/UF/BCZM

2009/33

Todos os direitos reservados. Nenhuma parte deste material pode ser utilizada ou reproduzida sem a autorizao expressa da UFRN - Universidade Federal do Rio Grande do Norte.

Calc_Num_A01_RF_ZBZ_020909.indd Capa2

02/09/09 09:33

Apresentao
Bem-vindo disciplina Clculo Numrico! Est curioso para saber do que se trata? O Clculo Numrico diz respeito s resolues aproximadas de problemas. Seu principal alvo est nas aplicaes a modelos que retratem algum fenmeno concreto. Em particular, nesta disciplina, trabalharemos modelos ligados dinmica populacional com dados do IBGE e que permitem estimar populaes em tempos futuros, calcular a trajetria de um cometa, conhecendo alguns pontos de sua rbita, estimar reas de regies num mapa, modelar problemas simples em engenharia, representar solues numricas de problemas modelados por equaes diferenciais etc... Esta uma disciplina que tem muito mais a ver com Matemtica aplicada do que com Matemtica pura e tem como um de seus objetivos propiciar uma ideia inicial de temas e mtodos em Matemtica aplicada. Em particular, ser muito til na disciplina Modelos Matemticos, que consta em seu currculo e na qual voc trabalhar diferentes temas de realidade concreta que admitem uma modelagem matemtica signicativa. Aqui, trataremos de questes ligadas ao Clculo e lgebra Linear, usando o computador para encontrar aproximaes. Esperamos que voc no tora o nariz para a palavra aproximaes. verdade que uma soluo aproximada de um problema traz naturalmente um erro. Mas isso no signica que seja intil. Pelo contrrio, muitos problemas matemticos no tm soluo exata ou ela simplesmente no nos interessa. Na verdade, no existe medida precisa de grandezas no mundo real. Todas as medidas de fenmenos reais contm, necessariamente, imprecises a partir de alguma casa decimal. O Clculo Numrico vem se tornando uma ferramenta cada vez mais importante na modelagem matemtica de problemas aplicados, na medida em que computadores fazem contas numricas com grande velocidade, desde que se admitam pequenos erros de arredondamento em cada operao. Muito em especial, a lgebra Linear vem se tornando uma ferramenta cada vez mais indispensvel nas aplicaes, por ser uma espcie de elo de ligao atravs do qual modelos matemticos dialogam com os computadores. O grosso do tempo computacional gasto num programa para resolver uma aplicao relevante, com alguma complexidade numrica, usualmente gasto em rotinas de lgebra Linear. J o velho Clculo, pelo menos to velho quanto Newton e Leibnitz, continua to fundamental como sempre, pois c de nosso cantinho de onde conseguimos enxergar as coisas, olhando para as equaes que regem fenmenos naturais, s vezes d a impresso que derivada e integral teriam sido as principais ferramentas utilizadas na criao do Universo.

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo1

02/09/09 09:33

O velho clculo continua sendo cada vez mais a ferramenta fundamental com a qual se escrevem no apenas as equaes dos primrdios de nosso Universo e da Fsica como um todo, mas tambm de ecossistemas marinhos, de dinmicas econmicas, do clima em nosso Planeta, de reatores qumicos etc. Com uma diferena fundamental do que acontecia at cerca de sessenta anos atrs: agora, sabemos fazer contas rapidamente, entrando no computador com dados escritos na forma de vetores e matrizes de nmeros. Da a importncia crescente do Clculo Numrico.

Linhas gerais de como est organizada a disciplina

Organizaremos a disciplina como uma espcie de revisita lgebra Linear e ao Clculo, conduzida pelo Scilab, que um programa bom nesta coisa de fazer contas rapidamente, alm de ser muito amigvel e livre (grtis).

Nas aulas 2, 3, 4, 5 e 6, privilegiaremos uma revisita lgebra Linear, atravs dos comandos do Scilab, de forma a reconhecer muitos dos mtodos que voc estudou em lgebra Linear I e II. AL1 e AL2, como a elas nos referiremos. O ponto central desta revisita lgebra Linear que ser realizada em aritmtica de ponto utuante, como veremos nesta aula, por oposio aritmtica exata, ou seja, com nmeros reais sem aproximaes, como voc viu em AL1 e AL2. Por um lado, isso faz com que as contas sejam realizadas com velocidade extraordinria num computador, o que fundamental nas aplicaes. Pelo outro, gera erros de arredondamento que podem se acumular a ponto de inviabilizar completamente as solues obtidas nos computadores, conforme teremos a oportunidade de ver em vrios momentos e, muito em especial, na Aula 6, na qual trataremos da sensibilidade de um sistema linear a dados. De modo que, bem distinto de uma repetio de algo j visto, trata-se de revisitar a lgebra Linear com um olhar bem diferente. Em especial, gostaramos de combinar com voc que, nesta disciplina, sobretudo nas aulas 2, 3, 4, 5 e 6, tenha sempre mo as aulas de lgebra Linear I e II e que revejam essas disciplinas sempre que recomendarmos. Alm disso ser muito importante nesta disciplina e evitar repeties inteis de contedo, esperamos convenc-lo de um princpio pedaggico que nos parece importante.

Ao revisitarmos conceitos, com mais experincia e sob uma nova tica, os consolidamos de uma maneira surpreendente. Em particular, o que nos parecia to difcil antes, de repente ca bem fcil de entender e bem mais interessante.

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo2

02/09/09 09:33

As aulas 7 e 8 (Algoritmos e programao com Scilab I e II) sero dedicadas a uma introduo a algoritmos e a sua programao em Scilab. Trata-se principalmente de dar um pontap inicial num assunto fundamental para o clculo numrico e no qual o Scilab especialmente amigvel. Nas demais aulas, trataremos de algoritmos relacionados a clculo diferencial e integral, visando encontrar zeros de funes, realizar interpolao polinomial, calcular aproximaes numricas de integrais, resolver numericamente equaes diferenciais, obter estimativas para os erros cometidos em alguns dos mtodos estudados, aplicar as tcnicas desenvolvidas a problemas interessantes etc.

Esta primeira aula, em linhas gerais


Esta primeira aula fala da aritmtica de ponto utuante e de erros numricos decorrentes de se arredondar resultados de contas. Esse um tema fundamental, que nos acompanhar transversalmente em toda a disciplina. A aritmtica de ponto utuante corresponde, grosso modo, a considerarmos apenas um certo nmero de algarismos para representar grandezas, como usualmente fazemos com medidas de tamanho. Que sentido tem representar com vinte casas decimais resultados operados a partir de medidas feitas com preciso de quatro casas apenas? A contrapartida que em cada operao realizada ocorrero erros de aproximao em alguma casa decimal. O acmulo de erros numricos, mesmo que bem pequenos cada um, em problemas envolvendo bilhes de operaes aritmticas, pode deformar completamente a soluo obtida, a depender do problema em questo e do algoritmo empregado para resolv-lo. Esse um dos temas centrais da anlise numrica, e o tangenciaremos na Aula 5. Nesta aula, pretendemos alertar voc sobre diculdades numricas que podem ocorrer ao se trabalhar com o computador.

Objetivos
1 2 3 4
Calcular erros absoluto e relativo. Efetuar arredondamento e truncamento.

Representar nmeros em diferentes bases.

Introduzir o sistema aritmtica de ponto utuante.

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo3

02/09/09 09:33

Introduo
Imagine-se na situao de algum que tem um terreno medindo 10m por 10m e precisa dividi-lo ao meio por uma cerca na diagonal do terreno. Para comprar arame e fazer a cerca, voc precisa saber qual o comprimento dela. Como descobrir isso?

10

10

Felizmente, voc conhece o teorema de Pitgoras e sabe que as medidas em questo devem satisfazer a equao x 2 = 102 + 102 = 2 102. Ento, a cerca na diagonal ter um comprimento de 10 2 m . Mas, no d para pedir 10 2 m de cerca na loja de ferragens. O que voc faz utilizar uma calculadora ou o computador para traduzir essa informao em um nmero mais compreensvel. Pedimos que, neste momento, voc pare a leitura, pegue uma calculadora (de celular ou cientca) ou ligue o computador e acione o Scilab. Em seguida, calcule 10 2 m . De acordo com o nmero que encontrar, pense em quanto de cerca seria razovel pedir. Usamos uma calculadora de celular e o resultado encontrado foi:
10 2 = 14, 1.

J em uma calculadora cientca, o resultado encontrado foi:


10 2 = 14, 14213562 .

No computador, com o programa Scilab, encontramos:


10 2 = 14, 142135623730951 .

Na verdade, nenhum dos valores encontrados exatamente 10 2 . O fato que esse um nmero irracional, com innitas casas decimais que no se repetem de acordo com um padro. Ento, por mais poderosa que seja a ferramenta que utilizarmos para efetuar esse clculo, tudo o que poderemos encontrar so aproximaes de 10 2 .

Felizmente, para o nosso problema da cerca, no necessrio ter o valor exato. Bastaria saber que 14,2 metros de cerca j mais do que o necessrio. Esse tipo de situao em que no se pode ter a soluo exata do problema, mas camos satisfeitos com uma soluo aproximada, muito comum em nosso dia-a-dia.
4 Aula 01 Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo4

02/09/09 09:33

Erros
Quando falamos de solues aproximadas, falamos tambm em erros numricos. No exemplo da cerca, no incio desta aula, foram calculados trs valores diferentes para 10 2. Cada um deles tem uma certa distncia do valor exato. Essa distncia o que estamos chamando de erro. Ter controle sobre os erros fundamental quando se trabalha com aproximaes. Dois tipos so do nosso interesse: os erros absolutos e os relativos. O erro absoluto simplesmente a diferena entre o valor exato de um nmero x e seu valor aproximado x . No caso de 10 2 , impossvel obter o valor exato do erro absoluto. Num caso como esse o que se faz obter uma estimativa para o mdulo do erro absoluto. Por exemplo, como sabemos que 10 2 est entre 14 e 14,2, podemos garantir que o erro cometido com a aproximao obtida no celular menor que 0, 2, que a maior diferena possvel para valores x que esto entre 14 e 14,2. J com os valores 14,14213562 e 14,142135623730951 podemos ter uma estimativa mais precisa do valor de 10 2 . Observe que as duas aproximaes coincidem at o segundo algarismo 2. Podemos ento estreitar o intervalo que contm a soluo exata. Conclumos que 10 2 um nmero entre 14,14213562 e 14,14213563. Assim, a nossa ltima aproximao possui um erro absoluto menor que 0,00000001. primeira vista, esse ltimo erro muito pequeno. Imagine que algum lhe dissesse que cometeu um erro de 0,00000001. A primeira reao achar que esse nmero insignicante, quase zero. Isso pode ser verdade em muitas situaes. Mas, o fato que nossa noo de pequeno depende daquilo que estamos observando. No caso de 10 2 , o erro cometido satisfatrio para muitos problemas prticos. Porm, se pensarmos em uma situao em que a soluo exata 0,0000000000000002, ento uma aproximao que tem um erro de 0,00000001 est muito longe do ideal. Por causa dessa necessidade de se comparar o erro com as grandezas medidas, emprega-se a denio de erro relativo, que o erro absoluto dividido pelo valor aproximado. No exemplo anterior, se a soluo exata 0,0000000000000002 e cometemos um erro absoluto de 0,00000001, ento podemos ter encontrado a aproximao 0,0000000099999998. Dessa forma, o erro relativo seria de EA 0, 00000001 ER = = = 1, 0000000200000004000000080000002. Ou seja, x 0, 0000000099999998 mais de 100% de erro.
J no exemplo de 10 2 , temos: |ER| = 0, 00000001 |EA| < = 0, 0000000007 = 7 1010 . |x| 14, 142135623730951

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo5

02/09/09 09:33

Atividade 1
a) Encontre aproximaes de com o mximo de algarismos que conseguir. b) Calcule os erros absoluto e relativo cometidos pela sua aproximao.

Aula 01

Calc_Num_A01_RF_ZBZ_020909.indd Miolo6

sua resposta
Clculo Numrico

02/09/09 09:33

Arredondamento e truncamento
Vamos fazer um pequeno exerccio com uma planilha eletrnica (Excel, BrOfce). Na barra de frmulas, digite =PI(). Esse comando retorna a constante = 3,141592... Na barra ,00 de ferramentas, procure pelo boto ,0 diminuir casas decimais e aperte-o at que sua tela que parecida com esta:

Agora, procure pelo boto ,00 aumentar casas decimais e aperte-o duas vezes. O ,0 valor de que aparece 3,142. Se voc apertar o boto ,00 mais uma vez, aparecer 3,1416. Outra vez, e aparecer 3,14159.

,0

Por que o valor de , mostrado na planilha, muda tanto?

A resposta que cada vez que apertamos um dos botes mostrados, estamos dizendo ao programa que queremos ver uma aproximao de com um determinado nmero de casas decimais. Para escolher qual ser o ltimo algarismo mostrado, o programa faz um arredondamento, analisando o algarismo seguinte ao ltimo a ser mostrado. Suponha que queremos usar uma aproximao do nmero N = I, d1d 2d 3d 4 com apenas trs casas decimais. Aqui, I a parte inteira de N e os di so os dgitos aps a vrgula. Ento, o programa faz o seguinte: se d 4 < 5, ento N apresentado como N = I, d1d 2d 3; se d 4 5, ento, no lugar de d 3, usa-se d 3 + 1.

Desse modo, quando voc disse planilha que queria uma aproximao de com somente um algarismo aps a vrgula, ela vericou que a segunda casa aps a vrgula ocupada pelo nmero 4, que menor do que 5. Assim, no houve alterao na primeira casa decimal.

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo7

02/09/09 09:33

J quando foi dito ao programa que ele deveria mostrar com trs casas decimais aps a vrgula, vericou-se que o quarto algarismo aps a vrgula 5, que maior do que ou igual a 5. Ento, foi adicionado 1 ao terceiro algarismo, resultando em 3,142. O nmero irracional. Portanto, no tem uma representao nita.

Vamos ver at onde vai a capacidade do programa?

Continue apertando o boto de aumentar as casas decimais. Em algum momento, voc ter um resultado parecido com este:

Observe que aps o ltimo 9, somente zeros aparecem, como se fosse racional. O que aconteceu aqui? Acontece que computadores e calculadoras s trabalham com quantidades nitas de casas decimais. Existe um limite para o nmero de algarismos que podem ser armazenados pelas mquinas. Quando esse nmero maior do que a capacidade da mquina, uma das seguintes sadas utilizada: arredondamento ou truncamento. Nesse ltimo exemplo foi usado o truncamento, que simplesmente ignorar o restante das casas decimais. O nmero foi cortado na 14 casa decimal.

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo8

02/09/09 09:33

Atividade 2
A utilizao de arredondamento ou truncamento implica em erros. Para ilustrar esse fato, suponha uma calculadora que mostra somente 5 dgitos.

a) Como seria mostrado o resultado da multiplicao de 0,937 por 0,1272 ?


(Leve em considerao os dois mtodos de aproximao: arredondamento e truncamento).

b) Qual o erro cometido pela calculadora em cada caso?

Aula 01

Clculo Numrico

sua resposta
9
Calc_Num_A01_RF_ZBZ_020909.indd Miolo9 02/09/09 09:33

Representao de nmeros racionais em diferentes bases


Existem innitas maneiras de se representar um nmero. Estamos acostumados a representar 123 (cento e vinte e trs) dessa forma porque nosso sistema de numerao utiliza a base 10. Isso signica que o ltimo algarismo deve ser multiplicado por 10 0, o penltimo por 101, o antepenltimo por 102 e os resultados devem ser somados. Ou seja, 123 = 1 102 + 2 101 + 3 10 0. Mas, essa apenas uma forma de faz-lo.

Quem disse que temos que usar 10 como base? Poderamos usar outra? Como caria cento e vinte e trs na base 7?

Note que 123 = 2 72 + 3 71 + 4 70. Ento, se usssemos a base 7, escreveramos cento e vinte e trs como 234. comum distinguir as representaes de um nmero usando a seguinte notao: (djdj1...d 2 d1d 0) = dj j + dj1 j1 + ... + d 2 2 + d1 1 + d 0 0. Assim, temos (123)10 = (234)7.

Exerccio resolvido 1
Converta (10111)2 para a base 10 e (123)10 para a base 2.

Soluo
fcil converter para a base 10. Basta fazer a conta 1 24 + 0 23 + 1 22 + 1 21 + 1 20 = (23)10. J para fazer a converso da base 10 para a base 2, dividimos 123 por 2 e observamos que 123 = 61 2 + 1.

10

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo10

02/09/09 09:33

Dividimos 61 tambm por 2. Assim, vericamos que 123 = (30 2 + 1) 2 + 1. Agora repetimos o procedimento com 30. Da, 123 = ((15 2 + 0) 2 + 1) 2 + 1. Continuando, dessa forma, encontraremos a seguinte sequncia de igualdades: 123 = (((7 2 + 1) 2 + 0) 2 + 1) 2 + 1 = ((((3 2 + 1) 2 + 1) 2 + 0) 2 + 1) 2 + 1 = ((((1 2 + 1) 2 + 1) 2 + 1) 2 + 0) 2 + 1) 2 + 1. Ento, distribuindo as multiplicaes, podemos ver que: 123 = 1 20 + 1 21 + 0 22 + 1 23 + 1 24 + 1 25 + 1 26. Ou ainda, reordenando os coecientes, (123)10 = (1111011)2.

Atividade 3
Converta (11111)2 para a base 10 e (11)10 para a base 2.

Aula 01

Clculo Numrico

sua resposta
11
Calc_Num_A01_RF_ZBZ_020909.indd Miolo11 02/09/09 09:33

Vale lembrar que o mesmo raciocnio vlido para representaes com casas decimais. A representao (2,35)10 signica que o nmero em questo obtido como 2 10 0 + 3 10 1 + 5 10 2. A vrgula indica o lugar da potncia de expoente zero e que, a partir daquele lugar, as potncias utilizadas tero expoentes negativos. Da mesma forma, (10,01)2 = 1 21 + 0 20 + 0 21 + 1 22 = (2,25)10.

Aritmtica de ponto utuante


Um computador normalmente opera com a representao binria (base 2). Mas, alm da escolha da base, a representao de um nmero real feita no sistema denominado aritmtica de ponto utuante. Nesse sistema, um nmero representado na forma:
e + (0.d1d 2...dk) ,

onde a base utilizada e os dgitos d1 d 2 ...d k so chamados de mantissa do nmero. Funciona da seguinte maneira: se a base de representao 10 e queremos colocar o nmero 280,4 no sistema de aritmtica de ponto utuante, escrevemos 0.2804 103. Ou seja, deslocamos a vrgula at obtermos 0,2804 e multiplicamos por uma potncia de 10 cujo expoente determinado pelo deslocamento da vrgula. Como os computadores e as calculadoras geralmente trabalham com ponto no lugar da vrgula, tambm zemos essa substituio. O procedimento o mesmo com qualquer base. Tome, por exemplo, o nmero (10,01)2. Fazemos o deslocamento e multiplicamos pela potncia de 2. Ento, a representao em aritmtica de ponto utuante 0.1001 22. Cuidado, se voc for vericar essa conta! Lembrese que 0.1001 est na representao binria. Ele representa o nmero 1 21 + 0 22 + 0 23 + 1 24 = (0,5625)10. Em qualquer que seja a mquina podemos contar somente com uma capacidade nita de representao de nmeros. Por limitaes fsicas, as mquinas s operam com um determinado nmero de dgitos na mantissa. Tambm nita a quantidade de expoentes disponveis. Por exemplo, considere uma mquina que opere com base 10, com 5 dgitos na mantissa e expoentes entre 8 e 8. Os nmeros sero representados na forma 0.d 1d 2d 3d 4d 5 10e, onde cada dgito di est entre 0 e 9, com d1 = / 0 e e [ 8,8].

Qual o menor nmero positivo que pode ser representado nessa mquina?

12

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo12

02/09/09 09:33

Como devemos ter d1 = / 0, a menor possibilidade m = 0.10000 10 8 = 10 9.

E o maior?

Aqui, escolhemos os maiores valores possveis para os dgitos e para o expoente. Da, temos M = 0.99999 108 = 99999000. Seja G = { x | m x M }. Dado um nmero real x , uma das seguintes possibilidades ocorre:

1) x G
se for este o caso, h ainda duas possibilidades:

1.1) x tem uma quantidade de dgitos menor que ou igual a cinco na mantissa e, portanto,
representado exatamente nessa mquina;

1.1) x tem uma quantidade de dgitos na mantissa maior que 5. Ento, no pode ser representado
exatamente nessa mquina. Tome como exemplo o nmero 28,0476. Esse um nmero que possui 6 dgitos na mantissa. Sua representao em ponto utuante 0.280476 102. Para ser representado pela mquina, ser feito um truncamento ou um arredondamento. Dessa forma, o nmero usado pela mquina ser 0.28047 102 ou 0.28048 102.

2) |x | < m ou |x | > M
a mquina dar, teoricamente, uma mensagem de erro, pois o nmero no pode ser representado nela. Por exemplo, os nmeros 1010 ou 1010 no podem ser representados nessa mquina. Na prtica, o zero em ponto utuante , em muitos programas, geralmente representado com o menor expoente possvel naquele programa e no como o zero dos nmeros reais. Isso deriva dos problemas numricos inerentes a operaes com nmeros abaixo deste zero, em valor absoluto, ou cujos resultados, em valor absoluto, estejam abaixo deste zero. Tais programas so mais precavidos e advertem da possibilidade de riscos numricos, se determinadas operaes resultam em nmeros abaixo deste zero do programa. No caso do Scilab, com o qual trabalharemos, e onde o zero do programa seria da ordem de 10 324, ele considera todos os nmeros que surjam entre 0 e 10 324 como zero, sem maiores precaues em denunciar que aconteceram problemas nas operaes realizadas, caso tais nmeros excepcionalmente pequenos surjam l pelo meio das contas.

Aula 01

Clculo Numrico

13

Calc_Num_A01_RF_ZBZ_020909.indd Miolo13

02/09/09 09:33

Atividade 4
Complete a Tabela 1 dando as representaes dos nmeros em um sistema de aritmtica de ponto utuante de trs dgitos, base 10 e expoente entre 4 e 4.
Tabela 1 Representaes dos nmeros em um sistema de aritmtica de ponto utuante de trs dgitos, base 10 e expoente entre 4 e 4 X 1,25 10,053 238,15 2,71828... 0,000007 718235,82 Representao obtida por arredondamento Representao obtida por truncamento

Erros relativos em aritmtica de ponto utuante:


estabilidade na adio e possvel amplicao na subtrao
Observe, no Exemplo 1, como o erro relativo na subtrao de dois nmeros positivos, relativamente prximos entre si, pode car muito maior que os erros relativos no truncamento de cada um dos nmeros, enquanto que o mesmo no acontece com sua adio.

Exemplo 1
1)
Considere x = 2617/45871 e y = 2618/45872. Calcule x y e x + y usando uma mquina de calcular comum. A nossa calculadora utiliza 11 dgitos signicativos e nos deu: d = y x = 0, 00004302799;
s= y+ x = 0, 47776691255.

2)

Obtenha d = x y e s = x + y em aritmtica de ponto utuante, sempre na base 10. Porm, usando apenas 5 dgitos signicativos e truncando a partir da sexta casa.

14

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo14

02/09/09 09:33

Nesse caso, x = 0.05706 e y = 0,05708. Ao calcular x y e x + y , utilizando apenas 5 casas decimais em cada operao realizada, truncando a sexta casa, obtivemos:

d= s=

x = 0, 00004;

y+

x = 0, 47776.

3)

Avalie os erros relativos das duas contas feitas no item anterior.

Comeamos avaliando os erros absolutos cometidos at 4 casas decimais signicativas e operando sempre por truncamento, como sendo: sAbs 0,477766912 0,47776 = 0, 6912*106; dAbs 0,000043027 0,00004 = 0,3027*106.

Os correspondentes erros relativos podem ento ser estimados por: Srel SAbs y + x = 6912 10 (6)/0.47776 = 0.144 105 .

drel dAbs

x = 0, 3027 106 /0.00004 = 0.757 102.

Observao Note que, no Exemplo 1, obtivemos um erro relativo s rel 0.144*10 5, na soma s = y + x , feita com cinco dgitos, indicando um acerto em cinco casas decimais nesta conta. Melhor que isso no poderamos esperar, j que estamos truncando as contas na quinta casa decimal. J na subtrao d = y x , obtivemos d rel 0.757*10 2 , indicando um acerto de apenas duas casas decimais, o que consideravelmente pior. Isso no foi por acaso e leva o nome de erro de cancelamento. Indicamos, a seguir, por que a subtrao de dois nmeros relativos pode amplicar drasticamente os erros relativos em x e y, enquanto que a soma mais estvel, produzindo resultados da mesma ordem de grandeza que os erros absolutos em x e y. Digamos que x e y representam aproximaes de dois nmeros reais positivos x e y . Os erros absolutos dessas aproximaes seriam, ento, x = x x e y = y y . Considere ainda: s = x + y e d = x y (soma e subtrao de x e y);
s = x + y e d = x y (soma e subtrao das correspondentes aproximaes).

Os correspondentes erros relativos d rel e s rel satisfaro, ento:


|Srel | = |(S s)/s| = drel = (d d)/d = |x + y | |x| |y | |x| |y | + + = |xrel | + |yrel | x+y x+y x+y x y

x y x y = xy xy xy

Aula 01

Clculo Numrico

15

Calc_Num_A01_RF_ZBZ_020909.indd Miolo15

02/09/09 09:33

Veja que, para a soma, nossa conta acima diz que o seu erro relativo seria, em mdulo, limitado pela soma dos mdulos dos erros relativos em x e y. J para a diferena, se os x y nmeros x e y estiverem prximos, os denominadores de x y e x y indicam que x y e yrel = d rel pode ser consideravelmente maior que os erros relativos xrel = , x y como aconteceu no Exemplo 1. No Exemplo 1 e na Observao 1 j temos um indcio do preo a pagar por usarmos aritmtica de ponto utuante no lugar de aritmtica exata. Na verdade, a mais severa das limitaes ao se trabalhar com a aritmtica de ponto utuante reside na possibilidade do acmulo de erros numricos resultar em erros signicativos no resultado devolvido, ao cabo de muitas operaes aritmticas realizadas sequencialmente, mesmo que cada um dos erros seja relativamente pequeno. Inclusive, podendo distorcer completamente a soluo procurada de algum problema, conforme teremos a oportunidade de vericar em algumas das aulas seguintes, a depender de cada problema e dos algoritmos empregados. Na aula 5, discutiremos um pouco mais a questo da amplicao de erros numricos em aritmtica de ponto utuante.

Autoavaliao
1)
Responda s questes a seguir:

a) b) c) d)

Qual a diferena entre erro absoluto e erro relativo? O que arredondamento? E truncamento? Como encontrar a representao de um nmero em uma base diferente da base 10? Como se representa um nmero no sistema aritmtica de ponto utuante?

Resumo
Nesta aula, voc aprendeu a calcular erros de aproximaes. Viu que se pode obter aproximaes por arredondamento e truncamento. Aprendeu a converter representaes de nmeros e viu que as mquinas operam com aritmtica de ponto utuante.

16

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo16

02/09/09 09:33

Exerccios propostos
1) Converta os seguintes nmeros decimais para sua forma binria: a) 25; b) c)
2345; 0,5.

2) Converta os seguintes nmeros binrios para sua forma decimal: a) (10111)2; b) c)


(0,1101)2; (11,11)2.

3) Considere um sistema de aritmtica de ponto utuante de quatro dgitos e base decimal.


Dados os nmeros x = 0.937 104 e y = 0,1272 102, efetue as seguintes operaes e obtenha o erro relativo no resultado, supondo que x e y esto exatamente representados:

a) b)

x + y; xy.

4) Considere uma mquina cujo sistema de representao de nmeros denido por: = 10,
quatro dgitos na mantissa e e [5, 5]. Pede-se:

a) b) c) d)

Qual o menor e o maior nmeros em mdulo representados nesta mquina? Como ser representado o nmero 73.758 nesta mquina, se for usado arredondamento? E se for usado truncamento? Se a = 42.450 e b = 3, qual o resultado de a + b?
10

Qual o resultado da soma S = 42450 +


k=1

3 nesta mquina?

Referncias
FRANCO, Neide Bertoldi. Clculo numrico. So Paulo: Pearson Prentice Hall, 2006. PIRES, Paulo Srgio da Motta. Introduo ao Scilab: verso 3.0. Natal: Departamento de Engenharia de Computao e Automao; Universidade Federal do Rio Grande do Norte, 2004. Disponvel em: <www.dca.ufrn.br/~pmotta/sciport-3.0.pdf>. Acesso em: 30 jan. 2009. RUGGIERO, Mrcia A. Gomes; LOPES, Vera Lcia da Rocha. Clculo numrico: aspectos tericos e computacionais. So Paulo: Makron Books, 1996.

Aula 01

Clculo Numrico

17

Calc_Num_A01_RF_ZBZ_020909.indd Miolo17

02/09/09 09:33

Respostas dos exerccios propostos 1) 2) 3) 4)


a) m = 0.1000 10 5 e M = 0.9999 105; b) No arredondamento: 0.7376 102. No truncamento: 0.7375 102; c) a + b = 0.4245 105; d) S = 0.4245 105. a) (11001)2; a) (23)10 ; b) (100100101001)2; c) (0,1)2 b) (0,8125)10 ; c) (3,75)10

x + y 0.9383 104 no arredondamento e 0.9382 104 no truncamento. xy 0.1192 106 no arredondamento e 0.1191 106 no truncamento.

Anotaes

18

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo18

02/09/09 09:33

Anotaes

Aula 01

Clculo Numrico

19

Calc_Num_A01_RF_ZBZ_020909.indd Miolo19

02/09/09 09:33

Anotaes

20

Aula 01

Clculo Numrico

Calc_Num_A01_RF_ZBZ_020909.indd Miolo20

02/09/09 09:33

Clculo Numrico MATEMTICA

EMENTA

Erros. Interpolaes. Mnimos quadrados. Zeros de funes Integrao numrica. Resoluo numrica de sistemas de equaes lineares. Tratamento numrico das equaes diferenciais ordinrias.

AUTORES > Marcelo Gomes Pereira > Roberto Hugo Bielschowsky

AULAS

01 02 03 04 05 06 07 08 09 10 11 12

Aritmtica de ponto utuante e erros numricos Introduo ao Scilab Sistemas de equaes lineares SEVs do n, bases e ajustes de modelos com quadrados mnimos Autovalores e valores singulares Valores singulares e erros numricos ao resolver Ax=b Algoritmos e programao com o Scilab Parte I Algoritmos e programao com o Scilab Parte II Zeros de funes
Impresso por: Grca 02/09/09 09:33 2 Semestre de 2009

Interpolao polinomial Integrao numrica Introduo numrica s equaes diferenciais ordinrias

Calc_Num_A01_RF_ZBZ_020909.indd Contracp1

Calc_Num_A01_RF_ZBZ_020909.indd Contracp2

02/09/09 09:33

Você também pode gostar