Equações Diferenciais

Propaganda
MÉTODOS COMPUTACIONAIS - Mestrado em Física Experimental 1999/2000
EQUAÇÕES DIFERENCIAIS
João Carvalho
Departamento de Física da F.C.T.U.C e LIP-Coimbra
S UMÁRIO
1- Introdução
2- Método de Euler
3- Métodos de Runge-Kuta
4- Sistemas de equações
5- Controlo adaptativo do tamanho do passo
B IBLIOGRAFIA
1-
“Numerical Recipes in C” W.H.Press et al., 2ª Ed., Cambridge
University Press, 1992.
2-
“Numerical Methods for Engineers” Steven Chapra e Raymond P.
Canale, McGraw-Hill International Editions, Applied Mathematics
Series, 1990.
3-
“Numerical Methods with FORTRAN IV Case Studies” William
S. Dorn e Daniel D. McCracken, Wiley International Edition,
1972.
4-
“Computational Methods in Physics and Engineering” Samuel S.
M. Wong, World Scientific, 1997.
Métodos Computacionais
2
Equações Diferenciais
I NTRODUÇÃO
As equações diferenciais surgem em todos os domínios e situações
em física (desde as leis de Newton à teoria de campo).
Em muitas situações não existem soluções analíticas exactas (apenas
em casos muito especiais).
Existe uma teoria matemática de resolução de equações diferenciais
muito desenvolvida e sofisticada. Aqui interessam-nos apenas os
métodos numéricos computacionais.
Nesta secção tentamos resolver equações diferenciais do tipo
dy
 f ( x, y)
