Você está na página 1de 17

Métodos Matemáticos aplicados à

Engenharia Química II - TQ091


Solução numérica de problemas de valor inicial (PVIs)

Prof. Fernando Voll


Universidade Federal do Paraná

Os problemas de valor inicial são modelos matemáticos caracteriza-


dos por equações diferenciais ordinárias, acompanhadas de condições
iniciais. Esses modelos são, geralmente, obtidos a partir da modelagem
de problemas transientes. Na prática, a maior parte dos problemas de
valor inicial não possuem uma solução analítica e, por essa razão, é que
"problemas do mundo real" demandam o uso de ferramentas numéricas.
Praticamente todos os métodos numéricos para solução de PVIs têm
origem na Série de Taylor, sendo que a forma como a série é trabalhada
(simplificada) é que define as diferentes características dos diferentes
métodos obtidos, cada um com suas vantagens e desvantagens.

PVIs associados a uma EDO de 1ª ordem


Um problema de valor inicial pode ser formado por uma ou mais equações
diferenciais de qualquer ordem (desde de que cada equação seja acompanhada
de suas condições iniciais). Comecemos então, obviamente, pelo caso mais
simples possível: um PVI formado por apenas uma EDO (e naturalmente uma
condição inicial). Estaremos interessados portanto na solução numérica de
PVIs que possam ser escritos na seguinte forma:

dy(t)
= f (t, y(t)) t > t0
dt (1)
y ( t0 ) = y0
onde t é a variável independente, y é a variável dependente, t0 é um valor
definido da variável independente (geralmente zero), y0 é um valor conhecido
da variável dependente quando t = t0 , e f (t, y(t)) é uma função algébrica
qualquer das variáveis dependente e independente† . Abaixo alguns exemplos
de PVIs na forma da Equação 1:
†O que é interessante e atrativo na abordagem numérica de solução de PVIs é que a
dificuldade de solução não é sensível à forma da função f (t, y(t)), muito diferente do que
acontece com a abordagem analítica.

1
a)
dy(t)
=3 t>0
dt
y (0) = 2

b)
dy(t)
= 2t3 t>1
dt
y(1) = 20

c)
dy(t)
= −3y(t)2 t>0
dt
y(0) = 10

d)
dy(t)
= − y ( t ) + t3 t>0
dt
y (0) = 1

e)
dy(t) h it
= − e − y ( t ) + t3 t>0
dt
y(0) = 100

A solução numérica de um PVI como apresentado na Eq. 1 consiste basi-


camente em estimar o valor de y para um valor definido de t que seja maior
que t0 . Visto que o único ponto onde conhecemos o valor de y é definido pela
condição inicial, o primeiro passo para obtenção de uma estimativa de y em
um ponto diferente é a expansão de y(t) em série de Taylor em torno de t = t0 :

( t − t0 )2 ( t − t0 )3
y(t) = y(t0 ) + y0 (t0 )(t − t0 ) + y00 (t0 ) + y000 (t0 ) + ... (2)
2 3!
Estimar o valor de y de forma direta pela substituição do valor desejado de
t na Eq. 2 não é algo tão trivial, principalmente de esse valor não for próximo
de t0 . Primeiramente precisaríamos obter de forma analítica as expressões
de y00 (t), y000 (t), e assim por diante para avaliá-los em t = t0 . Em seguida, o
valor de y(t) deveria ser estimado com um número suficientemente grande de
termos da série (quanto maior o valor de t, mais termos seriam necessários).
Estes inconvenientes são a força motriz para o desenvolvimento dos métodos
numéricos para solução de PVIs a partir de simplificações da série de Taylor.

2
Método explícito de Euler
Para deduzirmos o método explícito de Euler, consideremos que o valor de t
para o qual desejamos estimar y(t) é próximo de t0 . Neste caso, espera-se que
a aproximação linear da solução original (série de Taylor com 2 termos) seja
suficientemente boa. Isso é ilustrado na Figura 1.

Figura 1 - Comparação entre uma função qualquer (curva azul) e suas séries
de potências truncadas após o 2º (reta amarela) e 3º termo(curva laranja).

Percebemos na Figura 1 que a série de Taylor da função com apenas 2


