Você está na página 1de 24

Capítulo VII: Soluções Numéricas de Equações Diferenciais Ordinárias

0. Introdução

Muitos fenómenos nas áreas das ciências, engenharias, economia, etc., são
modelados por equações diferenciais. Suponha-se que se quer determinar a posição
de um corpo em movimento, e que apenas se conhece a sua velocidade ou a sua
aceleração. No fundo, quer determinar-se uma função desconhecida, utilizando certos
dados, relacionados por uma equação que contém, pelo menos, uma das derivadas
dessa função. Estas equações chamam-se equações às derivadas ou equações
diferenciais.

Tal como acontece com o cálculo do integral de uma função, os métodos analíticos
para a resolução de equações diferenciais aplicam-se apenas a certos tipos de
problemas. Por isso recorre-se com frequência ao uso de métodos numéricos para
obter a solução de uma equação diferencial sujeita a uma dada condição.

1. Definição e conceitos básicos de equações diferenciais

Uma equação diferencial é uma equação que envolve uma função desconhecida
(incógnita) e suas derivadas.

Definição: Seja y uma função de x e n um número inteiro positivo, então uma


relação de igualdade que envolva x, y, y’, y’’,...,y(n) é chamada uma equação
diferencial ordinária (EDO).
2 2
yd y ⎛ dy ⎞
Exemplo: e + 2⎜ ⎟ = 1
dx 2 ⎝ dx ⎠

Página 1 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


Se a função desconhecida depende de mais do que uma variável, as derivadas que
aparecem na equação diferencial são derivadas parciais, e a equação chama-se
equação diferencial parcial (EDP).
2
d2y ⎛d2y⎞
Exemplo: − 4⎜ ⎟ =0
2 ⎜ 2 ⎟
dt ⎝ dx ⎠

A ordem de uma equação diferencial é a ordem da derivada mais elevada da função


incógnita presente na equação.

Exemplos:
Equação Diferencial Ordem São do tipo
Ordinária
y’=f(x,y)
y’=x2+y2 1
3
⎛ d2y ⎞
7 5
⎛ dy ⎞ ⎛ dy ⎞
⎜⎜ 2 ⎟⎟ + 3y⎜ ⎟ + y 3 ⎜ ⎟ = 5x y’’=f(x,y, y’)
⎝ dx ⎠ ⎝ dx ⎠ ⎝ dx ⎠ 2
y(3)=f(x,y,y’,y’’)
(y’’’)4-x2(y’’)5+4xy=xex 3
y(4)=f(x,y,y’,y’’,y(3))
x3 y’=( y(4) )3 –1 4

M M M

Uma solução de uma equação diferencial na função incógnita y e na variável


independente x é uma função y(x) que verifica a equação para todo o x.

Exemplo: y( x ) = c1sen( 2 x ) + c2 cos( 2 x ) (com c1 ,c2 constantes arbitrárias) é

solução da equação diferencial y' ' + 4 y = 0 .


Sendo, y( x ) = c1sen( 2 x ) + c2 cos( 2 x )

Página 2 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


⇒ y' ( x ) = 2c1 cos( 2 x ) − 2c2 sen( 2 x )

⇒ y' ' ( x ) = −4c1sen( 2 x ) − 4c2 cos( 2 x )

substituindo na equação diferencial, vem que

(− 4c1sen( 2 x ) − 4c2 cos( 2 x )) + 4(c1sen( 2 x ) + c2 cos( 2 x )) = 0 , isto é,

verificam a equação.

Uma solução particular (ou integral particular) de uma equação diferencial é


qualquer solução da mesma. A solução geral (ou integral geral) de uma equação
diferencial é o conjunto de todas as soluções.

Exemplo:
y( x ) = c1sen( 2 x ) + c2 cos( 2 x ) com c1 ,c2 ∈ IR , é a solução geral da equação

diferencial y' ' + 4 y = 0 ; enquanto y( x ) = sen( 2 x ) + cos( 2 x ) é uma solução


particular com c1 = c2 = 1.

Um problema de valor inicial (PVI) consiste numa equação diferencial, juntamente


com condições relativas à função incógnita e suas derivadas dadas para o mesmo
valor da variável independente.

⎧ y '' + 4 y = 0

Exemplo: ⎨ y ( 0) = 0 PVI de 2ª ordem.
⎪ '
⎩ y ( 0) = 2

