Sie sind auf Seite 1von 10

1.

Introduo: O que o clculo numrico, sua importncia e os objetivos do curso


1.1 O que o Clculo Numrico?
O Clculo Numrico corresponde a um conjunto de ferramentas ou mtodos usados para se obter a soluo de problemas matemticos de forma aproximada. Esses mtodos se aplicam principalmente a problemas que no apresentam uma soluo exata, portanto precisam ser resolvidos numericamente. O que isso quer dizer? Vamos tomar um exemplo para entender melhor os objetivos do Clculo Numrico. Seja um circuito eltrico composto de uma fonte de tenso (uma pilha, por exemplo) e um resistor, como ilustrado na Figura 1.1. Digamos que desejamos obter a corrente que circula no circuito, dado o valor da tenso V e da resistncia R. O primeiro passo formular um modelo matemtico para o nosso sistema fsico (o circuito), e encontrar a soluo do problema representado por esse modelo.

Figura 1.1: Circuito eltrico composto de uma fonte de tenso e um resistor.

No caso do circuito da Figura 1.1, o modelo matemtico tambm bastante simples. Utilizando-se a Lei de Kirchoff (no se preocupe com essa lei caso voc no a conhea), teremos a seguinte equao para o circuito: V R i = 0 (1.1) Esse o nosso modelo matemtico para o circuito (sistema fsico). O modelo apresenta uma equao bastante simples que tem uma soluo exata. Portanto, nosso problema (encontrar a corrente eltrica do circuito) pode ser resolvido de maneira exata, cuja soluo dada por:
i= V R

(1.2)

Por exemplo, se V=10 V e R=100 , teremos que i=0,1 Como esse problema tem uma soluo exata, no preciso utilizar os mtodos do clculo numrico para resolve-lo. Porm, digamos que um outro componente eletrnico seja
Apostila de Complementos de Clculo Numrico 2

includo no circuito: um diodo semicondutor. Esse dispositivo tem uma curva caracterstica, isto , a tenso nesse componente em funo da corrente, que dada por:
v( i ) = kT i ln + 1 q Is

(1.3)

onde k e Is so constantes, q a carga do eltron e T a temperatura do dispositivo. Essa equao corresponde ao modelo matemtico do diodo (no se preocupe em entender esta equao, pois isto s um exemplo). Portanto, ao se incluir o diodo no circuito da Figura 1.1, tem-se a seguinte equao descrevendo o comportamento da corrente eltrica no circuito:
V R i kT i ln + 1 = 0 q Is

(1.4)

A incluso desse novo componente no circuito tornou nosso problema mais complicado e de difcil soluo analtica. O que isso quer dizer? Tornou-se difcil se obter uma expresso para i, principalmente quando comparado ao caso anterior, quando tnhamos simplesmente i=V/R. Como resolver esse problema ento? Como obter o valor de i? A soluo est na utilizao de mtodos numricos que sero aprendidos neste curso.

1. 2 A importncia do curso de Clculo Numrico


Ao resolver um problema matemtico numericamente, o mais comum o profissional utilizar um pacote computacional. Porm, ele ter que tomar uma srie de decises antes de resolver o problema. E para tomar essas decises, preciso ter conhecimento de mtodos numricos. O profissional ter que decidir: Pela utilizao ou no de um mtodo numrico (existem mtodos numricos para se resolver este problema?); Escolher o mtodo a ser utilizado, procurando aquele que mais adequado para o seu problema. Que vantagens cada mtodo oferece e que limitaes eles apresentam; Saber avaliar a qualidade da soluo obtida. Para isso, importante ele saber exatamente o que est sendo feito pelo computador ou calculadora, isto , como determinado mtodo aplicado.

1.3 Objetivos do Curso:


Os principais objetivos do curso so: Apresentar diversos mtodos numricos para a resoluo de diferentes problemas matemticos. Pretende-se deixar bem claro a importncia desses mtodos, mostrando: a essncia de um mtodo numrico; a diferena em relao a solues analticas; as situaes em que eles devem ser aplicados;

Apostila de Complementos de Clculo Numrico