termos é uma reta que tangencia a função original no ponto onde ela foi
centrada (t0 , y0 ). Dessa forma, quanto mais não-linear for a função original,
menor será o intervalo de t (a partir de t0 ) onde essa reta assumirá valores
próximos da função original. É possível perceber também que esse intervalo é
maior para uma série com mais termos, entretanto, a ideia do método de Euler
é justamente evitar que se trabalhe com esses termos. A prioridade do método
de Euler é a simplicidade de aplicação, e não a sua precisão. Isso não quer
dizer, entretanto, que o método de explícito de Euler não possa gerar soluções
numéricas tão precisas quanto desejamos, desde que estejamos dispostos a
demandar um alto esforço computacional para obtenção dessas soluções.

Ao truncarmos então a Série de Taylor após o segundo termo, temos:

y(t) = y(t0 ) + y0 (t0 )(t − t0 ) (3)

O y(t) acima é um valor estimado de y no tempo t. O valor verdadeiro de


y é o valor estimado somado ao erro resultante do truncamento da série:

yverdadeiro (t) = y(t) + ”Erro de truncamento” (4)

O termo "Erro de truncamento" que aparece na Equação 4 não pode ser


efetivamente computado, mas pode ser estimado, como veremos mais adiante.
Por enquanto, o importante é que tenhamos ciência de que a aproximação

3
linear da série de Taylor (Eq. 3) gerará sempre um erro na estimativa de y(t). É
possível observar na Figura 1 que o erro (distância entre curvas amarela e azul)
é pequeno para valores pequenos de (t − t0 ), mas aumenta significativamente
conforme (t − t0 ) aumenta. É por essa razão que não devemos estimar um
valor de y para um valor de t muito distante de t0 em uma única etapa.

Se um PVI nos é apresentado na forma de Equação 1, então o termo y0 (t0 )


da Equação 3 pode ser facilmente calculado:†

0 dy(t)
y ( t0 ) = = f (t0 , y(t0 ))
dt t=t0

Substituindo na Eq. 3:

y(t) = y(t0 ) + f (t0 , y(t0 ))(t − t0 ) (5)

Podemos então usar a Equação 5 para estimar o valor de y para um valor


qualquer t = t1 , a partir de t0 :

y(t1 ) = y(t0 ) + f (t0 , y(t0 ))(t1 − t0 ) (6)

De forma análoga, podemos estimar o valor de y para um valor qualquer


t = t2 , a partir de t1 (onde agora temos um valor estimado de y):

y(t2 ) = y(t1 ) + f (t1 , y(t1 ))(t2 − t1 ) (7)

Como o valor de y(t2 ) acima foi estimado após uma primeira estimativa
de y(t1 ), dizemos que y(t2 ) foi estimados com dois passos. Podemos agora
escrever as equações 6 e 7 de uma forma mais geral, onde a variável inde-
pendente é identificada com um subíndice que significa o número de passos
dados para se atingir o valor atribuído à variável naquele ponto:

y(tn+1 ) = y(tn ) + f (tn , y(tn ))(tn+1 − tn ) (8)

Considerando que a distância entre os valores da variável independente


em cada passo é sempre igual, podemos definir:

h = (t1 − t0 ) = (t2 − t1 ) = ... = (tn+1 − tn )

onde h é uma constante conhecida como passo de integração. Substituindo na


Eq. 8:
y(tn+1 ) = y(tn ) + h · f (tn , y(tn )) (9)
Apenas por uma questão de praticidade, podemos reescrever a variável
dependente em termos do índice da variável independente

y ( t0 ) = y0 ;

y ( t1 ) = y1 ;
y ( t2 ) = y2 ;
† Perceba que caso a série fosse truncada após o terceiro termo, já não teríamos de forma
tão direta o valor de y00 (t0 ).

4
..
.
y(tn ) = yn ;
y ( t n +1 ) = y n +1 .
Temos então, finalmente, a fórmula do método explícito de Euler em sua
forma mais utilizada:

y n +1 = y n + h · f ( t n , y n ) (10)

Pela própria definição do passo de integração, podemos atualizar os valo-


res da variável independente como:

t n +1 = t n + h (11)

Exemplo 1:

Resolva o seguinte problema de valor inicial

dy(t)
= t2 − y ( t ) t>0
dt
y (0) = 1

com o método explícito de Euler para estimar o valor de y(3) utilizando 3


passos.

Solução:

Ao definirmos o número de passos

N = 3,

o valor da variável independente respectiva a esse número de passos

tN = 3 ,

e o valor inicial da variável independente

t0 = 0 ,

podemos calcular o valor do passo de integração:

t N − t0 3−0
h= = = 1.
N 3
O primeiro valor da variável dependente é sempre dado pela condição
inicial:
y0 = 1.
Resta agora definir a função f (tn , yn ), que já nos é fornecida no enunciado:

f (tn , yn ) = t2n − yn

5
Podemos então agora apresentar os resultados na forma de uma tabela
com N + 1 linhas:

n tn yn f (tn , yn )
0 0 1
1
2
3

A primeira coluna representa o número do passo associado com cada


resultado. Evidentemente o passo zero refere-se à condição inicial, a qual não
depende do método de solução. A segunda coluna representa os valores da
variável independente ao longo da solução. Essa coluna depende da condição
inicial e do valor do passo de integração (ver Eq. 11):†

n tn yn f (tn , yn )
0 0 1
1 1
2 2
3 3

Desejamos agora preencher a coluna com os valores da variável depen-


dente (yn ). Para isso, é necessário obter o valor de f (tn , yn ) correspondente
em cada linha. Para a primeira linha:

f (t0 , y0 ) = t20 − y0 = 0 − 1 = −1
Portanto:

n tn yn f (tn , yn )
0 0 1 −1
1 1
2 2
3 3

Agora sim usamos a fórmula do método explícito de Euler (Eq. 10) para
encontrar o próximo valor de y:

y n +1 = y n + h · f ( t n , y n )

y1 = y0 + h · f ( t0 , y0 )

y1 = 1 + 1 · (−1)

y1 = 0

† Quando h = 1, os valores da coluna t vão coincidir com os valores da coluna n, desde


n
que t0 = 0.

6
n tn yn f (tn , yn )
0 0 1 −1
1 1 0
2 2
3 3

Da mesma forma, teremos que

f (t1 , y1 ) = t21 − y1 = 1

e
y2 = y1 + h · f ( t1 , y1 ) = 1

n tn yn f (tn , yn )
0 0 1 −1
1 1 0 1
2 2 1
3 3

Seguimos então com o mesmo procedimento até encontrarmos o resultados


final:

n tn yn f (tn , yn )
0 0 1 −1
1 1 0 1
2 2 1 3
3 3 4

Temos então como resposta que: ao utilizarmos o método explícito de Euler


com 3 passos, o valor estimado de y(3) para o PVI apresentado é igual a 4.

Perceba que a palavra "estimado" implica que essa não é a solução exata
do problema de valor inicial. De maneira geral, problemas de engenharia
envolvem soluções estimadas, e não há muito o que se possa fazer quanto a
isso. A pergunta que devemos nos fazer nesses casos é: "A estimativa feita é
boa?". Veja que essa pergunta não pode ser respondida a menos que tenhamos
uma ideia do valor de erro associado a essa estimativa. Para entendermos
como é possível estimar esse erro, verifique novamente a Figura 1 e as Eqs. 3 e
4. A Eq. 3 representa a curva amarela, enquanto que a Eq. 4 representa a curva
azul. Visto que a curva azul é uma solução desconhecida, podemos assumir
que, para valores de (t − t0 ) não muito grandes, a curva laranja se comporta de
forma muito similar à curva azul. Ou seja, para valores de (t − t0 ) não muito
grandes, o erro entre a curva amarela e a curva azul pode ser estimado como
o erro entre a curva amarela e a curva laranja. A diferença entre essas curvas
(amarela e laranja) está essencialmente no terceiro termo da série de Taylor:

(t − t0 )2 00
y ( t0 ) 7−→ C ( t − t0 )2
2

7
onde C é uma constante. Vamos assumir então que o erro de truncamento
para valores pequenos de (t − t0 ) pode ser definido como:

"Erro de truncamento" = C (t − t0 )2 (12)

Perceba que, para valores pequenos de (t − t0 ), o erro de truncamento


cresce proporcionalmente a (t − t0 )2 .

Considere que desejamos estimar y para um valor próximo de t0 = 0, onde


t = t A , em uma etapa:

yverdadeiro (t A ) = y(t0 ) + y0 (t0 )(t A − 0) + C (t A − 0)2 (13)

⇓ ⇓
Valor estimado de y(t A ) Erro de truncamento

Estimemos agora y(t A ) em duas etapas:

yverdadeiro (t A /2) = y(t0 ) + y0 (t0 )(t A /2 − 0) + C (t A /2 − 0)2

⇓ ⇓
Valor estimado de y(t A /2) 1º Erro de truncamento

yverdadeiro (t A ) = y(t A /2) + y0 (t A /2)(t A − t A /2) + C (t A − t A /2)2

⇓ ⇓
Valor estimado de y(t A ) 2º Erro de truncamento