Página 3 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


Uma solução de um PVI é uma função y=f(x) que satisfaz a equação diferencial e
todas as condições relativas à função incógnita.

Vamos, a seguir, ver métodos numéricos para a resolução de EDO’s.

2. Métodos Numéricos para a resolução de Equações Diferenciais Ordinárias

Definição do problema
Neste capítulo consideraremos o problema de determinar a função y=y(x) que
satisfaz simultaneamente a equação diferencial (1ª ordem) e a condição inicial:

⎧ y'(x) = f(x, y(x)), x ∈ [a, b]



⎨ (7.1)
⎪ y(x ) = y , x 0 ∈ [a, b]
⎩ 0 0

Este é chamado um problema de valor inicial (PVI) de 1ª ordem.

Existência e unicidade de solução

Teorema:
Seja f definida e contínua em D={(x,y): a ≤ x ≤ b, y ∈ IR } com a e b
df
finitos. Seja contínua e limitada em D. Então ∀x 0 ∈ [a, b] e y 0 ∈ IR , o
dy
problema (7.1) tem solução única continuamente diferenciável para x ∈ [a, b] . ■

Estudaremos métodos, chamados métodos de variável discreta, para resolver


problemas de valor inicial da forma (7.1).

Página 4 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


Assim, estes métodos determinam aproximações para a solução y(x) num conjunto
discreto de pontos x0, x1, x2, ..., da variável independente. Isto é, a solução
aproximada obtida é apresentada por uma tabela de valores
( xn, yn ), n=1,2, ...,
onde
yn ≅ y(xn).

Para obter a solução y(x) em pontos x ∈ [a,b] diferentes de xn (n = 0, 1, ...) pode usar-
se interpolação.

Vamos considerar apenas o caso em que o passo h é constante, tendo-se


xn+1 = xn + h = x0 + (n+1)h, n = 0, 1,....

Apresentaremos apenas métodos da classe de métodos de passo único, isto é, o valor


de yn+1 pode ser calculado se apenas yn é conhecido.

Suponhamos que o PVI (7.1) satisfaz as condições de existência e unicidade de


solução, vai tentar-se encontrar uma solução numérica para o problema.
b−a
Considerem-se m subintervalos de [a, b], (m≥1), e seja xj = x0 + jh onde h = ,
m
j=0,...,m e xj∈[a,b]. Ao conjunto Ih={x0,x1,...,xm} obtido da forma anterior chama-se
rede ou malha de [a,b].

O objectivo dos métodos numéricos é o cálculo das aproximações y1, y2, ..., ym para
as soluções exactas y(x1), y(x2),..., y(xm).

Notação: y(xj), j=0,...,m ⎯ solução exacta do PVI nos pontos xj∈Ih


y(xj) ≅ yj ⎯ significa que yj é aproximação para y(xj), xj∈Ih.

Página 5 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


2.1. Método de série de Taylor

2.1.1. Método de Taylor de 1ª ordem ( método de Euler )

O método de Euler é um método de passo único e o mais simples de todos os


métodos numéricos para problemas de valor inicial.

Consideremos então o problema definido por (7.1).

Se y é continuamente diferenciável até à segunda ordem em [a,b] e xn, xn+1∈[a,b],


então, pela fórmula de Taylor,

' h 2 ''
y(x n +1 ) = y(x n ) + h.y (x n ) + y (ξ n ), onde x n < ξ n < x n +1 . (7.2)
2
Donde, da equação diferencial de (7.1) e de (7.2) concluimos que

h 2 ''
y(x n +1 ) = y(x n ) + h.f(x n , y(x n )) + y (ξ n ).
2
h 2 ''
Se h é “pequeno” o termo y (ξ n ) será também “pequeno” e podemos escrever
2

y(x n +1 ) ≅ y(x n ) + h.f(x n , y(x n )).

O método de Euler consiste, então, em calcular recursivamente a sucessão {yj}


através das fórmulas:

⎧y 0 = y(x 0 )

⎨ (7.3) .
⎪y
⎩ j+1 = y j + h.f(x j , y j ), j = 0,..., m − 1

Página 6 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


Exemplo
⎧ y' = x − y + 2
Achar aproximações para a solução do PVI ⎨
⎩ y( 0 ) = 2
na malha [0,1] com h=0.2, usando o método de Euler.

