Apostila de Cálculo Numérico Pronta

90

Transcript of 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