Perceba que a estimativa de y(t A ) em duas etapas envolve o acúmulo de


dois erros de truncamento:

yverdadeiro (t A ) = y(t A ) + "1º + 2º erros de truncamento" (14)

As equações 13 e 14 nos fornecem então estimativas diferentes para y(t A ).


Esperamos que a estimativa feita em duas etapas (Eq. 14) seja melhor do que
a feita em uma única etapa (Eq. 13). Para que isso ocorra, é necessário que a
soma dos erros de truncamento da Equação 14 seja menor do que o único erro
da Equação 13. Como não podemos saber os valores absolutos desse erros,
vamos pensá-los em forma relativa. Para isso, basta observar que:
tA − 0
t A − t A /2 = t A /2 − 0 =
2
Escrevendo então os erros de truncamento da Equação 14 em termos de
t A − 0, temos:

tA − 0 2
 
C
1º Erro de truncamento = C (t A /2 − 0)2 = C = ( t A − 0)2
2 4

tA − 0 2
 
2 C
2º Erro de truncamento = C (t A − t A /2) = C = ( t A − 0)2
2 4

8
Ou seja:
C
"1º + 2º erros de truncamento" = ( t A − 0)2 (15)
2
que é metade do valor do erro de truncamento obtido em uma única etapa,
obtido na Equação 13. Percebe-se então que o erro será cada vez menor quanto
mais etapas (passos) forem utilizadas para estimar um valor qualquer de y(t)
a partir de um valor conhecido y(t0 ).

OK... Mas e o tamanho do erro? como estimar?

A Equação 15 basicamente nos diz que o resultado de uma solução numérica


obtida com 2N de passos terá a aproximadamente a metade do erro (até então
desconhecido) quando comparada a uma solução obtida com N passos. Essa
informação, de forma indireta, nos dá uma estimativa do erro:

Figura 2 - Comparação entre os erros obtidos por soluções numéricas usando


N e 2N passos.

É possível observar na Figura 2 que a diferença entre as duas soluções


numéricas nos dá uma estimativa do erro da solução com 2N passos. Isso
significa que mesmo na ausência de uma solução analítica, podemos estimar
o erro das soluções numéricas apenas com base em resultados numéricos.

9
Exemplo 2:

Resolva o PVI do Exemplo 1 com

a) N = 6
b) N = 12
c) N = 24

Solução:

a)
N=6

t N − t0 3−0
h= = = 0, 5 .
N 6

A tabela com a solução terá agora 7 linhas:

n tn yn f (tn , yn )
0 0, 0 1
1 0, 5
2 1, 0
3 1, 5
4 2, 0
5 2, 5
6 3, 0

Ao aplicarmos o método, da mesma forma que feito anteriormente, mas


relembrando que agora h = 0, 5, teremos o seguinte resultado:

n tn yn f (tn , yn )
0 0, 0 1, 00 −1, 00
1 0, 5 0, 50 −0, 25
2 1, 0 0, 38 0, 63
3 1, 5 0, 69 1, 56
4 2, 0 1, 47 2, 53
5 2, 5 2, 73 3, 52
6 3, 0 4, 49

Os valores apresentados foram arredondados para duas casas decimais,


entretanto, os cálculos foram feitos com todos os algarismos significativos do
computador. Podemos agora apresentar de forma mais direta as soluções de
b) e c), já que a metodologia é a mesma.

10
b)

n tn yn f (tn , yn )
0 0, 00 1, 00 −1, 00
1 0, 25 0, 75 −0, 69
2 0, 50 0, 58 −0, 33
3 0, 75 0, 50 0, 07
4 1, 00 0, 51 0, 49
5 1, 25 0, 63 0, 93
6 1, 50 0, 87 1, 38
7 1, 75 1, 21 1, 85
8 2, 00 1, 67 2, 33
9 2, 25 2, 26 2, 81
10 2, 50 2, 29 3, 29
11 2, 75 3, 78 3, 78
12 3, 00 4, 73

c)

