Buscar

Equações diferenciais ordinárias de 1 ordem em Python

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Equações diferenciais ordinárias de 1ª ordem em Python
Prof. David Fernandes Cruz Moura
Descrição
O emprego de modelos matemáticos para resolução de problemas
clássicos em Engenharia que envolvem equações diferenciais ordinárias
de primeira ordem.
Propósito
Empregar modelos matemáticos para resolver equações diferenciais
ordinárias de primeira ordem é uma ferramenta importante para a
resolução de situações clássicas em Engenharia, como a análise de
circuitos elétricos nos domínios da frequência e do tempo, a análise de
transferência de calor e massa em Engenharia Mecânica e o cálculo do
escoamento de fluidos na Engenharia Civil, entre outras situações-
problema da área.
Preparação
Antes de iniciar este conteúdo, instale um interpretador para a
linguagem Python. No site oficial do Python (www.python.org) estão
disponíveis para download os interpretadores Python 2.7 e Python 3.7
para vários sistemas operacionais, como Linux, Mac OS e Windows.
Fique à vontade para escolher o sistema operacional de sua preferência.
Objetivos
Módulo 1
Método de Euler
Reconhecer o método de Euler para resolução numérica de equações
diferenciais ordinárias de primeira ordem, aplicando-o em situações-
problema típicas em Engenharia por meio da implementação
computacional em Python.
Módulo 2
Método de Runge-Kutta
Reconhecer o método de Runge-Kutta para resolução numérica de
equações diferenciais ordinárias de primeira ordem, aplicando-o em
situações-problema típicas em Engenharia por meio da
implementação computacional em Python.
Neste conteúdo, veremos formas de emprego de modelos
matemáticos para resolver um problema clássico em Engenharia –
a resolução de equações diferenciais ordinárias de primeira ordem.
Provavelmente, você já se deparou com a necessidade de
resolução de equações diferenciais ordinárias ao longo dos seus
estudos, dada a sua grande utilização em um sem-número de
aplicações que abrangem áreas distintas, como as Engenharias, a
Biologia, a Matemática e a Economia, entre outras.
Dentre diversos exemplos de aplicações dessas equações na
natureza e nos fenômenos de interesse no mundo moderno, vale
destacar a Lei de Faraday (que relaciona a variação do fluxo
magnético com a geração de diferença de potencial elétrico), a
Introdução
equação de Schrödinger (uma das bases da Mecânica Quântica) e
a Lei de Hubble (utilizada para explicar a expansão do universo)
(BURIAN; LIMA, 2007). Em particular, temos que o emprego de
modelos matemáticos para resolver equações diferenciais
ordinárias de primeira ordem é uma ferramenta importante para
resolução de situações clássicas em Engenharia, como a análise de
circuitos elétricos nos domínios da frequência e do tempo, a
análise de transferência de calor e massa em Engenharia Mecânica
e o cálculo do escoamento de fluidos na Engenharia Civil, entre
outras situações-problema da Engenharia.
É fundamental destacar que problemas com equações diferenciais
ordinárias requerem não só a equação propriamente dita, mas
também a apresentação de um conjunto de condições iniciais – a
saber, valores da função de interesse em pontos conhecidos – para
que o cálculo possa ser efetuado.
Focaremos, neste conteúdo, a resolução numérica de equações
diferenciais ordinárias de primeira ordem que possuem tais
condições iniciais – os denominados problemas de valor inicial. Em
um problema de valor inicial, buscamos o valor da função em
determinado ponto, dado que conhecemos o valor dessa mesma
função em um ponto dado e a equação diferencial ordinária que
governa o comportamento da função de interesse.
Dessa forma, você conhecerá aqui os métodos mais tradicionais de
resolução de EDO de 1ª ordem. Inicialmente, estudaremos o
método de Euler e suas variantes. Em seguida, o método de Runge-
Kutta. Em ambos os casos, você será não só capaz de
compreender as técnicas propostas, mas também de aplicar os
métodos estudados por meio da implementação computacional de
programas em Python.
Vamos lá? Bons estudos!
1 - Método de Euler
Ao �nal deste módulo, você será capaz de reconhecer o método de Euler para resolução
numérica de equações diferenciais ordinárias de primeira ordem, aplicando-o em situações-
problema típicas em Engenharia por meio da implementação computacional em Python.
Método de Euler
Dada uma função y = f(x), a derivada
é também uma função de x, calculada mediante emprego de regras
próprias. Por exemplo, se nós temos uma função , a sua
derivada é tal que:
No entanto, é importante você perceber desde já que o objetivo aqui é
diferente! Não queremos simplesmente calcular a derivada a partir de
uma função de variável real.
dy
dx
= f ′(x)
y = e2x
dy
dx
= 2e2x = 2y
Na verdade, nosso
propósito é encontrar
uma função f(x) que
satisfaça uma equação
que contenha uma
derivada, como dy/dx.
Em outras palavras, o
objetivo deste conteúdo
é permitir que você
consiga resolver
equações diferenciais
utilizando técnicas
numéricas.
Mas o que é uma equação diferencial?
De maneira simples, uma equação diferencial é aquela que contém as
derivadas de uma ou mais variáveis dependentes em relação a uma ou
mais variáveis independentes (MOURA, 2017).
Tais equações envolvendo derivadas podem assumir as mais variadas
formas. Neste conteúdo, nos dedicaremos às técnicas de resolução de
uma equação diferencial ordinária (EDO) dita de primeira ordem
em um ponto qualquer x1, sujeita à condição inicial , em que
x0 e x1 são números reais e que definem um intervalo I qualquer,
enquanto y0 é um número real arbitrário.
Esse problema, também conhecido como problema de valor inicial (PVI),
assume a seguinte expressão geral, também ilustrada no gráfico a
seguir:
Resolva:

