Escolar Documentos
Profissional Documentos
Cultura Documentos
Ciência da Computação
29 de novembro de 2023
1
1 Introdução
2 Ferramentas Teóricas
• Método de Euler: É um método simples de passo único que utiliza uma aproximação linear para a derivada.
Apesar de sua simplicidade, é menos preciso em comparação com métodos mais avançados.
2
• Métodos de Runge-Kutta:Esses métodos buscam igualar a precisão de Taylor sem ser computacionalmente
inviável como o mesmo, para isso são desenvolvidos métodos iguais de ordens diferentes que garantem mais
proximidade ao resultado. O Runge-Kutta de 2ª Ordem (RK2) oferece uma melhoria em relação ao Método
de Euler, usando um passo médio para calcular a derivada. Já Runge-Kutta de 3 ª Ordem (RK3) é uma
otimização do RK2, garantindo a existência de 3 pontos médios entre xn e xn+1.
• Métodos de Passo Múltiplo: Método de Adams-Bashforth é mm método de passo múltiplo preditor que
estima a derivada futura com base em derivadas anteriores. Já o Método de Adams-Moulton é um método
de passo múltiplo corretor que melhora a precisão ao ajustar as estimativas preditas.
A escolha do método depende da natureza da EDO, das condições iniciais, da precisão desejada e da efi-
ciência computacional requerida. Uma abordagem comum é começar com métodos simples e progredir para
métodos mais complexos conforme necessário. Métodos numéricos desempenham um papel vital em simulações,
modelagem de sistemas dinâmicos e análise de fenômenos complexos em diversas disciplinas científicas e de
engenharia.
3 Fundamentação Teórica
Nessa sessão iremos deduzir as expressões outrora modeladas nesse artigo. Vamos entender o método de
Rauge-Kutta de 3ª ordem (RK3) em detalhes, interpretanto-o geometricamente, bem como o desenvolvimento
do método previsor-corretor Adams-Bashforth-Moulton (ABM) com m = 5, ambos com passo h = 0.2.
3
Onde k1, k2 e k3 são aproximações para as derivadas em outros pontos, dados por:
2
c · α · γ tendo
Assim, esse é um sistema possível e indeterminado
6
infinitas soluções. Uma das soluções nos dá a
seguinte expressão para o método RK3: = 1
2k1 k2 4k3
y = y + h( + + ) (8)
n+1 n
9 3 9
k1 = f (xn, yn) (9)
1
k2 = f (xn + h, y 1hk1) (10)
2
n 2
+
k3 = f (xn + 3 3hk2) (11)
h, yn 4
4
+
Logo, as equações acima serão usadas durante o relatório para cálculos de passo simples.
A seguir, vamos desenvolver uma expressão geral para o método AB de passo 5. Antes vamos
convencionar que y′(x) = f (x, y(x)), assim:
xn+1
∫ ∫xn+1
xn
y′(x)dx = f (x, y(x))dx (12)
xn
∫
yn+1 = yn + f (x, y(x))dx (13)
xn+1
xn
Com n = 5 resumimos a equação 9 em:
x5
Não podemos realizar a integração de f pois nem sequer temos informações sobre os valores que y, no entanto
podemos tentar utilizar um polinômio de grau m para aproximar a função e assim, realizar a integração
definida sobre ela.
Para tanto, vamos utilizar dois conceitos importantes os polinômios interpoladores de Lagrange para
pontos igualmente espaçados e a mudança de variáveis que é quem nos dará o direito de integrar
numericamente sobre o polinômio Pm(x).
Descrever a obtenção das expressões para os polinômios estão fora do escopo deste relatório, no entanto
podemos encontra-lá em (BURDEN; FAIRES, 2008)(FREITAS, 2019).
Sabe-se que um polinômio interpolador pode ser encontrado somando os polinômios de Lagrange, da seguinte
forma:
m
Pm(x) = ΣLif (xi) (14)
i=0
P5(x) = L0(x)f (x0, y0)+L1(x)f (x1, y1)+L2(x)f (x2, y2)+L3(x)f (x3, y3)+L4(x)f (x4, y4)+L5(x)f (x5, y5) (15)
Vamos obter os polinômios de Lagrange. Como os pontos são igualmente espaçados é mais fácil de obtê-los,
considere h a distância entre duas abscissas.
5
No entanto, ainda é bem difícil integrar sobre xn e xn+1, no nosso caso x5 e x6, então vamos fazer uma
mudança de variáveis que vai nos garantir um intervalo numérico para a integração.
Considere:
x − xn
h =s
x = hs +
xn dx =
hds
Como xi pode ser escrito em função de x0 (xi = x0 + hi), onde i é a quantidade passos, conseguimos
transformar uma reta de pontos discretizados em uma reta de inteira. Logo x − x0 = (s + 5)h e x − x1 = (s + 4)
e assim em diante, por exemplo. Assim, os polinômios assumem outra forma:
1
Em todos os polinômios, multiplicando em cima e em baixo por , e resolvendo as distributivas teremos
h
expressões mais integráveis.
∫1 ∫1 ∫1 ∫1 ∫1 ∫1
yn+1 = yn + L0f0hds + L1f1hds + L2f2hds + L3f3hds + L4f4hds + L5f5hds (16)
0 0 0 0 0 0
Substituindo os valores e calculando as devidas integrais, processo muito intensivo para ser demonstrado
aqui, teremos a seguinte expressão para o método de Adams-Bashforth.
Vimos que o método de AB5 foi obtido de maneira que para aproximar a integral de f (x, y(x)) usamos po-
linômios interpoladores de Lagrange, depois realizamos uma mudança de variáveis e integramos numericamente
esse polinômio P5(s).
O processo para obter a expressão de Adams-Moulton é bem semelhante com a simples diferença de que para
aproximar yn+1 utilizamos o próprio yn+1, portanto os pontos em abscissas e polinômios Li deixarão de utilizar
um ponto (x0, y0) para inserir (xn+1, yn+1). Como o processo é análogo, algumas etapas serão abstraídas.
xn+1
∫ ∫xn+1
xn
y′(x)dx = f (x, y(x))dx (18)
xn
∫
yn+1 = yn + f (x, y(x))dx (19)
xn+1
xn
Com n = 5 resumimos a equação 9 em:
x5
8
Para resolver a integral acima, vamos aproximar a função f por um polinômio interpolador de Lagrange.
m+1
Pm(x) = ΣLif (xi) (20)
i=1
P5(x) = L1(x)f (x1, y1)+L2(x)f (x2, y2)+L3(x)f (x3, y3)+L4(x)f (x4, y4)+L5(x)f (x5, y5)+L6(x)f (x6, y6) (21)
Eliminando h no numerador e denominador, além de aplicar a distributiva, teremos a nova expressão para
os 6 polinômios.
∫1 ∫1 ∫1 ∫1 ∫1 ∫1
yn+1 = yn + L1f1hds + L2f2hds + L3f3hds + L4f4hds + L5f5hds L6f6hds (22)
0 0 0 0 0 0
Substituindo os valores e calculando as devidas integrais, processo muito intensivo para ser demonstrado
aqui, teremos a seguinte expressão para o método de Adams-Moulton.
4 Resultados
Nessa sessão, vamos nos ater a resolver os problemas propostos pelo script abaixo:
Todos os métodos foram desenvolvidos nesse relatório, agora utilizaremos eles a partir de uma modelagem
proposta.
Devemos aproximar o valor de y(1.2) em todos os PVI’s pelo método previsor-corretor ABM, como o
passo h é de 0.2 temos uma coleção de pontos (xi, y1), i ∈ [0, 1.2
], no entanto esses métodos precisam de
h
informações de derivadas anteriores a (x6, y6).Logo é necessário que calculemos também f1, f2 até f5 para só então
obtermos uma previsão inicial para y6, pelo método de Adams-Bashforth, e realizarmos correções iterativas
utilizando o método de Adams-Moulton. Essa é a modelagem proposta para cada um dos exemplos contidos
no modelo
desse relatório.
y = 2x − 3y +
′
(24)
1
y(0) = 1
Primeiramente, utilizaremos o método RK3 para determinar o valor para y1 = y(x1). Retomando a equação
8 vem:
2k1 k2 4k3
y = y + h( + + )
n+1 n
9 3 9
0.2
y1 = y0 (2f (0, 1) + 3f (0 + 0.1, 1 + 0.1f (0, 1) + 4f (0 + 0.15, 1 + 0.15f (0 + 0.1, 1 + 0.1f (0, 1)
+ 9
y1 = 0.728
Esses valores continuarão sendo calculados até o ponto anterior a (x6, y6), de modo que os resultados estão
nessa tabela a seguir.
11
i= 0 1 2 3 4 5
xi 0 0.2 0.4 0.6 0.8 1
yi 1 0.72800 0.64083 0.65421 0.72229 0.82012
Até o momento conseguimos então aproximações para os pontos (xi, yi), i ∈ [0, 5], no entanto o que nos
interessa para prosseguirmos e encontrar y(1.2) são as informações das derivadas nesses pontos. Esse cálculo
é relativamente simples, basta substituirmos (xi, yi), da tabela acima, em 24 para então obtermos fi.
i= 0 1 2 3 4 5
(xi, yi) (0, 1) (0.2, 0.72800) (0.4, 0.64083) (0.6, 0.65421) (0.8, 0.72229) (1, 0.82012)
fi −2 −0.78400 −0.12249 0.23737 0.43313 0.53964
Desse modo, temos as variáveis que serão usadas para determinar a previsão inicial de y6 = y(1, 2) através
do método AB, e ao mesmo tempo informações necessárias para corrigirmos esse valor pelo método de AM.
Esse processo é feito pelo script Python usado para realizar os cálculos numericamente.
Nesse script, que já tem os valores de RK3 calculados, vamos estimar as derivadas nos pontos (xi, yi), i ∈ [0, 5]
e depois aplicar o método de Adams-Bashforth para prever um valor para y(p), como demonstrado em 17, logo
6
após vamos calcular também a derivada em (x6, y(p)). Assim que terminarmos essa etapa vamos utilizar as
informações das derivadas em todos os pontos entre6(x1, y1) e (x6, yp) para calcularmos yp+1, como especificado
6 6
em 23.
O mesmo programa prevê uma condição de parada que consiste em estimar um valor entre duas aproxima-
ções suscetivas do método de Adams-Bashforth-Moulton e comparar esse valor com uma variável previamente
estabelecida, ε. Em termos de expressão algébrica estamos falando em:
(k)
(k−1)
|n+1 — y | <ε (25)
(k) n
|yn+1|
No programa mencionado, além da aproximação para y(1.2), também é calculado o número de iterações
realizadas pelo método de Adams-Moulton, no PVI em questão duas repetições foram suficientes para alcançar
(k)
|yn+1 (k−1)
−yn+1
(k) | < 0.0001. Esse fenômeno poderia ser imputado ao fato de ε ser relativamente grande porém,
|yn+1|
fazendo um teste para ε = 0.0000001 temos o mesmo número de iterações. Isso indica que o método que
estipula o valor inicial é extremamente eficiente, pois ele é de 5ª ordem porém é explícito, então um método
de mesma ordem e implícito garante que chegaremos a uma aproximação mais real. Portanto a aproximação
calculada foi:
Assim chegamos ao final dessa estimativa para y(1.2) do PVI em questão. Nos próximos PVI’s vamos utilizar
os mesmos procedimentos que foram aplicados aqui, entretanto abstraindo a explicação dos passos realizados.
Segue o PVI:
y′ = y + cos(x)
(26)
y(0) = 1
Aplicando o método de Runge-Kutta de 3ª ordem, descrito em 17, para aproximar valores para y1, y2, y3, y4
e y5 vem:
12
i= 0 1 2 3 4 5
xi 0 0.2 0.4 0.6 0.8 1
yi 1 1.44126 1.97159 2.60226 3.34774 4.22668
i= 0 1 2 3 4 5
(xi, yi) (0, 1) (0.2, 1.44126) (0.4, 1.97159) (0.6, 2.60226) (0.8, 3.34774) (1, 4.22668)
fi 2 2.42133 2.89265 3.42760 4.04445 4.76698
Nesse momento vamos calcular uma previsão inicial para y6, ou seja, y(p) através de Adams-Bashforth, logo após
6
iremos obter a derivada f6 no ponto (x6, y(p)). Assim, estamos aptos a executar o método de Adams-Moulton.
6
Lembrando que assim que uma nova aproximação y(p) é calculada, uma outra f6 é calculada para ser usada na
6
próxima iteração. Desse modo O resultado final vem:
Nessa resolução o método AM, para um ε = 1.10−4, teve somente uma iteração. Já para ε = 1.10−7 foram
feitas duas iterações. Isso se deve ao fato de que quando ε = 1.10−4, a expressão descrita em 25 tem valor
de 4.69382.10−6 o que já satisfaz a condição de parada. Porém quando ε = 1.10−7, esse valor não satisfaz a
condição de parada, já que 4.69382.10−6 > 1.10−7, então outra iteração é realizada.
Segue o PVI:
√
y′ = xy + y (27)
y(0) = 1
Aplicando o método de Runge-Kutta de 3ª ordem, descrito em 17, para aproximar valores para y1, y2, y3, y4
e y5 vem:
i= 0 1 2 3 4 5
xi 0 0.2 0.4 0.6 0.8 1
yi 1 1.23365 1.55294 1.99575 2.62045 3.51879
i= 0 1 2 3 4 5
(xi, yi) (0, 1) (0.2, 1.23365) (0.4, 1.55294) (0.6, 1.99575) (0.8, 2.62045) (1, 3.51879)
fi 2 1.35743 1.86735 2.61016 3.71515 5.39463
Nesse momento vamos calcular uma previsão inicial para y6, ou seja, y(p) através de Adams-Bashforth, logo após
6
iremos obter a derivada f6 no ponto (x6, y(p)). Assim, estamos aptos a executar o método de Adams-Moulton.
6
Lembrando que assim que uma nova aproximação y(p) é calculada, uma outra f6 é calculada para ser usada na
6
próxima iteração, logo 6y(p) gera f6 (p). Desse modo o resultado final vem:
O fenômeno de aumento de 1 iteração visto em 4.1.2 não é observado aqui, já que na 2º iteração a expressão
25 tão próximo de 0 que a linguagem interpreta como tal. Logo, como 0 < 1.10−7 não é necessario fazer outra
iteração.
13
5 Comparação Entre Valores Obtidos por Aproximações e por Solução Exata do PVI
Os métodos numéricos para resolução de EDO’s são aplicados normalmente quando as equações diferenciais
tem propriedades que garantem que sua primitiva tem lei de formação é muito difícil de ser deduzida. Assim,
é mais acessível, sobretudo computacionalmente falando, encontrar uma aproximação para o valor desejado.
Os exemplos contidos na sessão 4 desse relatório, exceto o último, permitem, através do método de resolução
de EDO de Laplace, deduzirmos sua primitiva. Logo, os valores obtidos através das primitivas são considerados
exatos frente as aproximações desenvolvidas nesse relatório. O objetivo aqui é exatamente a comparação entre
os valores obtidos, desenvolvendo uma análise sobre quão preciso são esses métodos.
Resolvendo os três PVI’s com as ferramentas conhecidas na disciplina de Métodos Matemáticos, temos as
seguintes equações:
Derivada Primitiva
y = 2x − 3y + 1
′ 1
y = 9 (1 + 6x + 8e−3x)
y′ = y + cos(x) y = 1 (−cos(x) + sen(x) + 3ex)
√ 2
y′ = xy + y Sem Primitiva
√
Como y′ = xy + y não tem primitiva exata, vamos comparar apenas as duas primeiras.
y′ = 2x − 3y + 1
Aproximações RK3 ABM5 Sol. Exata
y1 0.72800 - 0.73227
y2 0.64083 - 0.64550
y3 0.65421 - 0.65804
y4 0.72229 - 0.72508
y5 0.82012 - 0.82203
y6 - 0.93402 0.93539
Tabela 1 – Tabela de Comparação Entre os Valores Exatos e Aproximações Para y′ = 2x − 3y + 1
y′ = y + cos(x)
Aproximações RK3 ABM5 Sol. Exata
y1 1.44126 - 1.44140
y2 1.97159 - 1.97191
y3 2.60226 - 2.60283
y4 3.34774 - 3.34863
y5 4.22668 - 4.22800
y6 - 5.26339 5.26501
Tabela 2 – Tabela de Comparação Entre os Valores Exatos e Aproximações Para y′ = y + cos(x)
14
Na tabela 2 é possível notar que os valores exatos diferem dos valores aproximados normalmente pela 3ª ou
4ª casa decimal, sendo assim uma boa aproximação. Já na tabela 1 os valores começam a destoar normalmente
pela 2ª ou 3ª casa decimal.
Essa pequena alteração pode ser estudada mais adiante em trabalhos futuros, entretanto o motivo mais
provável para essa divergência deve ser em relação a proximidade do polinômio P5(x) com a função
primitiva, ou seja, P5(x) se aproxima mais de y = 1
(1 + 6x + 8e−3x) do que de y = 1
(−cos(x) + sen(x) + 3ex).
9 2
6 Trabalhos Futuros
O objetivo desse relatório, de desenvolvimento e aplicação dos métodos de Runge-Kutta de ordem 3 e Adams-
Bashforth-Moulton de passo 5, foram atingidos. No entanto a precisão obtida bem como a simplicidade das
equações trabalhadas, abrem espaço para realização de trabalhos mais complexos com problemas aplicados. A
seguir estão algumas das principais atividades propostas para futuros projetos de aplicação reais:
• Aprimoramento da Precisão:
Investigar métodos para aumentar ainda mais a precisão dos resultados, seja explorando métodos de
maior ordem, técnicas adaptativas de tamanho de passo ou implementando técnicas de interpolação
mais avançadas.
7 Conclusão
Neste relatório, exploramos a aplicação dos métodos numéricos de Runge-Kutta de ordem 3 e Adams-
Bashforth-Moulton de 5ª ordem na resolução de problemas de valor inicial (PVI) de equações diferenciais
ordinárias (EDOs). Inicialmente, desenvolvemos as formulas desses métodos, destacando seus passos de predição
e correção.
A precisão e eficiência desses métodos foram avaliadas através da resolução de três PVI distintos, abrangendo
equações lineares e não lineares. Os resultados obtidos foram comparados com as soluções exatas quando
disponíveis, destacando a capacidade desses métodos em fornecer aproximações precisas.
Ao longo do processo, identificamos a necessidade de considerar a adaptação dinâmica do tamanho de passo
para otimizar a eficiência computacional, bem como explorar métodos paralelos para melhorar o desempenho
em arquiteturas modernas.
No contexto da aplicação desses métodos, observamos que a escolha do tamanho de passo influencia di-
retamente na precisão dos resultados, e estratégias para aprimorar essa escolha podem ser objeto de estudos
futuros.
1
Referências
BURDEN, R. L.; FAIRES, J. D. Análise Numérica. [S.l.]: Cengage Learning, 2008. ISBN 9788522106011.
CHAPRA, S. C. Métodos Numéricos Aplicados com MATLAB® para Engenheiros e Cientistas-3.
[S.l.]: AMGH Editora, 2013.
FREITAS, R. d. O. Cálculo numérico. [S.l.]: SAGAH EDUCAÇÃO, 2019. 254 p. ISBN 9788595029453.
JR, J. V. Métodos matemáticos: volume 1. [S.l.]: Editora da Unicamp, 2016. ISBN 9788526813410.
RUGGIERO, M. A. G. Cálculo numérico aspectos teóricos e computacionais: aspectos teóricos e com-
putacionais. [S.l.]: Pearson Makron Books, 2008. 406 p. ISBN 9788534602044.
TOMIASI, G. C.; CARREIRA, B. L.; BRANDI, A. C. Comparação de métodos numéricos na solução de
edo s utilizando octave. Proceeding Series of the Brazilian Society of Computational and Applied
Mathematics, v. 9, n. 1, 2022.