Escolar Documentos
Profissional Documentos
Cultura Documentos
BARREIRAS – BA
MARÇO/2013
2
DIANDRA CHISA TANAKA
BARREIRAS – BA
MARÇO/2013
3
SUMÁRIO
Introdução 7
4
3.1.2 Exemplo .................................................................................................... 28
3.1.3 Resultados Numéricos .............................................................................. 28
3.2 Método Iterativo: Gauss Seidel ......................................................................... 28
3.2.1 Algoritmo .................................................................................................. 30
3.2.2 Exemplo .................................................................................................... 31
3.2.3 Resultados Numéricos .............................................................................. 32
3.3 Comparação: Eliminação Gaussiana e Gauss Seidel ......................................... 32
3.3.1 Exemplo .................................................................................................... 32
3.3.2 Resultados Numéricos .............................................................................. 33
4. Interpolação Polinomial 35
4.1 Polinômio de Lagrange ...................................................................................... 36
4.1.1 Algoritmo .................................................................................................. 36
4.1.2 Exemplo .................................................................................................... 37
4.1.3 Resultados Numéricos .............................................................................. 38
4.2 Splines ............................................................................................................... 39
4.2.1 Algoritmo .................................................................................................. 40
4.2.2 Exemplo .................................................................................................... 42
4.2.3 Resultados Numéricos .............................................................................. 43
6. Integração Numérica 51
6.1 Regra do Trapézio ............................................................................................. 51
6.1.1 Algoritmo .................................................................................................. 53
6.1.2 Exemplo .................................................................................................... 54
6.1.3 Resultados Numéricos .............................................................................. 54
6.2 Método de Simpson ........................................................................................... 54
6.2.1 Algoritmo .................................................................................................. 56
5
6.2.2 Exemplo .................................................................................................... 57
6.2.3 Resultados Numéricos .............................................................................. 57
8. Conclusão 70
9. Referências Bibliográficas 71
10. Anexos 72
6
INTRODUÇÃO
7
CAPÍTULO 1
Nos computadores, os cálculos são efetuados com base nos pulsos elétricos.
Assim, só dois estados podem ocorrer: presença e ausência de corrente elétrica. Assim,
é conveniente a representação binária de números, uma vez que na base 2 só dígitos 0 e
1 são considerados. Também, por conveniência, os números inteiros são representados
de forma diferente daquela dos números reais. (CUNHA, 2000).
8
1.2.1 Representação de Inteiros
Um número inteiro é representado pelos coeficientes de sua expansão binária.
Dessa forma, consideremos a expansão binária do número inteiro N:
= 2 + 2 +⋯+ 2 + 2
=( … ).
Como a representação binária exige muitos dígitos e sua passagem para base
octal é relativamente simples, alguns computadores usam a representação octal.
(CUNHA, 2000).
= 2 + 2 + 2 + ⋯.
=( … … ).(CUNHA, 2000).
9
onde:
é a base em que a máquina opera;
t é o número de dígitos na mantissa;
e é o expoente no intervalo [1,u].
Em qualquer máquina, apenas um subconjunto dos números reais é representado
exatamente, e, portanto, a representação de um número real será realizada através do
truncamento ou arredondamento, ambos supracitados na seção 1.1.(RUGGIERO e
LOPES, 1996).
Supondo = 10; = 3 ∈ [−5,5], considere o conjunto dos números reais e o
seguinte conjunto:
= { ∈ | ≤| |≤ }
10
CAPÍTULO 2
11
Figura 2.1: Interpretação gráfica do método de Newton. (FONTE: CUNHA, 2000)
( ) ( )
tan = = ′( ) → = −
( )
( )
= −
′( )
( )
= − ( )
, k=0, 1, 2, ... (2.1)
12
2.1.1. Algoritmo
A formulação ilustrada anteriormente pode ser executada pela máquina através
da implementação dos algoritmos da Figura 2.2.
As variáveis reais são: o valor inicial x0 e erro, ambos informados pelo usuário.
x e deltaX fazem parte do processo proposto pela Equação 2.1.
Como parâmetros inteiros, temos o número máximo de iterações nmax,
fornecido pelo usuário e n que consiste em um contador de iterações realizadas.
Os Algoritmos 2 e 3 são auxiliares para o cálculo do valor da função num
determinado ponto, assim como sua derivada.
Algoritmo 1
Método Newton
real x0, x, erro, deltaX
int nmax, n
entre com x0, erro, nmax
x←x0
n←0
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
então interrompa
fim se
fim repita
imprima x
FIM
Algoritmo 2
função f (x)
retorne (função desejada)
fim
Algoritmo 3
função df (x, erro)
retorne (f(x+erro)-f(x))/erro
fim
Figura 2.2: Algoritmos para Método de Newton
13
2.1.2 Exemplo
( )= /
Vamos calcular uma raiz aproximada da função − através do
Método de Newton. Para isso, plotamos na Figura 2.3 o gráfico de ( ).
/
Figura 2.3: Gráfico da função ( ) = −
É nítido que há duas raízes e próximas de zero, tal que <0e > 0.
14
Iteração 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 iteração do Método de Newton
15
Os intervalos entre a raiz e tais valores vão sendo diminuídos gradativamente até
que o intervalo seja tão ou mais estreito quanto o erro solicitado. A redução desse
intervalo ocorre obedecendo a Equação 2.2.
= (2.2)
| - |< (2.3)
2.2.1 Algoritmo
As duas situações citadas anteriormente podem facilmente ser obedecidas pela
máquina através da implementação do algoritmo da Figura 2.5.
As variáveis reais xE, xD, e xM correspondem aos parâmetros , e ,
respectivamente, citados anteriormente. É importante ressaltar que xE e xD são
informados pelo usuário inicialmente, assim como o erro desejado.
Da mesma forma como ocorreu no algoritmo da seção 2.1.1, faremos uso de
uma função, representada no Algortimo 2, que retorne o valor da função naquele ponto.
16
Algoritmo 1
Método da Bisseção
real xE, xD, xM, erro
int nmax, n
entre com xE, xD, erro, nmax
xM←(xE+xD)/2
n←0
escreva n, xE, xD, xM, abs(xD-xE)
faça enquanto (abs(xD-xE)>erro e n<nmax)
se (f(xE)*f(xM)>0.0) xE=xM
senão xD=xM
xM=(xE+xD)/2
n←n+1
escreva n, xE, xD, xM, abs(xD-xE)
fim faça
FIM
Algoritmo 2
função f (x)
retorne (função desejada)
fim
Figura 2.5: Algoritmo para Método da Bisseção
2.2.2 Exemplo
Neste momento, vamos por em execução este método a fim de encontrar uma
raiz aproximada para a função ( ) = 0,05 ³ − 0,4 +3 ( ) , com
= 1 × 10 .
A Figura 2.6 ilustra o gráfico para a função ( ). A curva intercepta várias
vezes o eixo x. Vamos calcular através do método da Bisseção a raiz pertencente ao
intervalo [-5,0 ; -1,0]. Isso significa que vamos inserir como parâmetros de entrada
= −5,0 e = −1,0.
17
Figura 2.6: Gráfico da função ( ) = 0,05 ³ − 0,4 +3 ( )
18
n erro
19
2.3 Método da Secante
Generalizando:
( )− ( )
= , = 0, 1, 2, …
( )− ( )
( )
= − ( ) (2.4)
20
A diferença entre esse método e o de Newton consiste na aproximação da
derivada, que, neste caso, se faz pela secante.
2.3.1 Algoritmo
Fazendo uma analogia entre a Equação 2.4 e as variáveis do algoritmo da Figura
2.7, representamos por xE, por xD e por x. Esses dois últimos são
parâmetros fornecidos pelo usuário, assim como o erro e o valor máximo de iterações
nmax.
Novamente, necessitamos da função exposta no Algoritmo 2 para calcular o
valor da função num ponto x.
Algoritmo 1
Método da Secante
real xE, xD, x, erro
int nmax, n
entre com xE, xD, erro, nmax
n←0
x ← xE-(((xD-xE)*f(xE))/(f(xD)-f(xE)))
escreva n, xE, xD, x, abs(xD-x)
faça enquanto (abs(xD-x)>erro e n<nmax)
xD ← x
x ← xE-(((xD-xE)*f(xE))/(f(xD)-f(xE)))
n←n+1
escreva n, xE, xD, x, abs(xD-x)
fim faça
FIM
Algoritmo 2
função f (x)
retorne (função desejada)
fim
Figura 2.7: Algoritmo para Método da Secante
2.3.2 Exemplo
Dada a função ( )= 3 ²− , vamos calcular uma raiz aproximada que
forneça um erro menor que = 1 × 10 .
A Figura 2.8 apresenta o gráfico de ( ). Podemos notar que, nesse trecho, a
curva intercepta o eixo da abscissa apenas uma vez.
21
Figura 2.8: Gráfico da função ( ) = 3 ² −
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 numéricos para cada interação do Método da Secante
22
2.4 Método Pégaso
A origem do nome “Pégaso” é devida a utilização deste método em um
computador Pégaso, sendo seu autor desconhecido.(BARROSO, et al. 1987).
Assim como o Método da Secante, visto na seção 2.3, o presente método
também fará uso da Equação 2.4.
Os pontos [ , ( )] e [ , ( )] pelos quais será traçada a reta para
obter são escolhidos de tal modo que ( ) e ( ) tenham sempre sinais
opostos, garantindo assim que ∈[ , ]. Além disso, o valor de ( ) é
( )
reduzido por um fator igual a de modo a evitar a retenção de um ponto.
( ) ( )
Deste modo, a reta pode ser traçada por um ponto não pertencente à curva de ( ).
(CAMPOS FILHO, 2001).
2.4.1 Algoritmo
No Algoritmo 1, representado na Figura 2.9, as variáveis reais a e b são os
limites inferior e superior, respectivamente, do intervalo no qual se encontra a raiz, o
erro corresponde a precisão desejada pelo usuário. fb e fa são os valores da função nos
pontos b e a e x e fx estão variando até atingir a raiz. nmax corresponde a quantidade de
iterações máxima desejada, n e i são contadores e, finalmente, deltaX faz parte da
fórmula do método Pégaso.
O Algoritmo 2 apenas retorna o valor da função em determinado ponto. Tal
função varia de acordo com o problema.
O critério de parada, além do número de iterações máxima, é a comparação entre
o erro desejado e dois valores: o valor da função 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.
23
Algoritmo 1
Método da Secante
real a, b, erro, x, deltaX, fa, fb, fx
int nmax, n, i
entre com a, b, erro, nmax
fa←f(a)
fb←f(b)
fx←fb
n←0
x←b
deltaX←fx/(fb-fa)*(b-a)
escreva n, a, fa, b, fb, x, fx, deltaX
para (i←0; i<nmax;i←i+1) faça
deltaX←fx/(fb-fa)*(b-a)
x ← x+deltaX
escreva n, a, fa, b, fb, x, fx, deltaX
se(abs(deltaX)≤erro e abs(abs(fx)≤erro))ou(n≥nmax) então
interrompa
fim se
se (fx*fb<0) então
a←b
fa←fb
senão
fa←fa*(fb/(fb+fx))
fim se
b←x
fb←fx
n←n+1
fim faça
FIM
Algoritmo 2
função f (x)
retorne (função desejada)
fim
2.4.2 Exemplo
Vamos encontrar numericamente uma das raízes da função polinomial de grau 3
( ) tal que ( )= ³−2 − 20 + 30.
A Figura 2.10 apresenta o gráfico da ( ). Vamos analisar seu comportamento
para que possamos determinar quais serão os limites a e b.
24
Figura 2.10: Gráfico da função ( ) = ³ − 2 − 20 + 30
No trecho do gráfico ilustrado pela Figura 2.10 é possível visualizar duas raízes.
Vamos encontrar a raiz pertencente ao intervalo [-5,0] com um erro = 10 e número
máximo de 100 iterações.
25
CAPÍTULO 3
…
[A] = ⋮ ⋮ ⋮
…
[b] = ⋮
26
Permutação entre duas linhas;
Subtração de uma linha por outra multiplicada por uma constante.
(SHIGUE, 2009).
Podemos resolver o sistema por recorrência através da Equação 3.1 e
calcular o determinante da matriz de coeficientes [A] com a Equação 3.2.
(3.1)
(3.2)
3.1.1 Algoritmo
A matriz A e o vetor b correspondem a matriz e o vetor supracitados. i, j e k são
apenas contadores que tem a função de auxiliar nos cálculos.
27
3.1.2 Exemplo
Vamos calcular a solução do sistema representado pela Equação 3.3 abaixo pelo
método Eliminação Gaussiana:
10 3 −2 57
2 8 −1 = 20 (3.3)
1 1 5 −4
57,0000000
[B] = 8,6000000
−10,5135135
5,0000000
[X] = 1,0000000
−2,0000000
28
tal que os coeficientes da diagonal principal sejam não nulos. Vamos isolar cada
, = 1, 2, … ,
29
É condição suficiente para a convergência do método 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 Método Gauss Seidel. Nele, atribuímos
30
Método 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 (i←1; i<n; i←i+1) faça
r←1/A(i, i)
para (j←1; j<n; j←j+1) faça
se (i≠j) então
A(i, j)=A(i, j)*r
fim se
fim para
B(i) ← B(i)*r
sol(i) ← B(i)
fim para
iter(i) ← 0
repita
iter(i) ← iter(i)+1
para (i←1; i<n; i←i+1) faça
soma←0
para (j←1; j<n; j←j+1) faça
se(i≠j) então soma←soma+A(i, j)*sol(j) fim se
fim para
v(i) ←sol(i)
sol(i) ←B(i)-soma
fim para
NormaNum←0
NormaDen←0
para (i←1; i<n; i←i+1) faça
t←abs(sol(i)-v(i))
se (t>NormaNum) então NormaNum←t fim se
se (abs(sol(i))>NormaDen) então NormaDen←abs(sol(i)) fim se
fim para
NormaRel←NormaNum/NormaDen
escreva Iter, sol, NormaRel
se (NormaRel≤erro ou iter≥nmax) então interrompa fim se
fim repita
FIM
3.2.2 Exemplo
Vamos submeter o Método Gauss Seidel a resolver a Equação 3.4.
31
5 2 0 −1 6
1 8 −3 2 10 (3.4)
=
0 1 6 1 −5
1 −1 2 9 0
0,95294213
0,71372497
Portanto, temos que a solução convergiu. O vetor solução é .
−0,98431373
0,19215670
32
5 1 1 5
3 4 1 = 6 (3.5)
3 3 6 0
Eliminação Gaussiana
Após o processo de triangularização, a matriz [A] está configurada da seguinte
maneira:
5,000000000
[B] = 3,000000000
−5,1176470588
1,0000000
[X] = 1,0000000
−1,0000000
Gauss Seidel
Os resultados obtidos através do método iterativo estão na Tabela 3.2
33
Iteração Norma Relativa
Através desse exemplo, fica claro que o método direto fornece resultados mais
seguros, enquanto o método iterativo é menos confiável, visto que é construído de
forma iterativa, com as soluções anteriores. Não obstante, este fato não torna o método
de Gauss Seidel inválido, pois o erro estipulado foi nitidamente respeitado.
34
CAPÍTULO 4
Interpolação Polinomial
35
Figura 4.1: Polinômio ( ) passando pelos pontos fornecidos
( ) = ∑ ∏ / (4.1)
4.1.1 Algoritmo
Desenvolver um algoritmo que obedeça a Equação 4.1 não é um trabalho difícil.
O apresentamos na Figura 4.2.
O parâmetro inteiro n, representa a quantidade de pontos conhecidos, enquanto i e
j são apenas contadores.
Já os vetores reais x e y, correspondem aos números dados como entrada e os
valores da função nestes pontos, respectivamente. É importante lembrar, que é
aconselhável alocar memória para estes vetores de tamanho n. A variável xvalor é o
valor a ser interpolado. p é o parâmetro de saída, corresponde ao valor da função no
ponto xvalor e, finalmente, c e d são auxiliares no cálculo de p.
36
Método Lagrange
inteiro n, i, j
real *y, *x, xvalor, p, c, d
parâmetros de entrada: n, *y, *x, xvalor
aloca memória para y e x
p=0
para i=1, n, 1 faça
c=1.0
d=1.0
para j=1, n, 1 faça
se j≠i então
c=c*(xvalor-x(j))
d=d*(x(i)-x(j))
fim se
fim para
p=p+y(i)*(c/d)
fim para
Figura 4.2: Algoritmo do método de Lagrange
4.1.2 Exemplo
Este exemplo é muito comum na área de Estatística.
Os países costumam realizar o levantamento populacional periodicamente,
através de fundações (no Brasil, por exemplo, o órgão responsável por isso é o IBGE).
Elas organizam os dados e podem, assim, estimar a população em um determinado ano
que não houve o levantamento populacional.
O Censo da população dos Estados Unidos entre os anos de 1930 e 1980 fornece
os seguintes dados pontuais (ou degenerados) organizados na Tabela 4.1:
Ano População(x10³)
1930 123203
1940 131669
1950 150697
1960 179323
1970 203212
1980 226505
Tabela 4.1: Pontos fornecidos pelo Censo
37
Plotamos os pontos da Tabela 4.1, apenas para facilitar a visualização do
crescimento populacional. O gráfico está representado na Figura 4.3.
(anos) Lagrange
1932 125267,47
1947 143395,11
1959 176477,01
1965 192407,05
1975 215271,80
Tabela 4.2: Resultados numéricos estimando a população americana
38
Cientes de que a interpolação fornece apenas uma aproximação da população em
determinado ano, não podemos confiar completamente nos resultados obtidos.Vale
lembrar também que não é possível validar os dados da Tabela 4.2, pois o Censo
demográfico americano é realizado apenas a cada 10 anos e não se sabe de que forma o
crescimento populacional se comporta nesse intervalo.
4.2 Splines
O termo spline, em inglês, significa longas tiras de madeira. Elas eram usadas, há
muito tempo atrás, para interpolar, de modo suave, pontos das estruturas de navios e
aviões. (CAMPOS FILHO, 2001).
Sejam n+1 pontos ( , ), i= 0, 1, 2, ..., n, com < <⋯< . A intenção é
calcular n polinômios interpoladores cúbicos que passem por dois pontos sucessivos,
portanto, cada polinômio é utilizado no intervalo [ , ].
São da forma:
E satisfazem as condições:
( )= , = 0,1,2, … , − 1 e ( )=
( )= ( ), = 0,1,2, … , − 2
′( )= ′ ( ), = 0,1,2, … , −2
"( )= " ( ), = 0,1,2, … , − 2
=[ ( )− ( )]/6ℎ
= ( )/2
( ) ( )
=[ + ]
39
A fim de simplificar o processo, denotamos ( )= . Através das condições
supracitadas, obtemos uma equação Ax=b.
onde:
=( , ,…, )T (4.3)
(4.4)
(4.5)
4.2.1 Algoritmo
Este método é mais complexo do que o de Lagrange. Toda a dedução matemática
apresentada está no código da Figura 4.4
40
Dentro dos parâmetros 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 variável real que denotamos como: valor.
Nos reais, o vetor h corresponde aos intervalos entre os valores de x fornecidos,
y(i) é o valor da função no ponto x(i), g é o vetor solução obtido através do método
Gauss Seidel, A é a matriz da Equação 4.4 e B é o vetor da Equação 4.5. a, b, c e d são
os coeficientes da Equação 4.2 e f é o valor da função no ponto valor
41
4.2.2 Exemplo
Essa aplicação pertence à área da Física. Obteve-se os dados através de um
experimento sobre propagação 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.
42
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 coesão entre as moléculas, dificultando a propagação do som.
Deseja-se obter a velocidade do som na água nas temperaturas: 89oC, 95,6 oC,
100 oC e 107,9 oC.
o
C 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 numéricos para as temperaturas interpoladas
43
CAPÍTULO 5
= ∑ ( − )² (5.1)
44
5.1.1 Ajuste Polinomial
Seja y um polinômio:
= + + +⋯+ (5.2)
2
= ∑ ( − 0 − 1 − 2 − ⋯− )² (5.3)
2
=∑ −2. ( − 0 − 1 − 2 − ⋯− )=0
2
=∑ −2 . ( − 0 − 1 − 2 − ⋯− )=0
2
=∑ −2 .( − 0 − 1 − 2 − ⋯− )=0
...
2
=∑ −2 .( − 0 − 1 − 2 −⋯− )=0
45
Podemos rearranjá-las numa forma matricial:
(5.4)
onde:
46
Ajuste Parabólico
A parábola é apenas um caso particular do ajuste polinomial supracitado
submetido à condição m=2. Por conseguinte, nosso sistema de equações normais é:
(5.5)
5.1.2 Algoritmo
47
Método dos Mínimos Quadrados
real A(3,3), b(3), sol(3), *y, *x
inteiro i, j, m, k
leia m
Alocar memória para x e y
Entrar com x e y
faça i= 0, 2, 1
faça j= 0, 2, 1
A(i, j)← 0.0
B( i ) ←0.0
faça k=1, m, 1
A( i, j ) ←A( i, j ) +x( k )**(i+j)
b( i )←b( i )+y( k )*x( k )**i
fim faça
fim faça
fim faça
CHAMA FUNÇÃO ELIMINAÇÃO GAUSSIANA
faça i= 0,1,1
imprima sol( i )
fim faça
FIM
Figura 5.1: Algoritmo do Método dos Mínimos Quadrados
5.1.3 Exemplo
Vamos aplicar o algoritmo visto na Figura 5.1 para encontrar os coeficientes de
uma parábola 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
48
Figura 5.2: Gráfico dos pontos da Tabela 5.2
49
Figura 5.3: Comparação entre a curva ajustada e os pontos fornecidos
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 diferença ∆ entre eles em módulo
50
CAPÍTULO 6
Integração Numérica
∫ ( ) ≅∑ ( ) (6.1)
[ ( ) ( )]×( ) (6.2)
=
51
Figura 6.1: Aproximação da integral pela área de um trapézio
×
= (6.3)
52
ℎ
( ) ≅ = [ + ]
2
( ) ( )
= ℎ ( + ( )+ )
2 2
6.1.1 Algoritmo
O algoritmo que envolve o modelo matemático supracitado está na Figura 6.3
Entre as variáveis reais, temos um vetor x que recebe o valor da função nos
pontos desejados para, posteriormente, realizar o somatório denotado por soma. I é o
valor da integral, h é a altura do trapézio e d uma variável auxiliar.
Entre os parâmetros inteiros, a e b são, respectivamente, os limites inferior e
superior de integração, n é a quantidade de pontos e i é apenas um contador.
Algoritmo 1
Regra dos Trapézios
real x(50), soma, I, h, d
int a, b, n, i
entre com a, b, n
h←(b-a)/n
←0
d←a
faça
x(i)=f(d)
←i+1
d ← d+h
enquanto(d≤b)
soma←0
faça i=1,n-1,1
soma←soma+x(i)
fim faça
I←0,5*h*(2*soma+x(0)+x(n))
escreva I
FIM
Algoritmo 2
função f (x)
retorne (função desejada)
fim
Figura 6.3: Algoritmo da Regra dos Trapézios
53
6.1.2 Exemplo
Vamos integrar as funções ( )e ( ). (CAMPOS FILHO, 2001).
( )= ( )
( )
( )=
√2 + 4
Função Resultado
( ) 18,030964
( ) 0,564431
Tabela 6.1: Integração numérica de ( )e ( )
54
Para melhor compreensão, realizamos uma mudança de notações, como
demonstra a Figura 6.4.
A integral de ( ) é:
Considerando:
ℎ= e =
∫ ( ) se torna:
55
Depois de algumas operações algébricas, temos que ∫ ( ) é:
6.2.1 Algoritmo
O algoritmo do Método de Simpson está na Figura 6.5.
Os parâmetros são exatamente os mesmos utilizados na Regra dos Trapézios.
Algoritmo 1
Método 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
faça
x(i)=f(d)
←i+1
d ← d+h
enquanto(d≤b)
soma←0
faça i=1,n-1,1
se ((i÷2)≠0) então
soma←soma+2*x(i)+x(i+1)
fim se
fim faça
I←(1÷ 3)*h*(2*soma+x(0)-x(n))
escreva I
FIM
Algoritmo 2
função f (x)
retorne (função desejada)
fim
Figura 6.5: Algoritmo do Método de Simpson
56
6.2.2 Exemplo
Vamos integrar as funções ( )e ( ). (CAMPOS FILHO, 2001).
( )= (4 ³ + 3 ² + + 1)
1
( )=
Função Resultado
( ) 112,000000
( ) 0,693150
Tabela 6.2: Integração numérica de ( )e ( )
57
CAPÍTULO 7
(E.D.O) (E.D.P)
58
( )= ( , )
( )= (7.1)
= ( , ) (7.2)
Isolando :
= +ℎ ( , ), = 1,2, … (7.3)
7.1.1 Algoritmo
A Figura 7.1 apresenta o Algoritmo para o Método de Euler. O usuário deve
entrar com as condições iniciais Qzero e tzero, o tempo final tfim e o passo h. n
corresponde ao número de pontos que serão calculados e i é apenas um contador.
O Algoritmo 2 retorna apenas o valor da função num determinado x.
______________________________________________________________________
¹Uma malha é um conjunto finito de pontos. A malha de passo h associada a é o conjunto de
pontos = ± ℎ, = 1,2, …
59
Algoritmo 1
Método 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
faça i=1,n,1
Q←Q+h*f(x)
t←t+h
escreva i, t, Q
FIM
Algoritmo 2
função f (x)
retorne (função desejada)
fim
Figura 7.1: Algoritmo do Método de Euler
7.1.2 Exemplo
Um tanque contém, inicialmente, a solução de 45 kg de sal dissolvidos em
5000L de água. Ele recebe r galões por minuto, onde cada galão comporta 100g de sal
dissolvidos em 100 L de água. O tanque possui um orifício por onde sai a solução a r
galões por minuto. A Figura 7.2 esquematiza a situação.
Deseja-se conhecer a função que representa a quantidade de sal no tanque e
como ela se comporta.
(7.1.1)
(7.1.2)
Condição inicial:
(7.1.3)
Onde:
t0 = 0 min
Q0 = 45 kg
Resolução Analítica
Neste momento, vamos resolver essa EDO de forma analítica de modo que,
quando obtivermos a resolução numérica, possamos ter condições de validá-la.
Organizando a Equação 7.1.2, temos:
(7.1.4)
61
O fator integrante da Equação 7.1.4 é:
(7.1.6)
(7.1.7)
Resolução Numérica
A fórmula geral do Método de Euler, para esse exemplo, pode ser calculada
substituindo a Equação 7.1.2 em 7.3 e adaptando os parâmetros:
(7.1.8)
62
Figura 7.3: Gráfico composto pelas curvas formadas por diferentes valores de h e a
solução exata
63
diminuindo o erro associado ao método de Euler. A seguir, as Tabelas 7.1 à 7.4 que
expressam em valores essa situação.
64
Tempo Quantidade de Sal Quantidade de Sal Erro absoluto
Aproximada Exata
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
= + ℎ∅( , ; ℎ), ∅( , ; ℎ) = + + ⋯+ ,
= ( , ),
= ( + ℎ, + ℎ ),
= ( + ℎ, + ℎ( + )),
…
= + ℎ, + ℎ( + +⋯+ , ),
65
Tabela 7.5: Constantes do Método Runge Kutta
7.2.1 Algoritmo
Apresentamos nas Figuras 7.5, 7.6 e 7.7 os Algoritmos dos Métodos de Runge
Kutta para n=2, n=3 e n=4, repectivamente.
66
Algoritmo 1 (CUNHA, 2000)
Runge-Kutta ordem 4
entre com Yzero, h e f(x,y)
k=0,1,2,... faça
Mzero←h*f( , )
Mum←h*f( + 0.5 ∗ ℎ, + 0.5 ∗ Mzero)
Mdois←h*f( 0.5 ∗ ℎ, + 0.5 ∗ Mum)
Mtres←h*f( , + Mdois)
= + (Mzero + 2 ∗ Mum + 2 ∗ Mdois + Mtres)/6)
FIM
7.2.2 Exemplo
Vamos utilizar como exemplo a equação diferencial:
1
( )= −2 ²
1+ ²
67
x Solução Euler Runge-Kutta Runge-Kutta Runge-Kutta
Analítica ordem 2 ordem 3 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 visualização mais clara, vamos plotar um gráfico para cada valor de h
testado para que ilustrem os resultados obtidos. Eles se encontram nas Figuras 7.8 e 7.9.
68
Figura 7.9: Curvas obtidas para h=0,01
69
8. CONCLUSÃO
70
REFERÊNCIAS BIBLIOGRÁFICAS
71
ANEXOS
CAPÍTULO 2
72
Código para o Método de Newton
73
Código para o Método da Secante
74
75
Código para o Método Pégaso
CAPÍTULO 3
76
Código para Eliminação Gaussiana
77
78
Código para Método Gauss Seidel
CAPÍTULO 4
79
Código para Método de Lagrange
80
81
Código para Splines Cúbicas Naturais
82
CAPÍTULO 5
83
Código para Ajuste pelo Método dos Mínimos Quadrados
84
CAPÍTULO 6
85
Código para Regra dos Trapézios
86
CAPÍTULO 7
87
Código para Método de Runge-Kutta ordem 2
88
Código para Método Runge-Kutta de ordem 3
89
Código para Método Runge-Kutta ordem 4
90