as vantagens de se utilizar um mtodo numrico; e as limitaes na sua aplicao e confiabilidade na soluo obtida. Melhorar a familiarizao e intimidade do aluno com a matemtica, mostrando seu lado prtico e sua utilidade no dia-a-dia de um engenheiro. Rever conceitos j vistos, exercit-los e utiliz-los de maneira prtica; Apresentar ao aluno maneiras prticas de se desenvolver e utilizar mtodos numricos. Isso significa mostrar como usar esses mtodos numricos na calculadora e em um computador; Treinar o aluno a aprender outros mtodos numricos por conta prpria. No seu dia-a-dia profissional, ele pode se deparar com um problema cuja soluo depende de um mtodo numrico que no foi visto no curso. Portanto, ele dever ser capaz de encontrar a literatura pertinente, estudar o mtodo e aprender a sua utilizao de maneira conceitual e prtica (usando um aplicativo computacional) por conta prpria.

Apostila de Complementos de Clculo Numrico

2. Representao Numrica
2.1 Introduo
A fim se realizarmos de maneira prtica qualquer operao com nmeros, ns precisamos representa-los em uma determinada base numrica. O que isso significa? Vamos tomar como exemplo o nmero 2 . A fim de calcularmos, por exemplo, o valor de 2 - 1, ns precisamos escrever o nmero 2 de alguma outra forma, caso contrrio no possvel realizar essa operao. Podemos escreve-lo na base decimal, por exemplo, que a base mais usada na histria da humanidade (graas a nossa anatomia). O valor de 2 na base decimal pode ser escrito como 1,41 ou 1,4142 ou ainda 1,41421356237. Qual a diferena entre essas vrias formas de representar 2 ? A diferena a quantidade de algarismos significativos usados em cada representao. Agora podemos realizar a operao proposta: 2 -1=0.41 ou 0.4142 ou ainda 0.41421356237, conforme o nmero de algarismos significativos adotados na nossa representao. Em uma mquina digital, como uma calculadora ou um computador, os nmeros no so representados na base decimal. Eles so representados na base binria, ou seja, usam o nmero 2 como base ao invs do nmero 10. Como na base decimal existem 10 algarismos diferentes (0, 1, 2 ,3, 4, 5, 6, 7, 8, 9), na base binria existem somente 2 nmeros: 0 e 1. Portanto, a base binria usada porque essas mquinas utilizam-se de sinais eltricos, sendo o 0 correspondente a ausncia de sinal e o nmero 1 a presena do sinal eltrico.

2.2 Ponto fixo e Ponto Flutuante


A princpio, toda vez que escrevemos um nmero, deveramos mencionar a base numrica a qual estamos nos referindo. Obviamente, isso no se faz necessrio na prtica, pois estamos sempre representando os nmeros na base decimal, portanto sabemos exatamente o seu significado. Por exemplo, quando escrevemos o nmero 1532, o que realmente queremos dizer? Estamos dizendo que esse nmero representa uma quantidade equivalente a 11000 + 5100 + 310 + 2, ou, escrevendo a base de outra forma, 1103 + 5102 + 3101 + 2100. Essa a chamada representao posicional de nmeros. Na base binria, o mecanismo o mesmo, porm, ao invs de potncias de 10, utilizamos potncias de 2. Portanto, um nmero binrio como 1011 (lembre-se que na base binria s existem os algarismos 0 e 1) significa 123 + 022 + 121 + 120 que na base 10 seria 8+2+1=11.

Apostila de Complementos de Clculo Numrico

Essa idia que est por trs da representao dos nmeros em bases numricas utilizada para representar nmeros no computador. A fim de tornar a manipulao de nmeros mais eficiente, os computadores fazem a distino entre nmeros inteiros e nmeros reais. Um nmero inteiro apresenta a chamada representao de ponto fixo, onde a posio do ponto decimal est fixa e todos os dgitos so usados para representar o nmero em si, com exceo do
primeiro dgito usado para representar o sinal desse nmero. A figura 2.1 ilustra essa representao. Sinal Dgitos

Figura 2.1 - Representao de nmeros inteiros.