dx
Na maior parte dos casos se a equação não estiver nesta forma pode
ser colocada nela. Por exemplo:
y’’ = g(y’,x,y)
pode ser rescrita como
z’ = g(z,x,y)
y’ = z
Métodos Computacionais
3
Equações Diferenciais
Queremos obter y. Vamos utilizar métodos iterativos:
Novo Valor = Valor anterior + declive*passo
Ou
y i+1 = y i + m*h
E a questão é a melhor estimativa para o declive m.
É necessário existir um ponto de partida, o valor inicial de y para um
certo x.
A resolução de equações diferenciais está intimamente relacionada
com a resolução de integrais.
Métodos Computacionais
4
Equações Diferenciais
MÉTODO DE E ULER
A primeira derivada fornece uma estimativa directa do declive em xi
m = f(xi,yi)
onde f(xi,yi) é a equação diferencial calculada em (xi,yi). Então
yi+1 = yi + f(xi,yi) h
É uma extrapolação linear sobre o passo h.
A expansão de Taylor de y, com início no valor (xi,yi) é dada por
yi+1 = yi + yi’h + yi’’h2/2! + yi’’’h3/3! + ...
=yi + f(xi,yi)h + f’(xi,yi)h2/2! + f’’(xi,yi)h3/3! + ...
onde h=xi+1-xi. Então o método de Euler corresponde à expansão de Taylor
até ao segundo termo.
Na aplicação do Método de Euler o erro pode ser reduzido diminuindo o
tamanho do passo. Fornece resultados exactos para funções lineares.
Método de Heun
Métodos Computacionais
5
Equações Diferenciais
Uma melhoria ao Método de Euler, é um método de previsão/correcção
Previsão
y0i+1 = yi + f(xi,yi) h
Correcção
yi+1 = yi + ( f(xi,yi)+f(xi+1,y0i+1 ) h/2
E pode ser usado iterativamente para melhorar a solução.
Quando a função depende apenas de x podemos fazer apenas
yi+1 = yi + ( f(xi,yi)+f(xi+1,y0i+1 ) h/2
Método melhorado do Polígono
Utiliza o Método de Euler para prever o valor de y no meio do intervalo
yi+1/2 = yi + f(xi,yi) h/2
Usa esta previsão para estimar o declive no meio do intervalo
y’i+1/2 = f(xi+1/2,yi+1/2 )
E finalmente a estimativa de y
yi+1 = yi + f(xi+1/2,yi+1/2 ) h
Métodos Computacionais
6
Equações Diferenciais
MÉTODOS DE R UNGE -K UTA
Os Métodos de Runge-Kuta atingem a precisão de uma expansão de Taylor
sem requerer o cálculo de derivadas superiores.
Os métodos de Runge-Kuta possuem três propriedades gerais:
1- São métodos de passo único, ou seja, para encontrar yi+1 preciamos
apenas da informação do ponto anterior (xi,yi)
2- Concordam com a expansão de Taylor até ao termo hp, onde p é a ordem
do método
3- Não requer qualquer cálculo das derivadas de f(x,y), apenas da própria
função
Existem muitas variações, que podem ser colocadas na fórmula geral
yi+1 = yi + m(xi,yi,h) h
onde m(xi,yi,h) é a função de incremento que pode ser interpretada como o
declive representativo no intervalo. Na forma geral escreve-se como
m = a1k1 + a2k2 + ... + ankn
onde os a’s são constantes e os k’s são
k1 = f(xi,yi)
k2 = f(xi+p1h,yi+q11k1h)
Métodos Computacionais
7
Equações Diferenciais
k3 = f(xi+p2h,yi+q21k1h+q22k2h)
...
kn = f(xi+pn-1h,yi+qn-1,1k1h+qn-1,2k2h+...+ qn-1,n-1kn-1h)
Os k’s são relações de recorrência (o k1 entra na equação do k2, etc.)
Existem vários tipos de métodos de Runge-Kuta que empregam diferente
número de termos na função de incremento (especificado por n)
Para n=1 temos o método de Euler.
As constantes a’s e p’s são determinadas fazendo a equação inicial igual a
termos da expansão de Taylor (ver literatura). Mas temos mais incógnitas
que equações (temos de especificar à priori algumas variáveis!), temos um
número infinito de soluções.
Por exemplo, para n=2, função de incremento com dois termos, o resultado
é exacto se a solução da equação diferencial for quadrática.
Método de Runge-Kuta de segunda ordem
yi+1 = yi + (a1k1+a2k2)h
onde
Métodos Computacionais
8
Equações Diferenciais
k1 = f(xi,yi)
k2 = f(xi+p1h,yi+q11k1h)
Agora para o método de Heun
yi+1 = yi + (k1+k2)h/2
onde
k1 = f(xi,yi)
k2 = f(xi+h,yi+hk1)
E para o método melhorado do polígono
yi+1 = yi + k2h
onde
k1 = f(xi,yi)
k2 = f(xi+h/2,yi+hk1/2)
Método de Ralston
yi+1 = yi + (k1 + 2k2)h/3
onde
k1 = f(xi,yi)
k2 = f(xi+3h/4,yi+3hk1/4)
Etc.
Métodos Computacionais
9
Equações Diferenciais
Método de Runge-Kuta de terceira ordem
Para n=3, uma das hipóteses é
yi+1 = yi + (k1+4k2+k3)h/6
onde
k1 = f(xi,yi)
k2 = f(xi+h/2,yi+k1h/2)
k3 = f(xi+h,yi-k1h+2 k2h)
Método de Runge-Kuta de quarta ordem
É o mais popular. Existe um número infinito de versões, a seguinte é
chamada o método de Runge-Kuta de quarta ordem clássico
yi+1 = yi + (k1+2k2+2k3+k4) h/6
onde
k1 = f(xi,yi)
k2 = f(xi+h/2,yi+k1h/2)
k3 = f(xi+h/2,yi+k2h/2)
k4 = f(xi+h,yi+k3h)
Métodos Computacionais
10
Equações Diferenciais
E etc. para ordens superiores.
Métodos Computacionais
11
Equações Diferenciais
S ISTEMAS DE EQUAÇÕES
Muitos problemas requerem a solução de um sistema de equações
diferenciais simultâneas. Em geral escreve-se:
dy1
 f 1 ( x , y1 , y 2 ,..., y n )
dx
dy 2
 f 2 ( x , y1 , y 2 ,..., y n )
dx
...
dy n
 f n ( x , y1 , y 2 ,..., y n )
dx
É agora necessário conhecer as n condições iniciais para o valor
inicial de x.
Todos os métodos discutidos anteriormente para uma única equação
se aplicam a um sistema. Têm de ser resolvidas simultaneamente.
Métodos Computacionais
12
Equações Diferenciais
C ONTROLO ADAPTATIVO DO TAMANHO DO PASSO
Até aqui temos usado um passo constante para integrar a equação
diferencial. Por vezes, quando a função é suave mas com alguma variação
brusca no seu domínio, não é eficaz usar um passo constante: se usarmos
um muito curto estamos a desperdiçar recursos na parte suave, um muito
longo não descreve a variação brusca. É preciso um passo que se adapte à
variação da função.
Duplicação do passo
Cada passo é usado duas vezes, uma como passo completo e outra como
dois meios passos. Se a previsão para o passo completo é y1 e para os dois
meios passos y2, a diferença é
d = y2 - y1
Esta dá-nos uma estimativa do erro.
Com esta estimativa podemos controlar o passo: aumentá-lo se o erro for
pequeno ou diminui-lo no caso contrário.
Em vez da duplicação do passo podem ainda usar-se duas estimativas de
ordens diferentes, pelo método de Runge-Kuta, para determinar o erro.
Métodos Computacionais
13
Equações Diferenciais
Métodos de passo múltiplo
Os métodos de um passo anteriores usam a informação de um único ponto
xi para prever o valor de yi+1 noutro ponto xi+1. Os métodos de passo
múltiplo usam a valiosa informação disponível de pontos anteriores. A
curvatura das linha ligando esses pontos anteriores fornece-nos informação
acerca da trajectória da solução.
Métodos Computacionais
14
Equações Diferenciais
Download