Resolução:
Tem-se que x0=0 e y0=2.
b − a 1− 0
Além disso, m = = = 5 ⇒ m -1 = 4 .
h 0.2

A fórmula de recorrência será:

⎧y 0 = 2


⎪y
⎩ j+1 = y j + h.f(x j , y j ), j = 0,1,2,3,4.

⎧y 0 = 2

⇔ ⎨
⎪y ( )
⎩ j+1 = y j + 0.2 * x j - y j + 2 , j = 0,1,2,3,4.

1ª iteração

y1 = y0 + 0.2*(x0 - y0 + 2) ⇔ y1 = 2 + 0.2*(0 – 2 + 2) ⇔ y1 = 2

x1 = 0 + 0.2 = 0.2

2ª iteração

y2 = y1 + 0.2*(x1 - y1 + 2) ⇔ y2 = 2 + 0.2*(0.2 – 2 + 2) ⇔ y2 = 2.04

x2 = 0.2 + 0.2 = 0.4

Página 7 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


3ª iteração
y3 = y2 + 0.2*(x2 - y2 + 2) ⇔ y3 = 2.04 + 0.2*(0.4 - 2.04 + 2) ⇔ y3 = 2.112

x3=0.4+0.2=0.6

4ª iteração
y4 = y3 + 0.2*(x3 - y3 + 2) ⇔ y4 = 2.112+0.2(0.6-2.112+2) ⇔ y4 = 2.2096

x4 = 0.6 + 0.2 = 0.8

5ª iteração
y5 = y4 + 0.2*(x4 - y4 +2) ⇔ y5 = 2.2096+0.2*(0.8-2.2096+2) ⇔ y5=2.3277

x5 = 0.8 + 0.2 = 1

As soluções aproximadas para o PVI na malha [0, 1] com passo h=0.2 são
{ 2 , 2.04 , 2.112 , 2.2096 , 2.3277 }.

Erros de discretização
Supondo que se conhece exactamente o valor de y(xn), ao aproximar

y(x n +1 ) ≅ y(x n ) + h.f(x n , y(x n ))

introduz-se um erro, chamado erro de truncatura (ou discretização) local.

h 2 ''
Este erro é igual a y (ξ n ), ξ ∈ ]x n , x n +1[ , e é o erro de truncatura
2
introduzido no passo de xn para xn+1.

Contudo, ao calcular uma aproximação para y(xn+1) pelo método de Euler (7.3), o
valor yn usado é uma aproximação para y(xn). O valor yn foi calculado usando uma

Página 8 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


aproximação yn-1 para y(xn-1) e assim sucessivamente. Assim, no cálculo da
aproximação yn+1 para y(xn+1) tem-se não só o erro de discretização local
introduzido nesse passo mas também o erro resultante da acumulação de erros de
discretização local introduzido nos passos anteriores.
A en = y(x n ) − y n chama-se erro de truncatura (ou discretização) global.

Convergência do método de Euler


A aproximação da solução num ponto xn converge para a solução exacta nesse
ponto, y(xn), quando o passo h tende para zero, isto é,
lim y n = y (x n ) .
h→0
x −x0
h= n
n

Comentários

™ O método de Euler não é muito usado uma vez que os resultados obtidos têm,
em geral, pouca precisão, a não ser que se seleccione uma valor para o passo
demasiado pequeno o que torna o processo demasiado lento.

™ O método foi deduzido truncando o desenvolvimento dado pela fórmula de


Taylor de segunda ordem antes do termo em h2.

2.1.2. Método de Taylor de 2ª ordem

Consideremos o problema de valor inicial (7.1) e sejam x n , x n +1 ∈ [a, b].


Então, se y tem derivadas contínuas até à terceira ordem em [a,b], pela fórmula de
Taylor,

Página 9 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


' h 2 '' h 3 '''
y(x n + 1 ) = y(x n ) + h.y (x n ) + y (x n ) + y (ξ n ),
2 6

x n < ξ n < x n +1 .

Tem-se então, se h = xn+1 - xn é pequeno,

h 2 ''
y(x n +1 ) ≅ y(x n ) + h.y ' (x n ) + y (x n ).
2

Define-se o método de Taylor de 2ª ordem pela fórmula

⎧ y 0 = y(x 0 )

⎨ h2 '
⎪ y j+1 = y j + h.f(x j , y j ) + f (x j , y j ), j = 0,1,..., m - 1.
⎩ 2

onde: ( )
f ' x j, y j =
∂f
∂x
(
x j, y j +)∂f
∂y
( )(
x j , y j .f x j , y j .)

Exemplo
⎧ y' = x − y + 2
Achar aproximações para a solução do PVI ⎨
⎩ y( 0 ) = 2
na malha [0,1] com h=0.2, usando o método de Taylor de 2ª ordem.

Página 10 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


Resolução

Tem-se que x0=0 e y0=2.


b − a 1− 0
Além disso, m = = = 5 ⇒ m -1 = 4 .
h 0.2

método de Taylor de 2ª ordem

A fórmula de recorrência será:


⎧y 0 = 2


⎪y ( ) ( )
⎩ j+1 = y j + 0.2 * x j - y j + 2 + 0.02 * - x j + y j − 1) , j = 0,1,2,3,4.

