Download - Apostila de Cálculo Numérico Pronta
-
2
UNIVERSIDADE FEDERAL DA BAHIA UFBA INSTITUTO DE CINCIAS AMBIENTAIS E DESENVOLVIMENTO
SUSTENTVEL ICADS
APOSTILA DE CLCULO NUMRICO
BARREIRAS BA MARO/2013
-
3
DIANDRA CHISA TANAKA
APOSTILA DE CLCULO NUMRICO
Orientador: Prof. D.Sc. Kennedy Morais Fernandes
BARREIRAS BA MARO/2013
Trabalho apresentado a Universidade Federal da Bahia UFBA, como requisito para complementao da nota do quarto semestre na matria de Clculo Numrico.
-
4
SUMRIO
Introduo 7
1. Representao dos Nmeros, Aritmtica de Ponto Flutuante e Erros em Mquinas Digitais 8
1.1 Classificando os Erros ......................................................................................... 8
1.2 Representao dos Nmeros e Erros em Mquinas Digitais ............................... 8
1.2.1 Representao de Inteiros ........................................................................... 9
1.2.2 Representao de Reais .............................................................................. 9
1.3 Aritmtica de Ponto Flutuante ............................................................................. 9
2. Clculo de Razes Reais 11 2.1 Mtodo de Newton ............................................................................................ 11
2.1.1 Algoritmo .................................................................................................. 13
2.1.2 Exemplo .................................................................................................... 14
2.1.3 Resultados Numricos .............................................................................. 14
2.2 Mtodo da Bisseo ........................................................................................... 15
2.2.1 Algoritmo .................................................................................................. 16
2.2.2 Exemplo .................................................................................................... 17
2.2.3 Resultados Numricos .............................................................................. 18
2.3 Mtodo da Secante ............................................................................................. 20
2.3.1 Algoritmo .................................................................................................. 21
2.3.2 Exemplo .................................................................................................... 21
2.3.3 Resultados Numricos .............................................................................. 22
2.4 Mtodo Pgaso .................................................................................................. 23
2.4.1 Algoritmo .................................................................................................. 23
2.4.2 Exemplo .................................................................................................... 24
2.4.3 Resultados Numricos .............................................................................. 25
3. Resoluo de Sistemas Lineares 26 3.1 Mtodo Direto: Eliminao Gaussiana .............................................................. 26
3.1.1 Algoritmo .................................................................................................. 27
-
5
3.1.2 Exemplo .................................................................................................... 28
3.1.3 Resultados Numricos .............................................................................. 28
3.2 Mtodo Iterativo: Gauss Seidel ......................................................................... 28
3.2.1 Algoritmo .................................................................................................. 30
3.2.2 Exemplo .................................................................................................... 31
3.2.3 Resultados Numricos .............................................................................. 32
3.3 Comparao: Eliminao Gaussiana e Gauss Seidel ......................................... 32
3.3.1 Exemplo .................................................................................................... 32
3.3.2 Resultados Numricos .............................................................................. 33
4. Interpolao Polinomial 35 4.1 Polinmio de Lagrange ...................................................................................... 36
4.1.1 Algoritmo .................................................................................................. 36
4.1.2 Exemplo .................................................................................................... 37
4.1.3 Resultados Numricos .............................................................................. 38
4.2 Splines ............................................................................................................... 39
4.2.1 Algoritmo .................................................................................................. 40
4.2.2 Exemplo .................................................................................................... 42
4.2.3 Resultados Numricos .............................................................................. 43
5. Ajuste de Curvas - Mtodo dos Mnimos Quadrados 44 5.1 Descrio do Mtodo ....................................................................................... 44
5.1.1 Ajuste Polinomial ..................................................................................... 45
5.1.2 Algoritmo .................................................................................................. 47
5.1.3 Exemplo .................................................................................................... 48
5.1.4 Resultados Numricos .............................................................................. 49
6. Integrao Numrica 51 6.1 Regra do Trapzio ............................................................................................. 51
6.1.1 Algoritmo .................................................................................................. 53
6.1.2 Exemplo .................................................................................................... 54
6.1.3 Resultados Numricos .............................................................................. 54
6.2 Mtodo de Simpson ........................................................................................... 54
6.2.1 Algoritmo .................................................................................................. 56
-
6
6.2.2 Exemplo .................................................................................................... 57
6.2.3 Resultados Numricos .............................................................................. 57
7. Resoluo de Equaes Diferenciais Ordinrias 58 7.1 Mtodo de Euler ................................................................................................ 58
7.1.1 Algoritmo .................................................................................................. 59
7.1.2 Exemplo .................................................................................................... 60
7.1.3 Resultados Numricos .............................................................................. 62
7.2 Mtodos de Runge Kutta ................................................................................... 65
7.2.1 Algoritmo .................................................................................................. 66
7.2.2 Exemplo .................................................................................................... 67
7.2.3 Resultados Numricos .............................................................................. 67
8. Concluso 70
9. Referncias Bibliogrficas 71
10. Anexos 72
-
7
INTRODUO
Os mtodos numricos fazem parte da histria da humanidade. Desde o sculo
passado, os matemticos procuram desenvolver frmulas gerais que, por meio de
iteraes, possam calcular numericamente equaes, sistemas, integrais, entre outras.
Poder solucionar problemas, que seriam inviveis (por demandar um trabalho
muito exaustivo) ou impossveis (por no existir soluo algbrica) sem o clculo
numrico, muito vantajoso e permite que os avanos nas mais variadas reas da
cincia aconteam com velocidade e eficincia.
Essa apostila resume os principais e mais conhecidos mtodos utilizados e vistos
durante o curso de Clculo Numrico. Em cada Captulo, procuramos descrever o
mtodo da melhor forma possvel, apresentando sua formulao matemtica, algoritmo,
exemplo e resultados numricos.
No Captulo 2, fizemos uma breve explanao relacionada a erros e
representao dos nmeros. No Captulo seguinte, apresentamos quatro mtodos que
podem ser utilizados para o clculo de razes reais.
O Captulo 4 traz dois mtodos muito conhecidos para a resoluo de sistemas
lineares. O primeiro direto e chama-se Eliminao Gaussiana, enquanto o segundo
fornece o resultado aps realizar iteraes e conhecido por Gauss-Seidel. A
interpolao polinomial, muito importante quando se realiza ensaios em laboratrios,
por exemplo, explicada no quinto Captulo. Enquanto o ajuste de curvas apresentado
no Captulo seguinte.
Os dois ltimos Captulos tratam de integrao numrica e mtodos para
resoluo de equaes diferenciais, respectivamente.
Anexados ao presente trabalho, encontram-se os cdigos que foram utilizados na
execuo de cada problema apresentado.
-
8
CAPTULO 1
Representao dos Nmeros, Aritmtica de Ponto Flutuante e
Erros em Mquinas Digitais
Quando iniciamos um estudo e obtemos equaes que modelam uma situao,
almejamos resolv-las analiticamente. Todavia, nem sempre isso possvel. nesse
momento que a Programao oferece inmeras possibilidades de resolues atravs de
variados mtodos numricos. Associado a cada mtodo desses, existem os erros,
assunto deste Captulo.
1.1 Classificando os Erros
Podemos classificar os erros da seguinte maneira:
Erro Inicial: equivalente a soma das incertezas provenientes da
medio dos parmetros, das condies iniciais, entre outros. Em
algumas situaes, so to significativos que invalidam completamente
as solues numricas obtidas.
Erro de Truncamento: A mquina no nos permite trabalhar com
nmeros de infinitos dgitos. Por esse motivo, no truncamento, alguns
algarismos que excedem a preciso da mquina, so desprezados, no
sendo levados em considerao.
Erro de Arredondamento: Nesse processo, tais algarismos que excedem a
preciso da mquina so considerados.
1.2 Representao dos Nmeros e Erros em Mquinas Digitais
Nos computadores, os clculos so efetuados com base nos pulsos eltricos.
Assim, s dois estados podem ocorrer: presena e ausncia de corrente eltrica. Assim,
conveniente a representao binria de nmeros, uma vez que na base 2 s dgitos 0 e
1 so considerados. Tambm, por convenincia, os nmeros inteiros so representados
de forma diferente daquela dos nmeros reais. (CUNHA, 2000).
-
9
1.2.1 Representao de Inteiros
Um nmero inteiro representado pelos coeficientes de sua expanso binria.
Dessa forma, consideremos a expanso binria do nmero inteiro N:
= 2 + 2 + + 2 + 2
onde = 1 e , , so 0 ou 1. A representao binria de N ser:
= ( ).
Como a representao binria exige muitos dgitos e sua passagem para base
octal relativamente simples, alguns computadores usam a representao octal.
(CUNHA, 2000).
1.2.2 Representao de Reais
Se o nmero real tem parte inteira , sua parte fracionria = pode ser escrita como uma soma de fraes binrias:
= 2 + 2 + 2 + .
Assim, o nmero real ser representado juntando as partes inteira e fracionria,
ou seja,
= ( ).(CUNHA, 2000).
1.3 Aritmtica de Ponto Flutuante
Um computador ou calculadora representa um nmero real no sistema
denominado aritmtica de ponto flutuante. Neste sistema, o nmero r ser representado
na forma: () = (. )
-
10
onde:
a base em que a mquina opera;
t o nmero de dgitos na mantissa; e o expoente no intervalo [1,u]. Em qualquer mquina, apenas um subconjunto dos nmeros reais representado
exatamente, e, portanto, a representao de um nmero real ser realizada atravs do
truncamento ou arredondamento, ambos supracitados na seo 1.1.(RUGGIERO e
LOPES, 1996).
Supondo = 10; = 3 [5,5], considere o conjunto dos nmeros reais e o seguinte conjunto:
= { | || }
Vamos analisar os casos que podem ocorrer:
Caso 1 -
Suponhamos = 235.89 = 0.23589 10. Esse nmero possui cinco dgitos na mantissa. Esto representados nessa mquina os nmeros: 0.235 10, caso haja o truncamento ou 0.236 10 se o valor for arredondado. (RUGGIERO e LOPES, 1996).
Caso 2 - || < A mquina acusa o que se chama de underflow.
Caso 3 - || > A mquina acusa overflow.
Um fato interessante, que muitas linguagens permitem um recurso denominado
preciso dupla. A partir dele, a mantissa admite o dobro do nmero de dgitos, em
contrapartida, o tempo de execuo aumenta, assim como o consumo da memria.
-
11
CAPTULO 2
Clculo de Razes Reais
Para resolver muitos problemas relacionados s reas de Cincia e Engenharia,
necessrio encontrar as razes das equaes (zeros das funes), ou seja, valores de
que satisfaam () = 0. Equaes de primeiro grau podem ser resolvidas, simplesmente, isolando a
varivel , enquanto as de segundo grau so calculadas atravs da conhecida frmula de
bhskara =
. Contudo, de acordo com o teorema de Abel-Ruffini, no
possvel solucionar analiticamente equaes de grau igual ou superior a cinco.
Para estas situaes, so desenvolvidos mtodos numricos capazes de calcular
aproximadamente essas razes. Eles se baseiam em valores iniciais informados pelo
usurio e so iterativos, isto , repetem o procedimento at que o erro seja menor que o
desejado.
Nesse Captulo, apresentamos alguns deles: Newton, Bisseo, Secante e
Pgaso.
2.1 Mtodo de Newton
Isaac Newton (1642-1727) publicou seu mtodo para encontrar razes de
equaes no lineares em 1687. Esse mtodo tambm conhecido como Newton-
Raphson, devido sistematizao apresentada por Joseph Raphson em 1690. (CUNHA,
2000).
Observe a Figura 2.1.
-
12
Figura 2.1: Interpretao grfica do mtodo de Newton. (FONTE: CUNHA, 2000)
Seja a nica raiz de () = 0 no intervalo dado e uma aproximao dessa raiz. Alm disso, as derivadas () e () devem existir, ser contnuas e com sinal constante no intervalo. Geometricamente, o mtodo de Newton consiste em aproximar
um arco de curva por uma reta tangente traada a partir de um ponto da curva.
Pela Figura 2.1 temos que:
tan = ()
= () = ()()
Na repetio, calculamos a partir de :
= ()()
Genericamente, o procedimento segue a Equao 2.1.
= ()(), k=0, 1, 2, ... Os critrios de parada podem ser um nmero mximo de iteraes ou um erro
pr-determinado atingido.
(2.1)
-
13
2.1.1. Algoritmo
A formulao ilustrada anteriormente pode ser executada pela mquina atravs
da implementao dos algoritmos da Figura 2.2.
As variveis reais so: o valor inicial x0 e erro, ambos informados pelo usurio.
x e deltaX fazem parte do processo proposto pela Equao 2.1.
Como parmetros inteiros, temos o nmero mximo de iteraes nmax,
fornecido pelo usurio e n que consiste em um contador de iteraes realizadas.
Os Algoritmos 2 e 3 so auxiliares para o clculo do valor da funo num
determinado ponto, assim como sua derivada.
Figura 2.2: Algoritmos para Mtodo de Newton
Algoritmo 1 Mtodo Newton real x0, x, erro, deltaX int nmax, n entre com x0, erro, nmax xx0 n0 escreva n, x, df(x), f(x) repita deltaX - f(x)/df(x) x x + deltaX n n+1 escreva n, x, df(x), f(x), deltaX se (abs(deltaX)erro e abs(f(x))erro) ou df(x)=0 ou n nmax ento interrompa fim se fim repita imprima x FIM Algoritmo 2 funo f (x) retorne (funo desejada) fim Algoritmo 3 funo df (x, erro) retorne (f(x+erro)-f(x))/erro fim
-
14
2.1.2 Exemplo
Vamos calcular uma raiz aproximada da funo () = / atravs do Mtodo de Newton. Para isso, plotamos na Figura 2.3 o grfico de ().
Figura 2.3: Grfico da funo () = /
ntido que h duas razes e prximas de zero, tal que < 0 e > 0.
2.1.3 Resultados Numricos
Inserindo como parmetros de entrada x0= 0, erro= 10, nmax= 100 obtemos os dados organizados na Tabela 2.1.
-
15
Iterao x
0 0,000000
1 -2,097152
2 -1,153990
3 -0,846364
4 -0,816356
5 -0,815564
6 -0,815554
Tabela 2.1: Resultados obtidos para cada iterao do Mtodo de Newton
Portanto, a raiz aproximada = 0,815554. Observando o grfico da Figura 2.3, conclumos que a aproximao de , alm disso, o valor obtido faz sentido
pois est prximo de zero e < 0.
2.2 Mtodo da Bisseo
um mtodo relativamente simples. Basicamente, consiste em se aproximar da
raiz por valores esquerda e direita . Para melhor compreenso, podemos
observar a Figura 2.4.
Figura 2.4: Representao da curva e obteno da raiz atravs do mtodo da Bisseo.
(FONTE: SHIGUE, 2009)
-
16
Os intervalos entre a raiz e tais valores vo sendo diminudos gradativamente at
que o intervalo seja to ou mais estreito quanto o erro solicitado. A reduo desse
intervalo ocorre obedecendo a Equao 2.2.
=
onde o valor mdio.
Obviamente, a raiz da equao pertence a algum dos intervalos [;] ou
[;]. Temos, ento, que se o sinal de() for igual ao sinal de () (SITUAO 1), est no intervalo [;]. Analogamente, caso o sinal de () seja o mesmo de () (SITUAO 2), [;].
Para a reduo do intervalo, obedeceremos as seguintes condies:
SITUAO 1: ;
SITUAO 2: .
Dessa forma, iremos reduzindo o intervalo at que este seja menor que o erro ()
desejado (Equao 2.3) ou que o limite de iteraes seja extrapolado.
| - | <
O algoritmo desse mtodo apresentado na prxima seo.
2.2.1 Algoritmo
As duas situaes citadas anteriormente podem facilmente ser obedecidas pela
mquina atravs da implementao do algoritmo da Figura 2.5.
As variveis reais xE, xD, e xM correspondem aos parmetros , e ,
respectivamente, citados anteriormente. importante ressaltar que xE e xD so
informados pelo usurio inicialmente, assim como o erro desejado.
Da mesma forma como ocorreu no algoritmo da seo 2.1.1, faremos uso de
uma funo, representada no Algortimo 2, que retorne o valor da funo naquele ponto.
(2.2)
(2.3)
-
17
Figura 2.5: Algoritmo para Mtodo da Bisseo
2.2.2 Exemplo
Neste momento, vamos por em execuo este mtodo a fim de encontrar uma
raiz aproximada para a funo () = 0,05 0,4 + 3() , com = 1 10. A Figura 2.6 ilustra o grfico para a funo (). A curva intercepta vrias vezes o eixo x. Vamos calcular atravs do mtodo da Bisseo a raiz pertencente ao
intervalo [-5,0 ; -1,0]. Isso significa que vamos inserir como parmetros de entrada
= 5,0 e = 1,0.
Algoritmo 1 Mtodo da Bisseo real xE, xD, xM, erro int nmax, n entre com xE, xD, erro, nmax xM(xE+xD)/2 n0 escreva n, xE, xD, xM, abs(xD-xE) faa enquanto (abs(xD-xE)>erro e n0.0) xE=xM seno xD=xM xM=(xE+xD)/2 nn+1 escreva n, xE, xD, xM, abs(xD-xE) fim faa FIM Algoritmo 2 funo f (x) retorne (funo desejada) fim
-
18
Figura 2.6: Grfico da funo () = 0,05 0,4 + 3()
2.1.3 Resultados Numricos
Inserindo os parmetros de entrada e executando o programa, confeccionamos a
Tabela 2.2.
-
19
n erro
0 -5,000000 -1,000000 -3,000000 4,000000
1 -3,000000 -1,000000 -2,000000 2,000000
2 -3,000000 -2,000000 -2,500000 1,000000
3 -3,000000 -2,500000 -2,750000 0,500000
4 -2,750000 -2,500000 -2,625000 0,250000
5 -2,750000 -2,625000 -2,687500 0,125000
6 -2,687500 -2,625000 -2,656250 0,062500
7 -2,656250 -2,625000 -2,640625 0,031250
8 -2,656250 -2,640625 -2,648438 0,015625
9 -2,656250 -2,648438 -2,652344 0,007813
10 -2,652344 -2,648438 -2,650391 0,003906
11 -2,652344 -2,650391 -2,651367 0,001953
12 -2,652344 -2,651367 -2,651855 0,000977
13 -2,651855 -2,651367 -2,651611 0,000488
14 -2,651611 -2,651367 -2,651489 0,000244
15 -2,651611 -2,651489 -2,651550 0,000122
16 -2,651550 -2,651489 -2,651520 0,000061
17 -2,651520 -2,651489 -2,651505 0,000031
18 -2,651505 -2,651489 -2,651497 0,000015
19 -2,651505 -2,651497 -2,651501 0,000008
Tabela 2.2: Resultados obtidos para cada iterao do Mtodo da Bisseo
A raiz aproximada obtida = 2,651501. Observando novamente o grfico da Figura 2.6, o resultado tem sentido geomtrico.
Foram relativamente numerosas as iteraes necessrias para que o valor
convergisse, ou seja, o mtodo da Bisseo , geralmente, lento.
Em muitos casos utilizado para reduzir o intervalo antes de usar outro mtodo
de convergncia mais veloz (CAMPOS FILHO, 2001).
-
20
2.3 Mtodo da Secante
Em vez da reta tangente, como utilizamos no Mtodo de Newton, podemos
utilizar retas secantes como aproximaes lineares locais da funo.
No Mtodo da Secante, tomamos a reta que passa pelos pontos (,()) e (,()) como uma aproximao linear da curva = (), como indica a Figura 2.6. (CUNHA, 2000).
Figura 2.6: Reta secante como aproximao linear da curva.
(FONTE: CUNHA, 2000)
Podemos utilizar a semelhana de tringulos entre ABC e AED e explicitar .
Temos, por conseguinte:
= () ()() ()
Generalizando:
= () ()() () , = 0, 1, 2,
Podemos ainda realizar algumas operaes algbricas e obter:
= ()()
(2.4)
-
21
A diferena entre esse mtodo e o de Newton consiste na aproximao da
derivada, que, neste caso, se faz pela secante.
2.3.1 Algoritmo
Fazendo uma analogia entre a Equao 2.4 e as variveis do algoritmo da Figura
2.7, representamos por xE, por xD e por x. Esses dois ltimos so
parmetros fornecidos pelo usurio, assim como o erro e o valor mximo de iteraes
nmax.
Novamente, necessitamos da funo exposta no Algoritmo 2 para calcular o
valor da funo num ponto x.
Figura 2.7: Algoritmo para Mtodo da Secante
2.3.2 Exemplo
Dada a funo () = 3 , vamos calcular uma raiz aproximada que fornea um erro menor que = 1 10. A Figura 2.8 apresenta o grfico de (). Podemos notar que, nesse trecho, a curva intercepta o eixo da abscissa apenas uma vez.
Algoritmo 1 Mtodo da Secante real xE, xD, x, erro int nmax, n entre com xE, xD, erro, nmax n0 x xE-(((xD-xE)*f(xE))/(f(xD)-f(xE))) escreva n, xE, xD, x, abs(xD-x) faa enquanto (abs(xD-x)>erro e n
-
22
Figura 2.8: Grfico da funo () = 3
Informamos como parmetros iniciais, alm do erro, xE=1 e xD=3.
2.3.3 Resultados Numricos
A Tabela 2.3 apresenta os resultados numricos obtidos.
n xE xD x erro
0 1,000000 3,000000 0,739570 2,260430
1 1,000000 0,739570 0,739109 0,000460
2 1,000000 0,739109 0,739086 0,000023
3 1,000000 0,739086 0,739085 0,000001
Tabela 2.3: Resultados numricos para cada interao do Mtodo da Secante
Com poucas iteraes, o mtodo nos fornece que a raiz aproximada =0,739085. interessante ressaltar que os parmetros iniciais fornecidos no formavam um intervalo no qual a raiz estava contida.
-
23
2.4 Mtodo Pgaso
A origem do nome Pgaso devida a utilizao deste mtodo em um
computador Pgaso, sendo seu autor desconhecido.(BARROSO, et al. 1987).
Assim como o Mtodo da Secante, visto na seo 2.3, o presente mtodo
tambm far uso da Equao 2.4.
Os pontos [,()] e [ ,()] pelos quais ser traada a reta para obter so escolhidos de tal modo que () e () tenham sempre sinais opostos, garantindo assim que [,]. Alm disso, o valor de () reduzido por um fator igual a
()()() de modo a evitar a reteno de um ponto.
Deste modo, a reta pode ser traada por um ponto no pertencente curva de (). (CAMPOS FILHO, 2001).
2.4.1 Algoritmo
No Algoritmo 1, representado na Figura 2.9, as variveis reais a e b so os
limites inferior e superior, respectivamente, do intervalo no qual se encontra a raiz, o
erro corresponde a preciso desejada pelo usurio. fb e fa so os valores da funo nos
pontos b e a e x e fx esto variando at atingir a raiz. nmax corresponde a quantidade de
iteraes mxima desejada, n e i so contadores e, finalmente, deltaX faz parte da
frmula do mtodo Pgaso.
O Algoritmo 2 apenas retorna o valor da funo em determinado ponto. Tal
funo varia de acordo com o problema.
O critrio de parada, alm do nmero de iteraes mxima, a comparao entre
o erro desejado e dois valores: o valor da funo no ponto x e deltaX. Assim, f(x)
gradativamente se aproxima de zero (ou seja, do eixo da abscissa) at tornar-se menor
que o erro desejado, encerrando, assim, o programa.
-
24
Figura 2.9: Algoritmo do Mtodo Pgaso
2.4.2 Exemplo
Vamos encontrar numericamente uma das razes da funo polinomial de grau 3
() tal que () = 2 20 + 30. A Figura 2.10 apresenta o grfico da (). Vamos analisar seu comportamento para que possamos determinar quais sero os limites a e b.
Algoritmo 1 Mtodo da Secante real a, b, erro, x, deltaX, fa, fb, fx int nmax, n, i entre com a, b, erro, nmax faf(a) fbf(b) fxfb n0 x b deltaXfx/(fb-fa)*(b-a) escreva n, a, fa, b, fb, x, fx, deltaX para (i0; i
-
25
Figura 2.10: Grfico da funo () = 2 20 + 30
No trecho do grfico ilustrado pela Figura 2.10 possvel visualizar duas razes.
Vamos encontrar a raiz pertencente ao intervalo [-5,0] com um erro = 10 e nmero mximo de 100 iteraes.
2.4.3 Resultados Numricos
Aps a execuo do programa, confeccionamos a Tabela 2.4 que apresenta os
resultados obtidos.
n x f(x) deltaX
0 -4,237288 2,757689 -0,237288
1 -4,289412 0,069000 -0,052124
2 -4.290746 -0,000878 -0,001334
3 -4,290730 -0,000004 0,000017
4 -4,290730 -0,000004 0,000000
Tabela 2.4: Resultados Numricos para cada Iterao do Mtodo Pgaso
Logo, o valor aproximado para a raiz x=-4,290730. A convergncia foi veloz,
pois no houve mais erro considervel na quarta iterao.
-
26
CAPTULO 3
Resoluo de Sistemas Lineares
A necessidade de resolver sistemas lineares aparece numa grande quantidade de
problemas cientficos. Existem estimativas que apontam que, a cada quatro problemas
de simulao em matemtica, trs convertem-se em soluo de sistema de equaes.
(CUNHA, 2000).
Dominar mtodos para a resoluo desses sistemas fundamental para o estudo
de equaes diferenciais parciais, otimizao, regresso, entre outros. Podemos
classific-los em dois tipos:
Mtodos Diretos: conduzem soluo exata, com pequenos erros de
arredondamento e um nmero finito de operaes aritmticas;
Mtodos Iterativos: so construdos atravs de sequncias de
aproximaes.
Nesse Captulo vamos apresentar independentemente duas formas de resoluo
de sistemas lineares: Eliminao Gaussiana (Direto) e Gauss-Seidel (Iterativo). Por fim,
vamos resolver com os dois mtodos um mesmo exemplo nvel de comparao.
3.1 Mtodo Direto: Eliminao Gaussiana Seja o sistema de equaes representado por [A][x]=[b], onde [x] o vetor soluo e:
[A] =
[b] =
Esse mtodo consiste basicamente em transformar a matriz [A] num sistema
triangular equivalente atravs da aplicao repetida de dois tipos de operaes:
-
27
Permutao entre duas linhas;
Subtrao de uma linha por outra multiplicada por uma constante.
(SHIGUE, 2009).
Podemos resolver o sistema por recorrncia atravs da Equao 3.1 e
calcular o determinante da matriz de coeficientes [A] com a Equao 3.2.
3.1.1 Algoritmo
A matriz A e o vetor b correspondem a matriz e o vetor supracitados. i, j e k so
apenas contadores que tem a funo de auxiliar nos clculos.
Figura 3.1: Algoritmo da Eliminao Gaussiana
(3.1)
(3.2)
Algoritmo 1 (CUNHA, 2000) Eliminao Gaussiana entre com Matriz A e vetor b para k=1,n-1,1 faa encontre iktalque 0 se = 0 para todo ik,ento A no inversvel troque a linha k com a linha l para i=k+1,n,1 faa m -m para j=k+1,n,1 faa -m FIM
-
28
3.1.2 Exemplo
Vamos calcular a soluo do sistema representado pela Equao 3.3 abaixo pelo
mtodo Eliminao Gaussiana:
10 3 22 8 11 1 5 = 57204
3.1.3 Resultados Numricos
Denotando a matriz quadrada de ordem 3 supracitada de [A] e o vetor do lado
direito da equao de [B], aps a triangularizao realizada pelo programa, obtemos:
[A] = 10,0000000 3,0000000 2,00000000 7,4000000 0,60000000 0 5,2567567
[B] = 57,00000008,600000010,5135135
Fazendo a retrossubstituio, encontramos o vetor soluo [X]:
[X] = 5,00000001,00000002,0000000
Verificar a veracidade da resposta obtida simples. Basta substituir o vetor [X]
na Equo 3.3.
3.2 Mtodo Iterativo: Gauss Seidel
Gauss publicou seu mtodo Iterativo para resolver sistemas de equaes
provenientes do Mtodo dos Mnimos Quadrados (Captulo 5) em 1874. (CUNHA,
2000).
Seja o sistema de equaes:
(3.3)
-
29
tal que os coeficientes da diagonal principal sejam no nulos. Vamos isolar cada
, = 1, 2, ,
Repare que para calcular , por exemplo, precisamos de , = 2, 3, 4, , .
Por isso importante atribuir inicialmente valores para cada . Uma das vantagens dos
mtodos iterativos que a convergncia independe desses valores inicialmente
atribudos. (CAMPOS FILHO, 2001)
Aps esse clculo de , partimos para que receber um novo valor diferente
daquela estimativa inicial. O mesmo ocorrer para todos os , at o n-simo. Isso finda
a primeira iterao.
Na segunda iterao, voltamos a e o recalculamos. O mesmo ocorre para todo
e isso ocorre sucessivamente, at que algum dos critrios de parada seja satisfeito. Os
critrios so:
Excedeu o nmero de iteraes mximo;
As diferenas entre dois valores sucessivos de todos os so menores
que um valor pr-determinado :
FONTE: SHIGUE, 2009
-
30
condio suficiente para a convergncia do mtodo iterativo Gauss-Seidel que
a matriz dos coeficientes A do sistema = tenha diagonal estritamente dominante. (CAMPOS FILHO, 2001). Isto :
|| > , = 1, 2, 3, /
3.2.1 Algoritmo
A Figura 2.11 apresenta o Algoritmo do Mtodo Gauss Seidel. Nele, atribumos
como valores iniciais para a soluo = . Os parmetros reais A(100,100), B(100) e sol(100) correspondem matriz e os
vetores do sistema linear. v(100) auxilia na comparao entre a iterao atual e a
anterior, erro a preciso da soluo solicitada pelo programa e r, soma, t, NormaNum,
NormaDen e NormaRel so variveis que auxiliam na verificao das condies de
parada.
Nos parmetros inteiros, nmax o nmero mximo de iteraes, iter conta
quantas iteraes j foram realizadas e n a ordem do sistema. i e j so apenas
contadores.
-
31
Figura 3.2: Algoritmo do Mtodo Gauss Seidel
3.2.2 Exemplo
Vamos submeter o Mtodo Gauss Seidel a resolver a Equao 3.4.
Mtodo Gauss Seidel inteiro n,i,j, nmax, iter real A(100,100), B(100), sol(100), v(100), erro, r, soma, t, NormaNum, NormaDen, NormaRel entre com A(100,100), B(100), erro, nmax, n para (i1; i
-
32
5 2 0 11 8 3 20 1 6 11 1 2 9
=
61050
Os dados de entrada foram = 10 e = 100.
3.2.3 Resultados Numricos
Os resultados alcanados com a execuo desse mtodo encontram-se
organizados na Tabela 3.1.
Iterao Norma Relativa
1 0,70000005 0,84999996 -0,97500002 0,23333333 0,51282048
2 0,90666676 0,71270829 -0,99100697 0,19867283 0,20854214
3 0,95465130 0,70937276 -0,98467433 0,19156335 4,87313829 10 4 0,95456362 0,71353585 -0,98418325 0,19192652 4,22999123 10 5 0,95297098 0,71382827 -0,98429251 0,19216026 1,61805167 10 6 0,95290077 0,71373761 -0,98431635 0,19216329 9,21031824 10 7 0,95293766 0,71372336 -0,98431450 0,19215719 3,74832198 10 8 0,95294213 0,71372497 -0,98431373 0,19215670 4,54158908 10
Tabela 3.1: Resultados Numricos do Mtodo Gauss Seidel
Portanto, temos que a soluo convergiu. O vetor soluo
0,952942130,713724970,984313730,19215670 .
3.3 Comparao: Eliminao Gaussiana e Gauss Seidel
Nesta seo vamos resolver numericamente uma equao de sistema linear
atravs dos dois mtodos estudados neste Captulo: Eliminao Gaussiana e Gauss
Seidel. Posteriormente, analisaremos os resultados obtidos.
3.3.1 Exemplo
O sistema a ser resolvido o representado pela Equao 3.5.
(3.4)
-
33
5 1 13 4 13 3 6 = 560
Os dados de entrada inseridos para o mtodo Gauss Seidel so = 10 e = 100.
3.3.2 Resultados Numricos
Expomos inicialmente os dados obtidos pelo mtodo direto em estudo, seguido
do mtodo iterativo.
Eliminao Gaussiana
Aps o processo de triangularizao, a matriz [A] est configurada da seguinte
maneira:
[A] = 5,0000000000 1,0000000000 1,00000000000 3,399999999 0,40000000000 0 5,1176470588
J o vetor [B] se torna:
[B] = 5,0000000003,000000000
5,1176470588
Fazendo a retrossubstituio, encontramos o vetor soluo [X]:
[X] = 1,00000001,00000001,0000000
Gauss Seidel
Os resultados obtidos atravs do mtodo iterativo esto na Tabela 3.2
(3.5)
-
34
Iterao Norma Relativa
1 0.69999999 0.97500002 -0.83749998 0.8589743448
2 0.97249997 0.98000002 -0.97624999 0.27806121
3 0.99924999 0.99462497 -0.99693751 2.67701056 10 4 1.0004625 0.99888748 -0.99967504 4.26053628 10 5 1.0001575 0.99980062 -0.99997902 9.12999385 10 6 1.0000356 0.99996805 -1.0000019 1.67423481 10 7 1.0000068 0.99999535 -1.0000011 2.88484516 10 8 1.0000012 0.99999940 -1.0000002 5.60282979 10
Tabela 3.2: Resultados Numricos do Mtodo Gauss Seidel
Atravs desse exemplo, fica claro que o mtodo direto fornece resultados mais
seguros, enquanto o mtodo iterativo menos confivel, visto que construdo de
forma iterativa, com as solues anteriores. No obstante, este fato no torna o mtodo
de Gauss Seidel invlido, pois o erro estipulado foi nitidamente respeitado.
-
35
CAPTULO 4
Interpolao Polinomial
Muitas vezes, os profissionais das reas de Qumica, Engenharias, Biologia,
Estatstica e diversas outras, realizam experimentos e constroem tabelas com os
resultados obtidos. Comumente, ocorre a necessidade de se obter um valor
intermedirio entre os seus dados, ou seja, que no consta na tabela. Nessas situaes,
utiliza-se a interpolao polinomial.
A aproximao de funes por polinmios uma das ideias mais antigas da
anlise numrica, e ainda uma das mais usadas. Isso ocorre em decorrncia dos
polinmios possurem derivadas e integrais que resultam em novas funes tambm
polinomiais, alm de suas razes que podem ser encontradas facilmente (FRANCO,
2006).
Alm de encontrar valores intermedirios em tabelas, o conceito da interpolao
tambm de suma importncia em outros pontos da programao, como, por exemplo,
a integrao numrica.
Apresentamos neste Captulo dois mtodos empregados para a interpolao
polinomial: Lagrange e Splines cbicos naturais.
4.1 Polinmio de Lagrange
Dados + 1 pontos(,), (,),..., (, ), tais que = () e (,). Deve-se obter um polinmio () de grau menor ou igual a n e possuindo nos pontos o mesmo valor da funo (), como ilustra a Figura 4.1.
-
36
Figura 4.1: Polinmio () passando pelos pontos fornecidos
Atravs de uma deduo matemtica que envolve combinao linear de
polinmios, temos que a frmula do polinmio interpolador de Lagrange :
() = /
4.1.1 Algoritmo
Desenvolver um algoritmo que obedea a Equao 4.1 no um trabalho difcil.
O apresentamos na Figura 4.2.
O parmetro inteiro n, representa a quantidade de pontos conhecidos, enquanto i e
j so apenas contadores.
J os vetores reais x e y, correspondem aos nmeros dados como entrada e os
valores da funo nestes pontos, respectivamente. importante lembrar, que
aconselhvel alocar memria para estes vetores de tamanho n. A varivel xvalor o
valor a ser interpolado. p o parmetro de sada, corresponde ao valor da funo no
ponto xvalor e, finalmente, c e d so auxiliares no clculo de p.
(4.1)
-
37
Figura 4.2: Algoritmo do mtodo de Lagrange
4.1.2 Exemplo
Este exemplo muito comum na rea de Estatstica.
Os pases costumam realizar o levantamento populacional periodicamente,
atravs de fundaes (no Brasil, por exemplo, o rgo responsvel por isso o IBGE).
Elas organizam os dados e podem, assim, estimar a populao em um determinado ano
que no houve o levantamento populacional.
O Censo da populao dos Estados Unidos entre os anos de 1930 e 1980 fornece
os seguintes dados pontuais (ou degenerados) organizados na Tabela 4.1:
Ano Populao(x10)
1930 123203
1940 131669
1950 150697
1960 179323
1970 203212
1980 226505
Tabela 4.1: Pontos fornecidos pelo Censo
Mtodo Lagrange inteiro n, i, j real *y, *x, xvalor, p, c, d parmetros de entrada: n, *y, *x, xvalor aloca memria para y e x p=0 para i=1, n, 1 faa c=1.0 d=1.0 para j=1, n, 1 faa se ji ento c=c*(xvalor-x(j)) d=d*(x(i)-x(j))
fim se fim para p=p+y(i)*(c/d) fim para
-
38
Plotamos os pontos da Tabela 4.1, apenas para facilitar a visualizao do
crescimento populacional. O grfico est representado na Figura 4.3.
Figura 4.3: Grfico dos pontos fornecidos pelo Censo americano
Nota-se que os pontos apresentam um comportamento crescente, porm, no
seguem nenhuma funo especfica.
Deseja-se conhecer a populao nos anos de 1932, 1965, 1947, 1959 e 1976.
4.1.3 Resultados Numricos
Fornecendo os dados da Tabela 4.1 para o cdigo implementado, obtemos os
resultados organizados na Tabela 4.2 para o mtodo de Lagrange, onde o vetor x
representa os anos interpolados.
(anos) Lagrange
1932 125267,47
1947 143395,11
1959 176477,01
1965 192407,05
1975 215271,80
Tabela 4.2: Resultados numricos estimando a populao americana
-
39
Cientes de que a interpolao fornece apenas uma aproximao da populao em
determinado ano, no podemos confiar completamente nos resultados obtidos.Vale
lembrar tambm que no possvel validar os dados da Tabela 4.2, pois o Censo
demogrfico americano realizado apenas a cada 10 anos e no se sabe de que forma o
crescimento populacional se comporta nesse intervalo.
4.2 Splines
O termo spline, em ingls, significa longas tiras de madeira. Elas eram usadas, h
muito tempo atrs, para interpolar, de modo suave, pontos das estruturas de navios e
avies. (CAMPOS FILHO, 2001).
Sejam n+1 pontos (,), i= 0, 1, 2, ..., n, com < < < . A inteno calcular n polinmios interpoladores cbicos que passem por dois pontos sucessivos,
portanto, cada polinmio utilizado no intervalo [ ,]. So da forma:
() = ( ) + ( ) + ( ) + , i=0, 1, ..., n-1
E satisfazem as condies:
() = , = 0,1,2, , 1 e () = () = (), = 0,1,2, , 2 () = (), = 0,1,2, , 2 "() = "(), = 0,1,2, , 2
Sabemos que = , com k=1. Temos os coeficientes de ():
= [() ()]/6 = ()/2 = [
+ ()()
]
=
(4.2)
-
40
A fim de simplificar o processo, denotamos ()=. Atravs das condies supracitadas, obtemos uma equao Ax=b.
onde:
= (,, ,)T
No spline natural, temos mais uma condio:
= = 0
Por conseguinte, encontramos os valores contidos no vetor x e os substitumos nos
coeficientes de ().
4.2.1 Algoritmo
Este mtodo mais complexo do que o de Lagrange. Toda a deduo matemtica
apresentada est no cdigo da Figura 4.4
(4.3)
(4.4)
(4.5)
-
41
Dentro dos parmetros inteiros, temos a quantidade de dados fornecidos n, dois
contadores auxiliares i e j e o intervalo s no qual se encontra o valor a ser interpolado e
a varivel real que denotamos como: valor.
Nos reais, o vetor h corresponde aos intervalos entre os valores de x fornecidos,
y(i) o valor da funo no ponto x(i), g o vetor soluo obtido atravs do mtodo
Gauss Seidel, A a matriz da Equao 4.4 e B o vetor da Equao 4.5. a, b, c e d so
os coeficientes da Equao 4.2 e f o valor da funo no ponto valor
Figura 4.4: Algoritmo do mtodo Splines cbicos naturais
Mtodo Splines Cbicos Naturais inteiro n, i, j, s real *h, *x, *y, *g, **A, *B, a, b, c, d, valor, f parmetros de entrada: n, valor alocar memria para todos os ponteiros n=n-1 para i=1,n,1 h(i)=x(i)-x(i-1) fim para faa i=0,n,1 B(i)=0.0 faa j=0,n,1 A(i,j)=0.0 fim faa fim faa faa i=1,n-1,1 A(i,i)=2*(h(i)+h(i+1)) A(i,i-1)=h(i) A(i,i+1)=h(i+1) B(i)=6*((y(i+1)-y(i))/h(i+1)-(y(i)-y(i-1))/h(i)) fim faa chama funo GAUSS_SEIDEL faa i=0,n-1,1 se (valor>x(i) e valor
-
42
4.2.2 Exemplo
Essa aplicao pertence rea da Fsica. Obteve-se os dados atravs de um
experimento sobre propagao da onda sonora e deseja-se conhecer, a partir desses,
outros valores.
A velocidade do som na gua aproximadamente quatro vezes maior que no ar. A
Tabela 4.3 ilustra como essa velocidade se comporta quando a temperatura varia.
Temperatura (oC) Velocidade (m/s)
86,0 1552
93,3 1548
98,9 1544
104,4 1538
110,0 1532
Tabela 4.3: Velocidade do som na gua obtida experimentalmente com a variao da
temperatura
Plotamos os dados da Tabela 4.3 para observar como se d a distribuio desses
pontos. O grfico est representado na Figura 4.5.
Figura 4.5: Grfico dos pontos fornecidos pela Tabela 4.3
-
43
Observamos que, conforme a temperatura aumenta, a velocidade do som na gua
decresce. Isso ocorre, pois, o aumento da temperatura decresce a densidade do sistema,
ou seja, reduz a coeso entre as molculas, dificultando a propagao do som.
Deseja-se obter a velocidade do som na gua nas temperaturas: 89oC, 95,6 oC,
100 oC e 107,9 oC.
4.2.4 Resultados Numricos
Aps compilar os programas do mtodo de Splines, obtivemos os dados
organizados na Tabela 4.4. x representa as temperaturas interpoladas.
oC Velocidade por
Splines (m/s)
95,6 1546,5773
89,0 1550,4039
100,0 1542,9645
107,9 1534,1970
Tabela 4.4: Resultados numricos para as temperaturas interpoladas
Diferente do exemplo utilizado na resoluo com o mtodo Lagrange, nesse, os
dados obtidos podem ser testados de forma emprica, visto que no h uma frmula
matemtica que possa descrev-lo.
Voltamos a afirmar que esses resultados so provenientes de ajustes, portanto,
existe um erro associado.
-
44
CAPTULO 5
Ajuste de Curvas Mtodo dos Mnimos Quadrados
Nas mais variadas reas da Cincia, como Engenharia, Estatstica e Fsica, os
pesquisadores frequentemente realizam experimentos e obtm dados empricos. Com
base nesses dados, eles propem modelos tericos (equaes) que melhor se ajustam, ou
seja, aqueles em que possuem uma menor discrepncia entre o real e a formulao
matemtica.
A importncia da obteno desta equao de ajuste consiste no fato de que se
torna possvel prever como, provavelmente, uma varivel se comportar quando
submetida a alguma situao j trabalhada experimentalmente. Por exemplo, uma
empresa pode estimar o lucro de determinado ano com base na lucratividade dos anos
antecedentes ou um engenheiro pode dimensionar uma barra de ao embasado nas
tenses aplicadas empiricamente.
Obviamente, necessrio ser cauteloso e coerente com os resultados obtidos,
visto que, quando se trata de experimentos, devem-se levar em considerao as
limitaes, tanto dos aparelhos utilizados, quanto do indivduo que os manuseia
(BARROSO, et al. 1987).
As equaes das curvas obtidas atravs do mtodo dos mnimos quadrados podem
ser: retas, polinmios, hiprboles, exponenciais, potenciais, entre outras. Neste
Captulo, ajustamos os dados atravs de uma parbola.
5.1 Descrio do Mtodo
A inteno do ajuste de curvas minimizar o somatrio do desvio quadrtico S:
= ( )
Obtemos o mnimo da Equao 5.1 fazendo = 0. Essa operao resulta num sistema constitudo de equaes, chamadas equaes normais e, a partir delas, temos os
coeficientes da curva de ajuste (SHIGUE, 2009).
(5.1)
-
45
5.1.1 Ajuste Polinomial
Seja y um polinmio:
= + + + +
Substituindo a Equao 5.2 em 5.1, temos:
= ( 0 1 22 )
Para encontrar as equaes normais, vamos derivar parcialmente a Equao 5.3
com relao aos parmetros , , , ,.
= 2. ( 0 1 22 ) = 0
= 2 . ( 0 1 22 ) = 0
= 2. ( 0 1 22 ) = 0
...
= 2 . ( 0 1 22 ) = 0
Assim, temos as equaes normais mencionadas anteriormente:
(5.2)
(5.3)
-
46
Podemos rearranj-las numa forma matricial:
onde:
(5.4)
-
47
Ajuste Parablico
A parbola apenas um caso particular do ajuste polinomial supracitado
submetido condio m=2. Por conseguinte, nosso sistema de equaes normais :
5.1.2 Algoritmo
Vamos implementar um algoritmo capaz de preencher a matriz [A] e o vetor [b]
da Equao 5.5. A soluo [x] pode ser obtida com algum mtodo de resoluo de
sistema linear, como Gauss-Seidel ou Eliminao Gaussiana vistos no Captulo 3.
No Algoritmo as variveis reais A, b e sol, representam a matriz A, o vetor b e o
vetor soluo x, respectivamente, das Equaes 5.5. J os ponteiros x e y correspondem
aos valores fornecidos pelo prprio problema.
Os parmetros inteiros i, j e k, so contadores auxiliares e m a quantidade de
dados que os ponteiros x e y armazenaro.
A funo eliminao gaussiana recebe como parmetros a matriz A e o vetor B e
retorna o vetor soluo sol.
(5.5)
-
48
Figura 5.1: Algoritmo do Mtodo dos Mnimos Quadrados
5.1.3 Exemplo
Vamos aplicar o algoritmo visto na Figura 5.1 para encontrar os coeficientes de
uma parbola que melhor se ajuste aos dados da Tabela 5.1.
x 1 2 3 4 5 6
y 10 5.49 0.89 -0.14 -1.07 0.84
Tabela 5.1: Conjunto de pontos x e y
Para analisar como a curva se comporta, plotamos os pontos da Tabela 5.1 no
grfico da Figura 5.2:
Mtodo dos Mnimos Quadrados real A(3,3), b(3), sol(3), *y, *x inteiro i, j, m, k leia m Alocar memria para x e y Entrar com x e y faa i= 0, 2, 1 faa j= 0, 2, 1 A(i, j) 0.0 B( i ) 0.0 faa k=1, m, 1 A( i, j ) A( i, j ) +x( k )**(i+j) b( i )b( i )+y( k )*x( k )**i fim faa fim faa fim faa CHAMA FUNO ELIMINAO GAUSSIANA faa i= 0,1,1 imprima sol( i ) fim faa FIM
-
49
Figura 5.2: Grfico dos pontos da Tabela 5.2
Ao fornecer os dados x e y para o programa de ajuste de curvas implementado,
obtivemos o vetor soluo: [17,114573 ; -7,7468090 ; 0,83522493]. O que indica que a
parbola que melhor se ajusta aos pontos a equao 5.6:
() = 0,83522493 7,7468090 + 17,114573
5.1.4 Resultados Numricos
Plotamos, pois, a curva da Equao 5.6 e os dados da Tabela 5.1 simultaneamente
na Figura 5.3.
(5.6)
-
50
Figura 5.3: Comparao entre a curva ajustada e os pontos fornecidos
Verificamos que o resultado foi muito satisfatrio, pois a curva se ajustou da
melhor forma possvel aos pontos, de modo a minimizar o erro.
A Tabela 5.2 apresenta o valor da funo no ponto x, fazendo uma comparao
entre os dados fornecidos e o resultado da parbola ajustada.
x 1 2 3 4 5 6
y 10 5,49 0,89 -0,14 -1,07 0,84
g(x) 10,202989 4,961855 1,391170 -0,509064 -0,738849 0,701816
|| 0,202989 0,528145 0,501170 0,369064 0,331151 0,138184
Tabela 5.2: Valores fornecidos e obtidos e a diferena entre eles em mdulo
A diferena entre os valores obtidos e os fornecidos se encontra, em todos os
casos, na primeira casa decimal. Vale lembrar, que o ajuste atravs dos mnimos
quadrados no visa encontrar uma funo que contenha os pontos dados, mas, ajustar
uma curva da melhor forma possvel, minimizando erros.
-
51
CAPTULO 6
Integrao Numrica
Sabemos do Clculo Diferencial e Integral que se () uma funo contnua em [a, b], ento esta funo tem uma primitiva neste intervalo, ou seja, () tal que () = (). Assim, () = () (), no entanto, pode no ser fcil expressar esta funo primitiva por meio de combinaes finitas de funes
elementares. (RUGGIERO e LOPES, 1996).
Nesse caso ou na situao de no haver primitiva, podemos recorrer a alguns
mtodos numricos que nos forneam boas aproximaes.
A ideia bsica da integrao numrica reside na aproximao da funo
integrando por um polinmio. A escolha desse polinmio e dos pontos que sero usados
na sua determinao vai definir os diversos mtodos de integrao. Uma vez
estabelecida a aproximao polinomial conveniente, sua integrao fcil. (CUNHA,
2000).
Os mtodos de integrao numrica geralmente seguem frmulas como a
expressa na Equao 6.1.
() ()
onde representa o peso da integrao e so os pontos de integrao.
6.1 Regra do Trapzio
Na Regra do Trapzio o polinmio que liga os pontos(,()) e (, ()), vistos na Figura 6.1, de primeiro grau, ou seja, a conhecida funo afim. A rea do
trapzio representado dada pela Equao 6.2.
= [()()]()
(6.1)
(6.2)
-
52
Figura 6.1: Aproximao da integral pela rea de um trapzio
A Figura 6.2 demonstra um segundo caso. Quando a integral aproximada por n
trapzios.
Figura 6.2: Aproximao da integral pela rea de n trapzios
A rea de cada trapzio dada pela Equao 6.3.
=
Temos, ento, que:
(6.3)
-
53
()
= 2[ +
] = (()2 + ()
+ ()2 )
6.1.1 Algoritmo
O algoritmo que envolve o modelo matemtico supracitado est na Figura 6.3
Entre as variveis reais, temos um vetor x que recebe o valor da funo nos
pontos desejados para, posteriormente, realizar o somatrio denotado por soma. I o
valor da integral, h a altura do trapzio e d uma varivel auxiliar.
Entre os parmetros inteiros, a e b so, respectivamente, os limites inferior e
superior de integrao, n a quantidade de pontos e i apenas um contador.
Figura 6.3: Algoritmo da Regra dos Trapzios
Algoritmo 1 Regra dos Trapzios real x(50), soma, I, h, d int a, b, n, i entre com a, b, n h(b-a)/n 0 d a faa x(i)=f(d) i+1 d d+h enquanto(db) soma0 faa i=1,n-1,1 somasoma+x(i) fim faa I0,5*h*(2*soma+x(0)+x(n)) escreva I FIM Algoritmo 2 funo f (x) retorne (funo desejada) fim
-
54
6.1.2 Exemplo
Vamos integrar as funes () e (). (CAMPOS FILHO, 2001).
() =
()
() = ()2 + 4
Para () entraremos com n=4 e para (), n=5.
6.1.3 Resultados Numricos
Os resultados obtidos para () e () encontram-se na Tabela 6.1.
Funo Resultado
() 18,030964 () 0,564431
Tabela 6.1: Integrao numrica de () e ()
importante ressaltar que, quanto maior o valor de n, mais prximo o resultado
obtido estar do valor real. Isso acontece porque h e n variam de maneira inversamente
proporcional e h a altura dos trapzios. Quanto menor h, mais os trapzios agrupados
se aproximam da curva desejada.
6.2 Mtodo de Simpson
Diferente da Regra dos Trapzios, que utilizava como polinmio interpolante
uma funo de primeiro grau, no Mtodo de Simpson, a curva uma funo quadrtica.
Sejam trs pontos (, ), (,) e (, ). Vamos interpolar entre eles um polinmio de Lagrange de segundo grau.
-
55
Para melhor compreenso, realizamos uma mudana de notaes, como
demonstra a Figura 6.4.
Figura 6.4: Integrao numrica atravs da Regra de Simpson
A integral de () :
Considerando:
=
e =
() se torna:
Vamos agora dividir o intervalo [, ] em n intervalos. Isto :
-
56
Depois de algumas operaes algbricas, temos que () :
6.2.1 Algoritmo
O algoritmo do Mtodo de Simpson est na Figura 6.5.
Os parmetros so exatamente os mesmos utilizados na Regra dos Trapzios.
Figura 6.5: Algoritmo do Mtodo de Simpson
Algoritmo 1 Mtodo de Simpson real x(50), soma, I, h, d int a, b, n, i entre com a, b, n h(b-a)/n 0 d a faa x(i)=f(d) i+1 d d+h enquanto(db) soma0 faa i=1,n-1,1 se ((i2)0)ento somasoma+2*x(i)+x(i+1) fim se fim faa I(1 3)*h*(2*soma+x(0)-x(n)) escreva I FIM Algoritmo 2 funo f (x) retorne (funo desejada) fim
-
57
6.2.2 Exemplo
Vamos integrar as funes () e (). (CAMPOS FILHO, 2001).
() = (4 + 3 + + 1)
() = 1
Para () entraremos com n=6 e para (), n=10.
6.2.3 Resultados Numricos
Os resultados obtidos para () e () encontram-se na Tabela 6.1.
Funo Resultado
() 112,000000 () 0,693150
Tabela 6.2: Integrao numrica de () e ()
-
58
CAPTULO 7
Resolues de Equaes Diferenciais Ordinrias
Equaes diferenciais devem possuir como parmetros funes representadas
por incgnitas e, no mnimo, uma derivada dessas funes. Elas se destacam em reas
como mecnica dos fluidos, fluxo de calor, vibraes, economia, entre outras.
(RUGGIERO e LOPES, 1996).
Se possuir apenas uma varivel independente, classificada como uma equao
diferencial ordinria (E.D.O), caso contrrio, uma equao diferencial parcial (E.D.P).
(E.D.O) (E.D.P)
Os mtodos analticos so restritos apenas a algumas formas especiais de funo,
visto que nem toda EDO tem soluo analtica. Os mtodos numricos no possuem tal
limitao, contudo, a soluo numrica obtida como uma tabela de valores da funo
em vrios valores da varivel independente, em vez de uma relao funcional como na
soluo analtica. Deste modo, praticamente qualquer EDO pode ser resolvida
numericamente. No entanto, se as condies iniciais forem alteradas, toda a tabela deve
ser recalculada. (CAMPOS FILHO, 2001)
A utilizao de computadores nessa rea de suma importncia no sentido de
calcular solues aproximadas atravs de mtodos numricos e posteriormente gerar
grficos da funo, facilitando a compreenso do problema.
Neste Captulo vamos conhecer e implementar o Mtodo de Euler e os demais
Mtodos Runge-Kutta.
7.1 Mtodo de Euler
Seja a equao de primeira ordem com condio inicial:
-
59
() = (,) () =
Consideremos a malha definida pelo passo h. Podemos usar a frmula de
diferenas finitas avanadas para discretizar a derivada de () no ponto . Temos, ento:
= (, )
Isolando :
= + ( ,), = 1,2,
A Equao 7.3 define o Mtodo de Euler.
Vejamos uma aplicao a seguir.
7.1.1 Algoritmo
A Figura 7.1 apresenta o Algoritmo para o Mtodo de Euler. O usurio deve
entrar com as condies iniciais Qzero e tzero, o tempo final tfim e o passo h. n
corresponde ao nmero de pontos que sero calculados e i apenas um contador.
O Algoritmo 2 retorna apenas o valor da funo num determinado x.
______________________________________________________________________ Uma malha um conjunto finito de pontos. A malha de passo h associada a o conjunto de
pontos = , = 1,2,
(7.2)
(7.3)
(7.1)
-
60
Figura 7.1: Algoritmo do Mtodo de Euler
7.1.2 Exemplo
Um tanque contm, inicialmente, a soluo de 45 kg de sal dissolvidos em
5000L de gua. Ele recebe r gales por minuto, onde cada galo comporta 100g de sal
dissolvidos em 100 L de gua. O tanque possui um orifcio por onde sai a soluo a r
gales por minuto. A Figura 7.2 esquematiza a situao.
Deseja-se conhecer a funo que representa a quantidade de sal no tanque e
como ela se comporta.
Figura 7.2: Esquematizao do Exemplo
Fonte: BOYCE, W. E.; DIPRIMA, R. C.. 2006. p. 29
Algoritmo 1 Mtodo de Euler real Q, Qzero, t, tzero, h, tfim inteiro n, i entre com Qzero, tzero, tfim, h (tfim-tzero)/h 0 t tzero Q Qzero faa i=1,n,1 QQ+h*f(x) tt+h escreva i, t, Q FIM Algoritmo 2 funo f (x) retorne (funo desejada) fim
-
61
Parmetros:
t0 = tempo inicial (min);
t = tempo (min);
Q = quantidade de sal dissolvido no tanque (kg);
Q0 = quantidade inicial de sal dissolvido no tanque (kg);
r = gales;
A variao de soluto com relao ao tempo no tanque :
Logo, a equao diferencial que representa esse problema :
Condio inicial:
Onde:
t0 = 0 min
Q0 = 45 kg
Com a equao diferencial (7.1.2) e a condio inicial (7.1.3) est formulado o
P.V.I. em questo.
Resoluo Analtica
Neste momento, vamos resolver essa EDO de forma analtica de modo que,
quando obtivermos a resoluo numrica, possamos ter condies de valid-la.
Organizando a Equao 7.1.2, temos:
(7.1.1)
(7.1.2)
(7.1.3)
(7.1.4)
-
62
O fator integrante da Equao 7.1.4 :
(t) = e (r/50)dt = e r.t/50
Multiplica-se a Equao 7.1.5) em ambos os lados de 7.1.4 e, posteriormente,
calculamos a integral dos termos. Assim:
Aplicando-se as condies (7.1.3) para calcular o valor da constante C e tornar a
soluo particular:
Resoluo Numrica
A frmula geral do Mtodo de Euler, para esse exemplo, pode ser calculada
substituindo a Equao 7.1.2 em 7.3 e adaptando os parmetros:
7.1.3 Resultados Numricos
Com os dados coletados atravs do procedimento descrito, foi possvel
plotar o grfico com diferentes valores de h.
(7.1.5)
(7.1.6)
(7.1.7)
(7.1.8)
-
63
Figura 7.3: Grfico composto pelas curvas formadas por diferentes valores de h e a
soluo exata
Abaixo, um grfico comparativo que apresenta vrios valores de Q0, atravs do
qual possvel perceber que as curvas plotadas entre 30 < Q < 50 tem comportamento
semelhante ao do grfico anterior.
Figura 7.4: Grfico representativo de uma situao semelhante a do exemplo
Fonte: BOYCE, W. E.; DIPRIMA, R. C.. 2006. p. 30.
Analisando a Figura 7.3, infere-se que, quando o passo menor, a curva se
aproxima da soluo exata, em outras palavras, a aproximao converge para a soluo,
-
64
diminuindo o erro associado ao mtodo de Euler. A seguir, as Tabelas 7.1 7.4 que
expressam em valores essa situao.
Tempo Quantidade de Sal
Aproximada
Quantidade de Sal
Exata
Erro absoluto
10,0 21,000000 45,000000 24,000000
30,0 7,560000 17,047768 9,487767
50,0 5,409600 8,628718 3,219118
70,0 5,065536 6,092949 1,027413
90,0 5,010486 5,329190 0,318704
Tabela 7.1: Dados referentes a h=10.0 e r=3
Tempo Quantidade de Sal
Aproximada
Quantidade de Sal
Exata
Erro absoluto
10,0 24,600000 34,632729 10,032728
30,0 9,705961 13,925206 4,219245
50,0 6,129901 7,688221 1,558319
70,0 5,271289 5,809677 0,538387
90,0 5,065136 5,243870 0,178733
Tabela 7.2: Dados referentes a h=5.0 e r=3
Tempo Quantidade de Sal
Aproximada
Quantidade de Sal
Exata
Erro absoluto
10,0 26,544605 28,309931 1,765326
30,0 11,250223 12,020816 0,770593
50,0 6,813228 7,114629 0,301402
70,0 5,526029 5,636914 0,110886
90,0 5,152604 5,191835 0,039231
Tabela 7.3: Dados referentes a h=1.0 e r=3
-
65
Tempo Quantidade de Sal
Aproximada
Quantidade de Sal
Exata
Erro absoluto
10,0 26,912827 27,084574 0,171747
30,0 11,576203 11,651715 0,075512
50,0 6,973567 7,003490 0,029923
70,0 5,592282 5,603451 0,011169
90,0 5,177749 5,181759 0,004011
Tabela 7.4: Dados referentes a h=0.1 e r=3
ntido que a resoluo numrica atravs do Mtodo de Euler alcana
resultados muito satisfatrios. Tambm necessrio deixar claro que, conforme o valor
do passo h diminui, resultados ainda mais precisos podem ser alcanados.
7.2 Mtodos Runge Kutta
A ideia do Mtodo de Euler (que um mtodo de Runge Kutta de primeira
ordem), visto anteriormente, tem verses de maior preciso nos trabalhos de Runge em
1895, para o caso de uma equao, e Kutta em 1901, para o caso de um sistema de
equaes diferenciais de primeira ordem.(CUNHA, 2000).
Portanto, se o usurio desejar uma exatido maior em seus resultados, deve optar
por um Mtodo de Runge Kutta de ordem mais elevada. Sua forma geral :
= + ( ,;),(,; ) = + + + , = (, ), = ( + , + ), = ( + , + ( + )), = + , + ( + + + ,),
sendo a, b e c constantes definidas para cada mtodo particular. (CAMPOS
FILHO, 2001). Essas constantes so exibidas na Tabela 7.5
-
66
Tabela 7.5: Constantes do Mtodo Runge Kutta
7.2.1 Algoritmo
Apresentamos nas Figuras 7.5, 7.6 e 7.7 os Algoritmos dos Mtodos de Runge
Kutta para n=2, n=3 e n=4, repectivamente.
Figura 7.5: Algoritmo do Mtodo de Runge-Kutta ordem 2
Figura 7.6: Algoritmo do Mtodo de Runge-Kutta ordem 3
Algoritmo 1 (CUNHA, 2000) Runge-Kutta ordem 2 entre com Yzero, h e f(x,y) k=0,1,2,... faa Mzeroh*f( ,) Mumh*f( + , + Mzero)
= + (Mzero + Mum)/2) FIM Algoritmo 1 (CUNHA, 2000) Runge-Kutta ordem 3 entre com Yzero, h e f(x,y)
k=0,1,2,... faa Mzeroh*f( ,) Mumh*f( + 0.5 , + 0.5 Mzero) Mdoish*f(, Mzero + 2 Mum) = + (Mzero + 4 Mum + Mdois)/6) FIM
-
67
Figura 7.7: Algoritmo do Mtodo de Runge-Kutta ordem 4
7.2.2 Exemplo
Vamos utilizar como exemplo a equao diferencial:
() = 11 + 2
A resolvemos atravs de todos os mtodos de Runge-Kutta estudados para h=0,1
e h=0,01.
7.2.3 Resultados Numricos
Os resultados numricos encontrados para os mtodos de Runge-Kutta, assim
como a soluo analtica, encontram-se dispostos nas Tabelas 7.6 e 7.7
x Soluo
Analtica
Euler Runge-Kutta
ordem 2
Runge-Kutta
ordem 3
Runge-Kutta
ordem 4
0,2 0,192308 0,197010 0,191292 0,192321 0,192307
0,4 0,344828 0,360854 0,342931 0,344878 0,344825
0,6 0,441176 0,465566 0,438854 0,441258 0,441172
0,8 0,487805 0,513707 0,485559 0,487896 0,487800
Tabela 7.6: Resultados para h=0,1
Algoritmo 1 (CUNHA, 2000) Runge-Kutta ordem 4 entre com Yzero, h e f(x,y) k=0,1,2,... faa Mzeroh*f( ,) Mumh*f( + 0.5 , + 0.5 Mzero) Mdoish*f(0.5 , + 0.5 Mum) Mtresh*f(, + Mdois)
= + (Mzero + 2 Mum + 2 Mdois + Mtres)/6) FIM
-
68
x Soluo
Analtica
Euler Runge-Kutta
ordem 2
Runge-Kutta
ordem 3
Runge-Kutta
ordem 4
0,2 0,192308 0,192842 0,192298 0,192308 0,192308
0,4 0,344828 0,346439 0,344810 0,344828 0,344828
0,6 0,441176 0,443536 0,441156 0,441177 0,441177
0,8 0,487805 0,490303 0,487785 0,487805 0,487805
Tabela 7.7: Resultados para h=0,01
Para uma visualizao mais clara, vamos plotar um grfico para cada valor de h
testado para que ilustrem os resultados obtidos. Eles se encontram nas Figuras 7.8 e 7.9.
Figura 7.8: Curvas obtidas para h=0,1
-
69
Figura 7.9: Curvas obtidas para h=0,01
Na Figura 7.8 j podemos constatar a proximidade das curvas, exceto a do
mtodo de Euler que se mateve levemente afastada. Na Figura 7.9, a diferena existente
entre as curvas muito pequena.
O exemplo apresentado demonstra com clareza a eficincia e praticidade dos
Mtodos de Runge-Kutta. A sua facilidade de implementao e preciso os tornam
muito frequentes na resoluo de equaes diferenciais ordinrias.
Percebemos tambm que conforme a ordem do mtodo cresce, os resultados se
tornam ainda mais exatos. Como esperado, o decrscimo de h tambm contribui para
resultados ainda mais perfeitos.
-
70
8. CONCLUSO
Os mtodos numricos abrem um leque de possibilidades muito extenso ao
programador. O permite escolher entre vrios mtodos existentes um que se ajuste s
suas necessidades. Um exemplo clssico se encontra no Captulo 7 que apresenta
mtodos para a resoluo de equaes diferenciais ordinrias. Podemos escolher qual
dos mtodos Runge-Kutta utilizaremos, a depender da preciso desejada.
O aprendizado relacionado a esses mtodos, mesmo que de forma bsica, deve
ocorrer durante os cursos de Engenharia, pois so fundamentais para solucionar muitos
problemas frequentes. Um exemplo disso o clculo de projetos estruturais que
necessita da resoluo de sistemas lineares.
interessante que o aluno perceba que no h limites dentro dessa rea. Os
mtodos podem, e devem, ser aprimorados com o passar dos anos ou formas diferentes
de se realizar a mesma operao podem ser implementadas, sempre visando uma maior
praticidade na obteno de resultados.
-
71
REFERNCIAS BIBLIOGRFICAS
CUNHA, M. C. C. Mtodos Numricos 2 edio. Editora Unicamp, 2000.
RUGGIERO, M. A. G.; LOPES, V. L. da R. Clculo Numrico Aspectos Tericos e
Computacionais 2 edio. Pearson Education do Brasil, 1996.
SHIGUE, C. Y. Clculo de Razes de Funes, 2009.
CAMPOS FILHO, F. F. Algoritmos Numricos 2 edio. Editora LTC, 2001.
BARROSO, C. L; BARROSO, M. M. A; CAMPOS FILHO, F. F; CARVALHO, M. L.
B., MAIA, M. L. Clculo Numrico (com Aplicaes) 2 edio. Editora Harbra ltda.,
1987.
FRANCO, N. B. Clculo Numrico. Editora Pearson Prentice Hall, 2006.
SHIGUE, C. Y. Clculo de Sistemas de Equaes Lineares, 2009.
SHIGUE, C. Y. Apostila de Ajuste de Curvas, 2009.
-
72
ANEXOS
CAPTULO 2
Cdigo para o Mtodo da Bisseo
-
73
Cdigo para o Mtodo de Newton
-
74
Cdigo para o Mtodo da Secante
-
75
-
76
Cdigo para o Mtodo Pgaso
CAPTULO 3
-
77
Cdigo para Eliminao Gaussiana
-
78
-
79
Cdigo para Mtodo Gauss Seidel
CAPTULO 4
-
80
Cdigo para Mtodo de Lagrange
-
81
-
82
Cdigo para Splines Cbicas Naturais
-
83
CAPTULO 5
-
84
Cdigo para Ajuste pelo Mtodo dos Mnimos Quadrados
-
85
CAPTULO 6
Cdigo para Integrao pelo Mtodo de Simpson
-
86
Cdigo para Regra dos Trapzios
-
87
CAPTULO 7
Cdigo para Mtodo de Euler
-
88
Cdigo para Mtodo de Runge-Kutta ordem 2
-
89
Cdigo para Mtodo Runge-Kutta de ordem 3
-
90
Cdigo para Mtodo Runge-Kutta ordem 4