Para um nmero real qualquer (inteiro ou no inteiro) utilizada a representao de ponto flutuante, que dada pela expresso: (0.d1d2d3...dt) be onde: 0.d1d2d3...dt uma frao na base b, tambm chamada de mantissa, com 0 di b-1, para todo i = 1,2,3,...,t, sendo t o nmero mximo de dgitos da mantissa que determinado pelo comprimento de palavra do computador; e um expoente que varia em um intervalo dado pelos limites da mquina utilizada. Esse tipo de representao chamada de ponto flutuante pois o ponto da frao flutua conforme o nmero a ser representado e sua posio expressa pelo expoente e. A figura 2.1 ilustra essa representao.

Sinal

posio do ponto = expoente e

dgitos = mantissa

Figura 2.2 - Representao de nmeros reais.

Alguns exemplos da representao de ponto flutuante pode ser visto na tabela a seguir:

Nmero na base decimal 1532 15.32 0.00255 10 10

Representao em ponto flutuante 0.1532104 0.153210


2

mantissa 0.1532 0.1532 0.255 0.10 0.1010

base 10 10 10 10 2

Expoente 4 2 -2 1 4

0.25510-2 0.10102 0.101024

2.3 Aplicao Linguagem de Programao C


Na linguagem C possvel especificar a representao que deve ser usada para os nmeros a serem armazenados em uma dada varivel. Para nmeros inteiros (representao de ponto fixo) existem duas palavras chaves para declarar uma varivel: int e long. A diferena entre essas duas representaes o nmero de dgitos a ser usado. No caso do int, utiliza-se 15 dgitos

Apostila de Complementos de Clculo Numrico

binrios e mais um dgito para o sinal, ou seja, 16 bits que igual a 2 bytes. Portanto, uma varivel declarada com int pode armazenar nmeros de 32768 (=-215) a +32767 (=215-1). J a palavra chave long corresponde a representao de ponto fixo com 32 bits (31 dgitos binrios para o nmero mais um dgito para o sinal), ou seja, 4 bytes. Neste caso, uma varivel declarada como long pode armazenar nmeros de 2.147.483.648 (= -231) a 2.147.483.647 (=231-1). No caso da representao de ponto flutuante, tambm existem duas palavras: float e double. A palavra float corresponde a representao com base binria (b=2), nmero mximo de dgitos igual a 24 (t=24) e expoente entre 126 e 127. Portanto, uma varivel declarada como float pode armazenar nmeros reais entre ~10-38 e ~1038. J a palavra chave double apresenta um nmero mximo de dgitos igual a 53 (t=53) e expoente entre 1022 e 1023, ou seja, varveis declaradas como double podem armazenar nmeros entre ~10-307 a ~10307.

Apostila de Complementos de Clculo Numrico

3. Erros Numricos
3.1 Introduo
Vamos supor o seguinte problema: como calcular o valor de

2 ? Provavelmente, a primeira resposta que vem a mente

de qualquer pessoa que nasceu no sculo XX ser: utilizando uma calculadora ou um computador. Indiscutivelmente, essa a resposta mais sensata e prtica. Porm, um profissional que utilizar o resultado fornecido pela calculadora para projetar, construir ou manter pontes, edifcios, mquinas, sistemas, dispositivos eletrnicos, etc., no pode aceitar o valor obtido antes de fazer alguns questionamentos (pelo menos uma vez na sua vida profissional). Quando calculamos, por exemplo, o valor de

2 em uma calculadora ou em um computador, o que realmente estamos

fazendo? Em outras palavras, o que a calculadora fez para obter o resultado? Para um engenheiro, ainda mais importante a pergunta: qual a confiabilidade do resultado que obtemos? Essa pergunta faz sentido pois

2 um nmero irracional, isto , no existe uma forma de representa-lo com um 2 , j que

nmero finito de algarismos. Portanto, o nmero apresentado pela calculadora uma aproximao do valor real de ela no pode mostrar infinitos algarismos. E quo prximo do valor real est o resultado mostrado?

Podemos criar algumas definies a fim de facilitar as discusses e trocas de informao sobre esse problema. Vamos definir a diferena entre o valor real da grandeza que queremos calcular e o valor aproximado que efetivamente calculamos como sendo o erro, ou seja:

Erro = valor real valor aproximado

(3.1)

Quanto menor for esse erro, mais preciso ser o resultado da operao. Essa definio corresponde ao erro absoluto de um clculo. Porm, se estivermos trabalhando com nmeros muito grandes, o erro pode ser grande em termos absolutos, mas o resultado ainda ser preciso. E o caso inverso tambm pode ocorrer: um erro absoluto pequeno, mas um resultado impreciso. Por exemplo, digamos que o resultado de uma operao nos fornea o valor 2.123.542,7 enquanto o valor real que deveramos obter 2.123.544,5. O erro absoluto neste caso 1,8. Comparada com o valor real, essa diferena (o erro) bem pequena, portanto, podemos considerar o resultado preciso. Em um outro caso, digamos que o resultado da operao seja 0,234 e o resultado esperado era 0,128. Desta vez o erro ser igual a 0,106 , porm o resultado bastante impreciso. A fim de evitar esse tipo de ambigidade, podemos criar uma nova definio. Podemos definir o erro relativo, que corresponde ao quociente entre o erro absoluto e o valor real da grandeza a ser calculada, ou seja:

erro relativo =

valor _ real valor _ aproximado valor _ real

(3.2)

O erro relativo uma forma mais interessante de se avaliar a preciso de um clculo efetuado. No exemplo acima, teremos um erro relativo de 0,0000008 ou 0,00008% no primeiro caso e um erro relativo igual a 0,83 ou 83% no segundo caso.

Apostila de Complementos de Clculo Numrico

3.2 Tipos de Erros


O erro cometido ao se calcular o valor de

2 , por exemplo, apenas um tipo de erro que pode surgir ao se resolver

um problema real. Outros tipos de erros tambm podem aparecer devido a outros tipos de problemas ou limitaes. A soluo matemtica de um determinado problema envolve diversas etapas, como discutido na introduo desta apostila. A soluo do problema se inicia com a criao de um modelo matemtico do sistema em questo. Esse modelo sempre apresentar aproximaes e limitaes. Alm disso, na grande maioria das vezes, dados experimentais sero utilizados para se obter a soluo. Como toda medida experimental apresenta uma incerteza, a soluo do problema ser influenciada pelas mesmas. Portanto, logo de incio, existem diversos fatores que introduzem incertezas na soluo numrica do problema. Esse tipo de erro chamado de erro inicial. O problema discutido na introduo deste captulo para o clculo de

2 , que se refere a inevitvel limitao na

representao de nmeros irracionais (por exemplo), introduz erros no resultado. Esse tipo de erro chamado de erro de arredondamento. Vamos considerar um outro tipo de problema prtico que pode surgir ao realizarmos determinadas operaes. Digamos que precisamos calcular o valor de ex. Mais uma vez, iremos utilizar uma mquina digital (calculadora ou computador). Como esse equipamento ir realizar essa operao? Sabemos que a exponencial uma funo que pode ser representada por uma srie infinita dada por:

ex = 1+ x +

x2 x3 xn + +L+ +L 2! 3! n!

(3.3)

e na prtica impossvel calcular seu valor exato. Portanto, mais uma vez, teremos que fazer uma aproximao, que levar a um erro no resultado final de ex. Neste caso, faremos um truncamento dessa srie, e o erro gerado no valor de ex chamado de erro de truncamento.

3.3 Propagao e Condicionamento de Erros Numricos


Vamos supor que queremos calcular o valor de

2 - e3. Como vimos anteriormente, ao calcularmos o valor de


3

2,

teremos que realizar um arredondamento, que leva ao um resultado aproximado de

2 , ou seja, existe um erro de 2 e e3 apresentar um erro que 2 e e3 se

arredondamento associado ao resultado. Para calcularmos o valor de e teremos que fazer um truncamento, que tambm ir gerar um erro no resultado obtido. Portanto, o resultado da operao de subtrao entre proveniente dos erros nos valores de propagam para o resultado de

2 e e3 separadamente. Em outras palavras, os erros nos valores de

2 - e3. Podemos concluir ento que, ao se resolver um problema numericamente, a cada etapa