⎧y 0 = 2

⇔ ⎨
⎪y
⎩ j+1 = 0.82y j + 0.18x j + 0.38, j = 0,1,2,3,4.

1ª iteração

y1 = 0.82*y0 + 0.18*x0 + 0.38 ⇔ y1 = 0.82*2 + 0.18*0 + 0.38 ⇔ y1 = 2.02

x1 = 0 + 0.2 = 0.2

2ª iteração

y2 = 0.82*y1 + 0.18*x1 + 0.38 ⇔ y2 = 0.82*2.02 + 0.18*0.2 + 0.38 = 2.0724

x2 = 0.2 + 0.2 = 0.4

Página 11 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


3ª iteração

y3 = 0.82*y2 + 0.18*x2 + 0.38 ⇔ y3 = 0.82*2.0724 + 0.18*0.4 + 0.38 = 2.151368

x3= 0.4 + 0.2 = 0.6

4ª iteração

y4 = 0.82*y3 + 0.18*x3 + 0.38 ⇔ y4 = 0.82*2.151368 + 0.18*0.6 + 0.38

⇔ y4 = 2.25212176

x4 = 0.6 + 0.2 = 0.8

5ª iteração

y5 = 0.82*y4 + 0.18*x4 + 0.38 ⇔ y5 = 0.82*2.25212176 + 0.18*0.8 + 0.38

⇔ y5 = 2.370739843

x5 = 0.8 + 0.2 = 1

As soluções aproximadas para o PVI na malha [0, 1] com passo h=0.2 são { 2.02 ,

2.0724 , 2.151368 , 2.25212176 , 2.370739843 }.

De modo similar se define o método de Taylor de 4ª ordem:

⎧y 0 = y(x 0 )

⎪⎪y h2 ' h 3 '' h 4 '''
= y j + h.f(x j , y j ) + f (x j , y j ) + f (x j , y j ) + f (x j , y j ),
⎨ j+1 2 6 24


⎪⎩ j = 0,1,..., m - 1.

Página 12 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


2.2. Métodos de Runge-Kutta

Os métodos de Runge-kutta foram desenvolvidos com o objectivo de produzirem


resultados com a mesma precisão que os obtidos pelo método de Taylor, mas
evitando o cálculo das derivadas.

Limitar-nos-emos a apresentar as fórmulas.

2.2.1. Métodos de Runge-Kutta de 2ª ordem

As fórmulas têm a forma geral

⎧ y 0 = y (x 0 )


⎪y [ ( ) ( ( ))]
⎩ j+1 = y j + h a .f x j , y j + b.f x j + α .h, y j + β .h.f x j , y j , j = 0,1,..., m - 1 .

sendo as constantes a , b ,α e β escolhidas de modo a que o erro de truncatura local


do método seja proporcional a h3 tal como no método de Taylor de
2ª ordem.
⎧a = 1 - b ,

Tal condição implica ⎨ 1 , sendo b arbitrário.
⎪⎩α = β =
2b

Substituindo na fórmula anterior a , α e β , obtemos

⎡ ⎞⎤
( ) ⎛ 1 1
( )
y j+1 = y j + h ⎢(1 − b )f x j , y j + b.f ⎜ x j + .h, y j + .h.f x j , y j ⎟⎥ ,
⎣ ⎝ 2b 2b ⎠⎦
j = 0,1,..., m - 1 .

Página 13 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


Apresentaremos aqui os dois métodos mais conhecidos de Runge-Kutta de
2ª ordem.

2.2.1.1. Método de Euler melhorado ( ou método de Heun )