dy
dx
= f(x, y)
y (x0) = y0
dy
dx
= f(x, y) para x  = x1,  sujeito a: y (x0) = y0
Grafico: Solução de um problema de valor inicial: a partir de um ponto inicial (x0), chega-se à
solução x1 de uma equação diferencial.
Extraido de Moura, 2017, p. 107
Dessa maneira, apresentaremos os métodos numéricos de Euler e de
Runge-Kutta, os quais você utilizará para resolução de problemas de
valor inicial em EDO de 1ª ordem. Ao longo deste conteúdo, veremos os
métodos, estudando seu princípio de funcionamento, suas limitações e
os exemplos de aplicação.
Agora vamos conhecer o método de Euler! Esse é o mais simples dentre
os métodos numéricos para resolução de problemas de valor inicial, e
sua fórmula está expressa a seguir:
Para utilizar o método de Euler, basta promover o avanço sucessivo de
um ponto x_{n} para um ponto x_{n+1} e calcular a função f(x) no ponto
indicado. Temos que a sequência de pontos (X0, X1, …, Xn, Xn+1, ...)
delimita uma curva no plano cartesiano até se chegar ao ponto final
desejado.
Um aspecto muito importante na aplicação desse método reside em
determinar a quantidade necessária de passos intermediários para se
resolver o problema.
yn+1 = yn + hf (xn, yn)
Essa quantidade é dependente de um dito valor h, também
denominado de intervalo ou passo do método. Assim, temos que
quanto maior a quantidade de passos intermediários (ou, se preferir,
menor o valor de h), maior a precisão do método.
Quer ver como isso funciona? Observe a ilustração apresentada no
próximo gráfico, no qual temos um modelo gráfico de resolução de uma
EDO de 1ª ordem em que foram utilizadas 6 aproximações sucessivas.
Gráfico: Aproximações sucessivas da solução de uma EDO a partir do emprego do método de
Euler.
Extraido de Moura, 2017, p. 108
Aqui, vemos que a função f(x) é calculada não só em x0 e x1, mas nos
cinco pontos intermediários que foram representados no gráfico
(1,2,3,4,5). Vamos ver agora a operação numérica em si? Para fins de
exemplificação, consideraremos a EDO de 1ª ordem dada por:
O objetivo é encontrar o valor da função y = f(x) em x = 2, sabendo-se
que y(1) = 2. Como fazer isso?
Em primeiro lugar, considere a equação de Euler dada por
.
dy
dx
= 3x − 1
yn+1 = yn + hf (xn, yn)
Podemos substituir a expressãof(xn,yn) pela função dada no enunciado.
Desse modo, temos que .
Uma vez que temos uma expressão matemática para avaliar e o valor
correspondente da função no ponto inicial (afinal, estamos tratando de
um problema de valor inicial, neste exemplo, x = 1), é hora de escolher o
passo h para realização dos cálculos associados. A título de ilustração,
considere um quinto do intervalo; logo, .
Dadas as informações anteriores, constrói-se uma tabela com os
valores intermediários, no modo apresentado a seguir:
n x y
0 1,0 2,0
1 1,2
2,0 + 0,2 x (3 X 1
1) = 2,0 + 0,2 x 2
2,4
2 1,4
2,4 + 0,2 x (3 x 1
1) = 2,4 + 0,2 x 2
2,92
3 1,6
2,92 + 0,2 x (3 x 
- 1) = 2,92 + 0,2 
3,2 = 3,56
4 1,8
3,56 + 0,2 x (3 x 
- 1) = 3,56 + 0,2 
3,8 = 4,32
5 2,0
4,32 + 0,2 x (3 x 
- 1) = 4,32 + 0,2 
4,4 = 5,2
Dessa maneira, chegamos ao resultado procurado (y(2)), que assume o
valor de 5,2, conforme indicado ao final da tabela que acabamos de
analisar.
Vamos fazer alguns exercícios adicionais?
yn+1 = yn + h(3x − 1)
h = 2−1
5
= 0, 2
Exercício 1 
Apresente o valor de y(1) em face da resolução da EDO de 1ª
ordem y’ = cos(y) + sen(y), sendo y(0) = 3. Considere h = 0,1 e
utilize o método de Euler.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = cos(y) + sen(y);
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Euler, temos o resultado indicado a seguir.
n x y
0 0 3
1 0,1 2,915
2 0,2 2,840
3 0,3 2,774
4 0,4 2,717
5 0,5 2,667
6 0,6 2,624
7 0,7 2,554
8 0,8 2,554
n x y
9 0,9 2,502
10 1 2,502
Diante do emprego do método de Euler para resolução da EDO de
1ª ordem y’ = cos(y) + sen(y), sendo y(0) = 3 e considerando h =
0,1, temos que y(1) é igual a 2,502.
Apresente o valor de y(1) em face da resolução da EDO de 1ª
ordem y’ = 2y + 3, sendo y(0) = 3. Considere h = 0,1 e utilize o
método de Euler.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = 2y + 3;
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Euler, temos o resultado indicado a seguir.
n x y
0 0 3
1 0,1 3,9
Exercício 2 
n x y
2 0,2 4,98
3 0,3 6,276
4 0,4 7,831
5 0,5 9,697
6 0,6 11,937
7 0,7 14,624
8 0,8 17,849
9 0,9 21,719
10 1 26,363
Diante do emprego do método de Euler para resolução da EDO de
1ª ordem y’ = 2y + 3, sendo y(0) = 3 e considerando h = 0,1,
temos que y(1) é igual a 26,362.
Apresente o valor de y(1) em face da resolução da EDO de 1ª
ordem y’ = x.y, sendo y(0) = 3. Considere h = 0,1 e utilize o
método de Euler.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = x.y;
Exercício 3 
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Euler, temos o resultado indicado a seguir.
n x y
0 0 3
1 0,1 3
2 0,2 3,03
3 0,3 3,03
4 0,4 3,183
5 0,5 3,183
6 0,6 3,476
7 0,7 3,685
8 0,8 3,943
9 0,9 4,258
10 1 4,641
Diante do emprego do método de Euler para resolução da EDO de
1ª ordem y’ = x.y, sendo y(0) = 3 e considerando h = 0,1, temos
que y(1) é igual a 4,641.
Apresente o valor de y(2) em face da resolução da EDO de 1ª
ordem y’ = cos(y) + sen(y), sendo y(1) = 3. Considere h = 0,1 e
utilize o método de Euler.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
Exercício 4 
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos que:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = cos(y) + sen(y);
- O ponto inicial é 1;
- O ponto final é 2;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Euler, temos o resultado indicado a seguir.
n x y
0 1 3
1 1,1 2,915
2 1,2 2,840
3 1,3 2,774
4 1,4 2,717
5 1,5 2,667
6 1,6 2,624
7 1,7 2,586
8 1,8 2,554
9 1,9 2,526
10 2 2,502
Diante do emprego do método de Euler para resolução da EDO de
1ª ordem y’ = cos(y) + sen(y), sendo y(1) = 3 e considerando h =
0,1, temos que y(2) é igual a 2,502.
Apresente o valor de y(2) em face da resolução da EDO de 1ª
ordem y’ = 2y + 3, sendo y(1) = 3. Considere h = 0,1 e utilize o
método de Euler.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = 2y + 3;
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Euler, temos o resultado indicado a seguir.
n x y
0 0 3
1 0,1 3,9
2 0,2 4,98
3 0,3 6,276
4 0,4 7,831
Exercício 5 
n x y
5 1,5 9,697
6 0,6 11,937
7 0,7 14,624
8 0,8 17,849
9 0,9 21,719
10 1 26,363
Diante do emprego do método de Euler para resolução da EDO de
1ª ordem y’ = 2y + 3, sendo y(1) = 3 e considerando h = 0,1,
temos que y(2) é igual a 26,362.
Apresente o valor de y(2) em face da resolução da EDO de 1ª
ordem y’ = x.y, sendo y(1) = 3. Considere h = 0,1 e utilize o
método de Euler.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = x.y;
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Exercício 6 
Aplicando os conceitos ensinados neste conteúdopara o
método de Euler, temos o resultado indicado a seguir.
n x y
0 0 3
1 0,1 3,3
2 0,2 3,663
3 0,3 4,103
4 0,4 4,636
5 1,5 5,285
6 0,6 6,078
7 0,7 7,050
8 0,8 8,249
9 0,9 9,733
10 1 11,583
Diante do emprego do método de Euler para resolução da EDO de
1ª ordem y’ = x.y, sendo y(1) = 3 e considerando h = 0,1, temos
que y(2) é igual a 11,583.
Vamos ver agora como utilizar o método de Euler para resolver
equações diferenciais ordinárias de primeira ordem em Python? Por
exemplo, resolveremos o problema de valor inicial dado por
 para encontrar o valor da função y = f(x) em x