e a cada operao realizada, devem surgir diferentes tipos de erros gerados das mais variadas maneiras, e estes erros se propagam e determinam o erro no resultado final obtido.

Apostila de Complementos de Clculo Numrico

A propagao de erros muito importante pois, alm de determinar o erro final de uma operao numrica, ela tambm determina a sensibilidade de um determinado problema ou mtodo numrico. Se uma pequena variao nos dados de entrada de um problema levar a uma grande diferena no resultado final, considera-se que essa operao mal-condicionada, ou seja, existe uma grande propagao de erros nessa operao. Por outro lado, se uma pequena variao nos dados de entrada leva a apenas uma pequena diferena no resultado final, ento essa operao bem-condicionada.

3.4 Erros na Aritmtica de Ponto Flutuante


Ns vimos nas sees anteriores que ao manipularmos os nmeros de maneira prtica, estaremos sempre trabalhando com erros, devido a diversos fatores. Vamos agora examinar os erros mais comuns que aparecem quando um computador manipula os nmeros. O primeiro tipo de erro que est presente na forma como computadores trabalham com nmeros corresponde aos erros de arredondamento e truncamento. Como citado anteriormente, esses erros esto presentes pois os computadores precisam representar os nmeros com uma quantidade finita de algarismos. Vamos supor, para simplificao, um computador com uma representao de ponto flutuante na base decimal (b=10) e uma mantissa de 4 algarismos (t=4). A fim de representarmos em ponto flutuante nesse computador, por exemplo, o nmero 734,68, teramos que trunca-lo para 0,7346103 ou arredonda-lo para 0,7347103. Portanto, no truncamento, estaramos cometendo um erro de 0,810-1 e no arredondamento, um erro de 0,210-1. Podemos generalizar esse exemplo e dizer que, em uma representao de ponto flutuante na base b e mantissa de t algarismos, os erros de truncamento sero dados por:

erro < b e t
onde o nmero em questo foi representado na forma x=fx be. E os erros de arredondamento sero dados por:

(3.4)

erro <

1 e t b 2

(3.5)

Portanto, para uma representao numrica com t=24 ou t=53 (como no caso da maioria dos computadores) esse erro muito pequeno. Apesar de pequeno, importante lembrar que ele se propagar nas operaes aritmticas realizadas pelo computador. Vamos tomar como exemplo a soma dos nmeros 6563 (= 0,6563104) e 3,375 (= 0,3375101) no nosso computador fictcio de mantissa com 4 algarismos. A soma desses dois nmeros corresponde a 6566,375. Como nosso computador pode representar com apenas 4 algarismos, o resultado dessa operao ser 0,6566104 = 6566. Ou seja, apesar de partirmos de dois nmeros exatos, o resultado da soma no ser exata. Mais uma vez, para um computador real, esse erro ser pequeno, porm, se um nmero muito grande de operaes for realizado e se existir a necessidade de se obter um resultado bastante preciso, ser necessrio se levar em considerao esse tipo de erro para avaliar o resultado obtido. Existe mais um tipo de erro que aparece quando computadores manipulam nmeros. Esse erro se refere converso de nmeros de uma base para a outra. O tipo de converso mais comum da base decimal (usada por humanos) para a base binria (usada por computadores) e vice-versa. Um exemplo bastante peculiar o nmero 0,1. Ao convertermos esse nmero da base

Apostila de Complementos de Clculo Numrico

10

decimal para a base binria (existem diversos algoritmos para se realizar essa converso, mas no vamos entrar nesse detalhe aqui), obtemos como resposta:

(0,1)10 = (0,0001100110011...)2 onde representamos com um subscrito a base em que esse nmero est escrito.

(3.6)

Portanto, notamos que, ao se converter o nmero 0,1 da base decimal para a base binria, obtemos um nmero com infinitos algarismos! Como esse nmero no pode ser representado pelo computador, ele ser truncado, introduzindo um erro na sua representao. Uma forma interessante de constatar esse problema escrevendo um pequeno programa que calcule o valor
1000

de

0,1 . Voc ver que esse nmero no igual a 100!


i =1

Apostila de Complementos de Clculo Numrico

11

Das könnte Ihnen auch gefallen