1
Corresponde à escolha b = ,
2

⎧ y 0 = y (x 0 )

⎪ y j+1 = y j + h (k1 + k 2 )
⎪ 2

⎨ , j = 0,1, ..., m − 1.
(
⎪k = f x , y
⎪ 1 j j)
(
⎪k 2 = f x j + h , y j + h.k1
⎪⎩
)

Exemplo:
⎧ y' = x − y + 2
Achar aproximações para o PVI ⎨ na malha [0,1] com h=0.2, usando
⎩ y( 0 ) = 2
o método de Euler melhorado.

Resolução:

Tem-se que x0=0 e y0=2.


b − a 1− 0
Além disso, m = = = 5 ⇒ m -1 = 4 .
h 0.2

Página 14 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


A fórmula de recorrência será:

⎧y 0 = 2

⎪ y j+1 = y j + 0.1 * (k1 + k 2 ) ,

⎨ j = 0,1,2,3,4.

⎪ 1
(j j )
⎪k = f x , y = x - y + 2
j j
( )
⎪k 2 = f x j + 0.2 , y j + 0.2 * k1 = 0.8 * x j − 0.8 * y j + 1.8

1º iteração:

y1 = y0 + 0.1*(k1+ k2)

k1 = x0 - y0 + 2 ⇔ k1 = 0 – 2 + 2 ⇔ k1 = 0

k2 = 0.8x0 – 0.8y0 + 1.8 ⇔ k2 =0.8*0 – 0.8*2 + 1.8 ⇔ k2 = 0.2

donde y1 = 2 + 0.1*(0 + 0.2) = 2.02

e, x1 = 0 + 0.2 = 0.2

2º iteração:

y2 = y1 + 0.1*(k1+ k2)

k1 = x1 - y1 + 2 ⇔ k1 = 0.2 – 2.02 + 2 ⇔ k1 = 0.18

k2 = 0.8x1 – 0.8y1 + 1.8 ⇔ k2 =0.8*0.2 – 0.8*2.02 + 1.8 ⇔ k2 = 0.344

donde y2 = 2.02 + 0.1*(0.18 + 0.344) = 2.0724

e, x2 = 0.2 + 0.2 = 0.4

Página 15 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


3º iteração:

y3 = y2 + 0.1*(k1+ k2)

k1 = x2 – y2 + 2 ⇔ k1 = 0.4 – 2.0724 + 2 ⇔ k1 = 0.3276

k2 = 0.8x2 – 0.8y2 + 1.8 ⇔ k2 =0.8*0.4 – 0.8*2.0724 + 1.8 = 0.46208

donde y3 = 2.0724 + 0.1*(0.3276 + 0.46208) = 2.151368

e, x3 = 0.4 + 0.2 = 0.6

4º iteração:

y4 = y3 + 0.1*(k1+ k2)

k1 = x3 – y3 + 2 ⇔ k1 = 0.6 – 2.151368 + 2 ⇔ k1 = 0.448632

k2 = 0.8x3 –0.8y3 +1.8 ⇔ k2 = 0.8*0.6 – 0.8*2.151368 + 1.8 = 0.5589056

donde y4 = 2.151368 + 0.1*(0.448632 + 0.5589056) = 2.25212176

e, x4 = 0.6 + 0.2 = 0.8

5º iteração:

y5 = y4 + 0.1*(k1+ k2)

k1 = x4 – y4 + 2 ⇔ k1 = 0.8 – 2.25212176 + 2 ⇔ k1 = 0.54787824

k2 =0.8x4 –0.8y4 +1.8 ⇔ k2 = 0.8*(0.8 -2.25212176)+1.8 = 0.638302592

donde y5 = 2.25212176+ 0.1*(0.54787824 + 0.638302592)

⇔ y5 = 2.370739843

e, x5 = 0.8 + 0.2 = 1

Página 16 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


As soluções aproximadas para o PVI na malha [0, 1] com passo h=0.2 são:

{ 2.02 , 2.0724 , 2.151368 , 2.25212176 , 2.370739843 }.

2.2.1.2. Método de Euler modificado

Corresponde à escolha b = 1,

⎧y 0 = y (x 0 )


⎪y j+1 = y j + h.k 2 ,

⎨ j = 0,1, ..., m - 1.
(
⎪k = f x , y
⎪ 1 j j)
⎪ ⎛ h h ⎞
⎪k 2 = f ⎜ x j + , y j + .k1 ⎟
⎩ ⎝ 2 2 ⎠