n tn yn f (tn , yn )
0,00 0,00 1,00 -1,00
1,00 0,13 0,88 -0,86
2,00 0,25 0,77 -0,71
3,00 0,38 0,68 -0,54
4,00 0,50 0,61 -0,36
5,00 0,63 0,57 -0,18
6,00 0,75 0,54 0,02
7,00 0,88 0,55 0,22
8,00 1,00 0,57 0,43
9,00 1,13 0,63 0,64
10,00 1,25 0,71 0,86
11,00 1,38 0,81 1,08
12,00 1,50 0,95 1,30
13,00 1,63 1,11 1,53
14,00 1,75 1,30 1,76
15,00 1,88 1,52 1,99
16,00 2,00 1,77 2,23
17,00 2,13 2,05 2,47
18,00 2,25 2,36 2,70
19,00 2,38 2,70 2,94
20,00 2,50 3,06 3,19
21,00 2,63 3,46 3,43
22,00 2,75 3,89 3,67
23,00 2,88 4,35 3,92
24,00 3,00 4,84

Ao resolvermos o PVI com diferentes números de passos, percebemos que


o valor estimado da variável depende é sempre diferente.

11
Pelo que foi discutido anteriormente, em teoria, a estimativa obtida com
o maior número de passos deve ser a melhor, pois apresenta o menor erro
de truncamento total. Para verificarmos que isso realmente acontece, vamos
comparar as soluções numéricas obtidas até então com a solução exata:

y(t) = 2 − 2t + t2 − e−t (16)

Logo, considerando 4 casas decimais:

y(3) = 2 − 6 + t3 − e−3 = 4, 9502


Para facilitar a comparação entre os resultados numéricos e a a solução
exata, apresentemos os resultados (com 4 casas decimais) juntamente com os
erros (diferença entre resultado numérico e a solução exata) em uma tabela:

Método Resultado Erro


Euler c/ 03 passos 4,0000 0,9502
Euler c/ 06 passos 4,4922 0,4580
Euler c/ 12 passos 4,7262 0,2240
Euler c/ 24 passos 4,8395 0,1107
Exata 4,9502

Como era de se esperar, o erro foi menor para soluções obtidas com um
número maior de passos. Em problemas reais, que demandam uma solução
numérica, não temos uma solução exata para comparar (até por que se tivésse-
mos, não precisaríamos da numérica). Precisamos então estimar o erro da
solução numérica sem que seja necessário o conhecimento da solução exata. O
erro da solução obtida com 6 passos pode ser estimado como a diferença (em
módulo) entre a própria solução com 6 passos e a solução numérica obtida
com 3 passos:
|4, 4922 − 4, 000| = 0, 4922
O mesmo pode ser feito para estimar os erros para as soluções com 12 e 24
passos:

Método Resultado Erro (real) Erro estimado


Euler c/ 06 passos 4,4922 0,4580 0,4922
Euler c/ 12 passos 4,7262 0,2240 0,2341
Euler c/ 24 passos 4,8395 0,1107 0,1123

A Tabela acima indica que ainda que os erros estimados não sejam idên-
ticos aos reais, eles são ao menos próximos, e tendem a ficar mais próximos
conforme o número de passos aumenta. Isso acontece por que toda a análise
feita anteriormente parte do pressuposto de que estamos trabalhando com
valores de passos suficientemente pequenos para que a Equação 12 seja válida.

12
Solução do exemplo em Scilab

Para exemplificar a implementação do método de Euler em Scilab, tomemos


como exemplo a solução da letra c) do Exemplo 1.

Os seguintes passos podem ser seguidos para solução do problema:

1. Declare as variáveis conhecidas do problema:

t0 = 0 y0 = 1 N = 12 tN = 3

2. Defina uma função para calcular f (tn , yn ):

13
3. Defina uma função para resolver o problema pelo método de Euler:
(a) Inicialmente atribua um nome à função (nesse caso, "euler") e seus
argumentos de entrada na ordem desejada:

O primeiro argumento será a função que calcula f (tn , yn ); O se-


gundo e terceiro argumentos compõem a condição inicial; O quarto
argumento é o valor de t até onde se deseja obter a solução, e o
último argumento é o número de passos.

(b) Em seguida, calcule o valor de h e atribua os valores da condição


inicial nos vetores que contemplarão a solução do problema.

14
(c) Use as fórmulas do método explícito de Euler para calcular os
valores dos vetores t e y para cada passo:

15
4. Use a função criada para resolver o problema:

16
Podemos plotar o vetor y em função do vetor t, para avaliar a solução do
problema a partir da condição inicial até o ponto desejado:

4.5

3.5

2.5
y

1.5

0.5

0
0 0.5 1 1.5 2 2.5 3
t

Sugestão: Resolva o problema para outros valores de N e plote-os no


mesmo gráfico. Será possível perceber que conforme N aumenta, a solução de
y ao longo de t tende a se comportar como solução exata.

17

Você também pode gostar