= 1. Para tal, consideraremos h = 6.
Veja o código a seguir:

u′(t) = 2u(t),u(0) = 1
Apesar de sua simplicidade, é importante destacar o resultado final
obtido: y(1) = 5,378, que é bastante diferente do resultado real (e2 =
7,389).
Aplicando o Método de Euler em
Python
Entenda melhor como modelar o problema matemático e criar os
códigos em Python. Vamos lá!

Falta pouco para atingir seus objetivos.
Vamos praticar alguns conceitos?
Questão 1
Considere que a queda de tensão V em um circuito elétrico, do
ponto de alimentação até a carga, seja expressa por meio de uma
EDO de 1ª ordem , sendo y(0) = 3.000 volts.
Dado que a distância é medida em quilômetros, assinale a única
alternativa que apresenta o valor da tensão a 1 quilômetro do ponto
de alimentação. Para tal, utilize o método de Euler e o intervalo de
aproximação (h) igual a 0,2.
V ′ = e−3V − 1000
Parabéns! A alternativa A está correta.
A resolução do problema de valor inicial em equações diferenciais
ordinárias de primeira ordem requer que o enunciado forneça
alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é V' = e-3V - 1000
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,2; e
- O valor da função no ponto inicial é 3000.
Aplicando os conceitos ensinados neste conteúdo para o método
de Euler, temos:
n x y
0 0 3000
A 2000
B 2200
C 2400
D 2600
E 2800
n x y
1 0,2 2800
2 0,4 2600
3 0,6 2400
4 0,8 2200
5 1,0 2000
Questão 2
Considere que a temperatura T de um produto em um processo de
embalagem varie com o tempo de acordo com uma EDO de 1ª
ordem T’ = -1,2.T, sendo y(0) = 30 graus Celsius. Dado que o tempo
é medido em horas, assinale a única alternativa que apresenta o
valor da temperatura do produto após 1 hora da conclusão do
processo de embalagem. Para tal, utilize o método de Euler e o
intervalo de aproximação (h) igual a 0,2.
Parabéns! A alternativa A está correta.
A resolução do problema de valor inicial em equações diferenciais
ordinárias de primeira ordem requer que o enunciado forneça
A 7,6
B 10,0
C 13,2
D 17,3
E 22,8
alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é T' = -1,2T;
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,2; e
- O valor da função no ponto inicial é 30.
Aplicando os conceitos ensinados neste conteúdo para o método
de Euler, temos:
n x y
0 0 30
1 0,2 22,8
2 0,4 17,3
3 0,6 13,2
4 0,8 10
5 1,0 7,6
2 - Método de Runge-Kutta
Ao �nal deste módulo, você será capaz de reconhecer o método de Runge-Kutta para
resolução numérica de equações diferenciais ordinárias de primeira ordem, aplicando-o em
situações-problema típicas em Engenharia por meio da implementação computacional em
Python.
Método de Runge-Kutta
Apesar da simplicidade, o método de Euler apresenta grande limitação
quanto à precisão de suas respostas, pois requer grande quantidade de
intervalos para cálculo e resolução de um problema de valor inicial.
Para fins de comparação, analisaremos novamente a equação
diferencial ordinária estudada no módulo 1, ou seja:
Isso posto, é importante lembrar que essa EDO de 1ª ordem apresenta
uma solução analítica exata, expressa pela função
. Assim, com uma simples substituição do valor
da variável x por 2, vemos que o valor correto para x = 2 é y = f(x) = 5,5.
dy
dx
= 3x − 1
f(x) = 32 x
2 − x + 32
Por que há essa diferença? Esse desvio ocorre em função
do erro implícito ao método de Euler.
Como mencionado, é recomendada a utilização de uma quantidade
maior de subintervalos entre os pontos inicial e final para corrigir tal
imprecisão ― ou o emprego do Método de Runge-Kutta.
Diante das duas alternativas indicadas no parágrafo anterior, é
importante desde já você perceber que, em casos práticos, recomenda-
se o emprego do Método de Runge-Kutta. Nesse método, o cálculo de
yn+1 também é feito a partir de yn, só que dado pela execução
sequencial das quatro expressões apresentadas a seguir:
Quer ver como isso ocorre na prática?
Utilizaremos a mesma EDO de 1ª ordem já mencionada, ou seja:
Mais uma vez, o objetivo é encontrar o valor da função y = f(x) em x = 2,
tendo como condição inicial que y(1) = 2. De igual modo, repetiremos o
valor do intervalo de cálculo – ou seja, h = 0,2, como no exemplo de
aplicação do método de Euler.
Dessa maneira, as expressões de Runge-Kutta apresentadas assumem a
seguinte forma:
Se nós executarmos novamente o método aplicado, mas agora para
, conseguiremos construir uma tabela
k1 = h. f (xn, yn)k2 = h. f (xn +
h
2
, yn +
k1
2
)k3 = h. f (xn +
h
2
, yn +
k2
2
)k4
= h. f (xn + h, yn + k3)yn+1 = yn +
k1
6
+
k2
3
+
k3
3
+
k4
6
dy
dx
= 3x − 1
k1 = h ⋅ (3x − 1) = 0, 2 ⋅ (3 ⋅ 1 − 1) = 0, 4 ⋅ k2 = h ⋅ f (1 +
0, 2
2
, 2 +
0, 4
2
) = 0, 2 ⋅ (3
= 0, 46k3 = h ⋅ f (1 +
0, 2
2
, 2 +
0, 46
2
) = 0, 2 ⋅ (3 ⋅ 1, 1 − 1) = 0, 46k
= h ⋅ f(1 + 0, 2, 2 + 0, 46) = 0, 2 ⋅ (3 ⋅ 1, 2 − 1) = 0, 52y1
= y0 +
k1
6
+
k2
3
+
k3
3
+
k4
6
= 2 +
0, 4
6
+
0, 46
3
+
0, 46
3
+
0, 52
6
=
yn+1 em n ∈ ∖{1, 2, 3, 4, 5∖}
com os valores intermediários no modo apresentado a seguir, a fim de
se obter a resposta do método:
n x y
0 1,0 2,0
1 1,2 2,46
2 1,4 3,04
3 1,6 3,74
4 1,8 4,56
5 2,0 5,5
Veja que, desta vez, nós obtivemos o resultado y(2) = 5,5, que é
exatamente o valor indicado pelo método analítico citado ao final da
exposição do método de Euler.
De mesma forma que fizemos com o método de Euler, agora faremos
alguns exercícios adicionais com o método de Runge-Kutta. Para que
você consiga perceber bem as diferenças entre os métodos,
resolveremos os mesmos exercícios do módulo 1, mas agora com a
nova técnica que acabamos de aprender. Veja!
Apresente o valor de y(1) em face da resolução da EDO de 1ª
ordem y’ = cos(y) + sen(y), sendo y(0) = 3. Considere h = 0,1 e
utilize o método de Runge-Kutta.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Exercício 1 
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = cos(y) + sen(y);
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Runge-Kutta, temos o resultado indicado a seguir.
n x y
0 0 3
1 0,1 2,920
2 0,2 2,849
3 0,3 2,786
4 0,4 2,731
5 0,5 2,682
6 0,6 2,640
7 0,7 2,603
8 0,8 2,603
9 0,9 2,542
10 1 2,518
Diante do emprego do método deRunge-Kutta para resolução da
EDO de 1ª ordem y’ = cos(y) + sen(y), sendo y(0) = 3 e
considerando h = 0,1, temos que y(1) é igual a 2,518.
Exercício 2 
Apresente o valor de y(1) em face da resolução da EDO de 1ª
ordem y’ = 2y + 3, sendo y(0) = 3. Considere h = 0,1 e utilize o
método de Runge-Kutta.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = 2y + 3;
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Runge-Kutta, temos o resultado indicado a seguir.
n x y
0 0 3
1 0,1 3,996
2 0,2 5,213
3 0,3 5,213
4 0,4 8,515
5 0,5 10,732
6 0,6 13,440
7 0,7 16,748
n x y
8 0,8 20,788
9 0,9 25,723
10 1 31,750
Diante do emprego do método de Runge-Kutta para resolução da
EDO de 1ª ordem y’ = 2y + 3, sendo y(0) = 3 e considerando h =
0,1, temos que y(1) é igual a 31,750.
Apresente o valor de y(1) em face da resolução da EDO de 1ª
ordem y’ = x.y, sendo y(0) = 3. Considere h = 0,1 e utilize o
método de Runge-Kutta.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = x.y;
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Runge-Kutta, temos o resultado indicado a seguir.
Exercício 3 
n x y
0 0 3
1 0,1 3,015
2 0,2 3,061
3 0,3 3,138
4 0,4 3,250
5 0,5 3,399
6 0,6 3,592
7 0,7 3,833
8 0,8 4,131
9 0,9 4,498
10 1 4,946
Diante do emprego do método de Runge-Kutta para resolução da
EDO de 1ª ordem y’ = x.y, sendo y(0) = 3 e considerando h = 0,1,
temos que y(1) é igual a 4,946.
Apresente o valor de y(2) em face da resolução da EDO de 1ª
ordem y’ = cos(y) + sen(y), sendo y(1) = 3. Considere h = 0,1 e
utilize o método de Runge-Kutta.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
Exercício 4 
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = cos(y) + sen(y);
- O ponto inicial é 1;
- O ponto final é 2;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Runge-Kutta, temos o resultado indicado a seguir.
n x y
0 1 3
1 1,1 2,920
2 1,2 2,849
3 1,3 2,786
4 1,4 2,731
5 1,5 2,682
6 1,6 2,640
7 1,7 2,603
8 1,8 2,571
9 1,9 2,542
10 2 2,518
Diante do emprego do método de Runge-Kutta para resolução da
EDO de 1ª ordem y’ = cos(y) + sen(y), sendo y(1) = 3 e
considerando h = 0,1, temos que y(2) é igual a 2,518.
Exercício 5 
Apresente o valor de y(2) em face da resolução da EDO de 1ª
ordem y’ = 2y + 3, sendo y(1) = 3. Considere h = 0,1 e utilize o
método de Runge-Kutta.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = 2y + 3;
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Runge-Kutta, temos o resultado indicado a seguir.
n x y
0 0 3
1 0,1 3,996
2 0,2 5,213
3 0,3 6,699
4 0,4 8,515
5 0,5 10,732
6 0,6 13,440
7 0,7 16,748
n x y
8 0,8 20,788
9 0,9 25,723
10 1 31,750
Diante do emprego do método de Runge-Kutta para resolução da
EDO de 1ª ordem y’ = 2y + 3, sendo y(1) = 3 e considerando h =
0,1, temos que y(2) é igual a 31,750.
Apresente o valor de y(2) em face da resolução da EDO de 1ª
ordem y’ = x.y, sendo y(1) = 3. Considere h = 0,1 e utilize o
método de Runge-Kutta.
Para tal, como vimos, a resolução do problema de valor inicial
em equações diferenciais ordinárias de primeira ordem requer
que o enunciado forneça alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é y' = x.y;
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 3.
Aplicando os conceitos ensinados neste conteúdo para o
método de Runge-Kutta, temos o resultado indicado a seguir.
Exercício 6 
n x y
0 0 3
1 0,1 3,666
2 0,2 3,666
3 0,3 4,236
4 0,4 4,848
5 0,5 5,605
6 0,6 6,544
7 0,7 7,718
8 0,8 9,195
9 0,9 11,063
10 1 13,445
Diante do emprego do método de Runge-Kutta para resolução da
EDO de 1ª ordem y’ = x.y, sendo y(1) = 3 e considerando h = 0,1,
temos que y(2) é igual a 13,445.
Agora, trataremos da implementação do método de Runge-Kutta em
Python. Mais uma vez, resolveremos o problema de valor inicial dado
por para encontrar o valor da função y = f(x)
em x = 1. Para tal, consideraremos h = 6. Veja o código a seguir:

u′(t) = 2u(t),u(0) = 1
Como indicado ao longo do conteúdo, o resultado (y(1) = 7,387) ilustra
como a precisão deste método é muito melhor.
Aplicando o método de Runge-Kutta
em Python
Acompanhe a seguir como modelar o problema matemático e criar os
códigos em Python. Vamos lá!

Falta pouco para atingir seus objetivos.
Vamos praticar alguns conceitos?
Questão 1
Considere que a queda de tensão V em um circuito elétrico, do
ponto de alimentação até a carga, seja expressa por meio de uma
EDO de 1ª ordem , sendo y(0) = 3.000 volts.
Dado que a distância é medida em quilômetros, assinale a única
alternativa que apresenta o valor da tensão a 1 quilômetro do ponto
de alimentação. Para tal, utilize o método de Runge-Kutta e o
intervalo de aproximação (h) igual a 0,1.
V ′ = e−3V − 1000
A 2000
Parabéns! A alternativa A está correta.
A resolução do problema de valor inicial em equações diferenciais
ordinárias de primeira ordem requer que o enunciado forneça
alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é V' = e-3V - 1000
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e- O valor da função no ponto inicial é 3000.
Aplicando os conceitos ensinados neste conteúdo para o método
de Runge-Kutta, temos:
n x y
0 0 3000
1 0,1 2900
B 2200
C 2400
D 2600
E 2800
n x y
2 0,2 2800
3 0,3 2700
4 0,4 2600
5 0,5 2500
6 0,6 2400
7 0,7 2300
8 0,8 2200
9 0,9 2100
10 1 2000
Questão 2
Considere que a temperatura T de um produto em um processo de
embalagem varie com o tempo de acordo com uma EDO de 1ª
ordem , sendo y(0) = 30 graus Celsius. Dado que o
tempo é medido em horas, assinale a única alternativa que
apresenta o valor da temperatura do produto após 1 hora da
conclusão do processo de embalagem. Para tal, utilize o método de
Runge-Kutta e o intervalo de aproximação (h) igual a 0,1.
T′ = −1, 2. T
A 9,04
B 10,19
C 11,49
D 12,95
Parabéns! A alternativa A está correta.
A resolução do problema de valor inicial em equações diferenciais
ordinárias de primeira ordem requer que o enunciado forneça
alguns elementos importantes, como:
- A equação diferencial ordinária de primeira ordem propriamente
dita;
- O ponto inicial;
- O ponto final;
- A quantidade de intervalos (ou o tamanho de cada intervalo); e
- O valor da função no ponto inicial.
Neste exemplo, temos:
- A equação diferencial ordinária de primeira ordem propriamente
dita é T' = -1,2T
- O ponto inicial é 0;
- O ponto final é 1;
- O tamanho de cada intervalo é 0,1; e
- O valor da função no ponto inicial é 30.
Aplicando os conceitos ensinados neste conteúdo para o método
de Runge-Kutta, temos:
n x y
0 0 30
1 0,1 26,61
2 0,2 23,60
3 0,3 20,93
4 0,4 18,56
5 0,5 16,46
6 0,6 14,60
E 14,60
n x y
7 0,7 12,95
8 0,8 11,49
9 0,9 10,88
10 1 9,04
Considerações �nais
Neste conteúdo, você aprendeu que é possível empregar modelos
matemáticos para resolução de problemas de valor inicial associados a
equações diferenciais ordinárias de primeira ordem.
Também estudou os principais métodos associados: Euler e Runge-
Kutta. O método de Euler é caracterizado pela simplicidade, mas requer
uma grande quantidade de passos para que apresente um resultado
mais preciso. Por sua vez, o método de Runge-Kutta apresenta melhores
resultados a partir do emprego de uma fórmula mais elaborada de
aproximação do valor real.
Além disso, você também pôde identificar como a implementação
desses modelos em ferramentas de suporte computacional é simples.
Em particular, apresentamos exemplos de implementação em Python,
automatizando procedimentos e permitindo a rápida resolução desses
métodos.
Por fim, você não só conheceu os métodos, mas também sua
implementação em ambiente computacional, de modo a utilizar essa
importante ferramenta para a resolução de problemas clássicos e
variados em Engenharia. Bons estudos e sucesso!

Podcast
Para encerrar, ouça um breve resumo sobre o conteúdo que você
acabou de aprender.
Explore +
Há muitos materiais adicionais que podem complementar e ampliar seu
conhecimento acerca dos métodos de resolução de equações
diferenciais ordinárias de primeira ordem. Recomendamos, entre eles, a
seguinte lista:
BURIAN, R.; LIMA, A. C. de; HETEM JUNIOR, A. (Coord.). Fundamentos
de Informática – cálculo numérico. Rio de Janeiro: LTC, 1997.
CLAUDIO, D. M. Cálculo numérico computacional: teoria e prática. São
Paulo: Atlas, 1989.
FRANCO, N. B. Cálculo numérico. São Paulo: Pearson Prentice-Hall,
2006.
RUGGIERO, M. A. G.; LOPES, V. L. R. Cálculo numérico: aspectos teóricos
e computacionais. 2. ed. São Paulo: Makron Books, 1998.
Referências
BURIAN, R.; LIMA, A. C. Cálculo numérico. Rio de Janeiro: LTC, 2007.
MOURA, D. F. C. Cálculo numérico. Rio de Janeiro: SESES, 2017. 144 p.
UFRGS (colaborativo). Cálculo numérico: um livro colaborativo versão
Python. Porto Alegre: UFRGS, 2019.
Material para download
Clique no botão abaixo para fazer o download do
conteúdo completo em formato PDF.
Download material
O que você achou do conteúdo?
Relatar problema
javascript:CriaPDF()

Mais conteúdos dessa disciplina