Exemplo:
⎧ y' = x − y + 2
Achar aproximações para o PVI ⎨ , na malha [0,1] com h=0.2, usando
⎩ y( 0 ) = 2
o método de Euler modificado.
Resolucão:

Tem-se que x0=0 e y0=2.

b − a 1− 0
Além disso, m = = = 5 ⇒ m -1 = 4 .
h 0.2

Página 17 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


A fórmula de recorrência será:
⎧y0 = 2

⎪ y j+1 = y j + 0.2 * k 2 ,

⎨ j = 0,1,2,3,4.
⎪k = x - y + 2
⎪ 1 j j
( )
⎪k 2 = f x j + 0.1, y j + 0.1* k1 = 0.9 * x j − 0.9 * y j + 1.9

1º iteração:

y1 = y0 + 0.2*k2

k2 = 0.9*(x0 - y0) + 1.9 ⇔ k2 =0.9*(0 – 2) + 1.9 ⇔ k2 = 0.1

donde y1 = 2 + 0.2*0.1 = 2.02

e, x1 = 0 + 0.2 = 0.2

2º iteração:

y2 = y1 + 0.2*k2

k2 = 0.9*(x1 - y1) + 1.9 ⇔ k2 =0.9*(0.2 – 2.02) + 1.9 ⇔ k2 = 0.262

donde y2 = 2.02 + 0.2*0.262 = 2.0724

e, x2 = 0.2 + 0.2 = 0.4

Página 18 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


3º iteração:

y3 = y2 + 0.2*k2

k2 = 0.9*(x2 - y2) + 1.9 ⇔ k2 =0.9*(0.4 - 2.0724) + 1.9 = 0.39484

donde y3 = 2.0724 + 0.2*0.39484 = 2.151368

e, x3 = 0.4 + 0.2 = 0.6

4º iteração:

y4 = y3 + 0.2*k2

k2 = 0.9*(x3 - y3) + 1.9 ⇔ k2 =0.9*(0.6 –2.151368) + 1.9 = 0.5037688

donde y4 = 2.151368 + 0.2*0.5037688 = 2.25212176

e, x4 = 0.6 + 0.2 = 0.8

5º iteração:

y5 = y4 + 0.2*k2

k2 = 0.9*(x4 - y4) + 1.9 ⇔ k2 = 0.9*(0.8 - 2.25212176) + 1.9

⇔ k2 = 0.593090416

donde y5 = 2.25212176+ 0.2*(0.593090416) = 2.370739843

e, x5 = 0.8 + 0.2 = 1

Página 19 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


As soluções aproximadas para o PVI na malha [0, 1] com passo h=0.2 são:

{ 2.02 , 2.0724 , 2.151368 , 2.25212176 , 2.370739843 }.

2.2.1.3. Métodos de Runge-Kutta de 4ª ordem

Fórmulas de Runge-Kutta de ordem superior podem ser desenvolvidas com o mesmo


objectivo. A mais usada é a que corresponde ao método conhecido por método de
Runge-Kutta de 4ª ordem


⎪ y = y(x )
⎪ 0 0
⎪ h
⎪ y j+1 = y j + 6 (k1 + 2k 2 + 2k 3 + k 4 )

⎪ j = 0,..., m - 1.

⎨k1 = f(x j , y j )

⎪k 2 = f(x j + h , y j + h k1 ),
⎪ 2 2
⎪ h h
⎪k 3 = f(x j + , y j + k 2 )
⎪ 2 2
⎪k 4 = f(x j + h, y j + hk 3 )

Exemplo:
⎧ y' = x − y + 2
Achar aproximações para o PVI ⎨
⎩ y( 0 ) = 2

na malha [0,1] com h=0.2, usando o método de Euler modificado.

Página 20 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


Resolucão:

Tem-se que x0=0 e y0=2.


b − a 1− 0
Além disso, m = = = 5 ⇒ m -1 = 4 .
h 0.2

A fórmula de recorrência será:

⎧y 0 = 2
⎪ 0.2
⎪ y j+1 = y j + * (k1 + 2k 2 + 2k 3 + k 4 ) ,
⎪ 6
⎪ j = 0,1,2,3,4.

⎪k 1 = x j - y j + 2


⎪k 2 = f (x j + 0.1, y j + 0.1* k1 ) = 0.9 * x j − 0.9 * y j + 1.9


⎪k 3 = f (x j + 0.1, y j + 0.1* k 2 ) = 0.91* x j − 0.91 * y j + 1.91


⎪k = f (x + 0.2 , y + 0.2 * k ) = 0.818 * x − 0.818 * y + 1.818
⎩ 4 j j 3 j j

Cálculos auxiliares:
(
k1 = f x j , y j )
= xj − yj + 2

(
k 2 = f x j + 0.1 , y j + 0.1 * k1 )
( (
= f x j + 0.1 , y j + 0.1 * x j − y j + 2 ))
= f (x j + 0.1 , y j + 0.1 * x j − 0.1 * y j + 0.2)
= f (x j + 0.1 , 0.9 * y j + 0.1 * x j + 0.2 )
= x j + 0.1 − (0.9 * y j + 0.1 * x j + 0.2 ) + 2
= 0.9 * x j − 0.9 * y j + 1.9

Página 21 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


(
k 3 = f x j + 0.1 , y j + 0.1 * k 2)
= f (x j + 0.1 , y j + 0.1 * (0.9 * x j − 0.9 * y j + 1.9 ))
= f (x j + 0.1 , y j + 0.09 * x j − 0.09 * y j + 0.19 )
= f (x j + 0.1 , 0.91 * y j + 0.09 * x j + 0.19)
= x j + 0.1 − (0.91 * y j + 0.09 * x j + 0.19 ) + 2
= 0.91 * x j − 0.91 * y j + 1.91

(
k 4 = f x j + 0.2 , y j + 0.2 * k 3 )
( (
= f x j + 0.2 , y j + 0.2 * 0.91 * x j − 0.91 * y j + 1.91 ))
= f (x j + 0.2 , y j + 0.182 * x j − 0.182 * y j + 0.382 )
= f (x j + 0.2 , 0.818 * y j + 0.182 * x j + 0.382 )
= x j + 0.2 − (0.818 * y j + 0.182 * x j + 0.382) + 2
= 0.818 * x j − 0.818 * y j + 1.818

Então,

0.2
y j +1 = y j + * (k 1 + 2 k 2 + 2 k 3 + k 4 )
6
0.2
= yj + * ((x j - y j + 2 ) + 2 (0 .9 * x j − 0.9 * y j + 1 .9 )
6
+ 2 (0 .91 * x j − 0.91 * y j + 1 .91 ) + (0 .818 * x j − 0.818 * y j + 1 .818 ))
0.2
= yj + * (5 .438 * x j − 5 .438 * y j + 11 .438 )
6

y j+1 = 0.81873333 4 * y j + 0.18126666 6 * x j + 0 .381266666 , j = 0, 1, 2, 3,4.

1º iteração:

y1 = 0.818733334*y0 + 0.181266666*x0+0.381266666

Página 22 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


= 0.818733334*2 + 0.181266666*0+0.381266666 = 2.018733335

x1 = 0 + 0.2 = 0.2

2º iteração:

y2 = 0.818733334*y1 + 0.181266666*x1+0.381266666

= 0.818733334*2.018733335 + 0.181266666*0.2+0.381266666

= 2.070324273

x2 = 0.2 + 0.2 = 0.4

3º iteração:

y3 = 0.818733334*y2 + 0.181266666*x2+0.381266666

= 0.818733334*2.070324273+ 0.181266666*0.4+0.381266666

= 2.148816828

x3 = 0.4 + 0.2 = 0.6

4º iteração:

y4 = 0.818733334*y3 + 0.181266666*x3 + 0.381266666

= 0.818733334*2.148816828+ 0.181266666*0.6+0.381266666

= 2.249334632

Página 23 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias


x4 = 0.6 + 0.2 = 0.8

5º iteração:

y5 = 0.818733334*y4 + 0.181266666*x4 + 0.381266666

= 0.818733334*2.249334632+ 0.181266666*0.8+0.381266666

= 2.367885242

e,

x5 = 0.8 + 0.2 = 1

As soluções aproximadas para o PVI na malha [0, 1] com passo h=0.2 são:

{ 2.018733335, 2.070324273, 2.148816828, 2.249334632, 2.367885242 }.

Página 24 de 24 –Resolução Numérica de Equações Diferenciais Ordinárias

Você também pode gostar