Equações Diferenciais Métodos Adaptativos e...
Transcript of Equações Diferenciais Métodos Adaptativos e...
Equações Diferenciais
Métodos Adaptativos e Rigidez
Computação – 2º Semestre 2016/2017
Métodos Adaptativos
Por vezes as soluções das EDOs têm diferentes escalas temporais:
Em alguns intervalos de tempo a solução varia gradualmente;
Noutros as variações são abrutas.
Os métodos com o tamanho do passo constante teriam que aplicar sempre um pequeno passo:
Ineficiente em regiões de variação gradual.
Os métodos adaptativos podem variar o tamanho do passo de acordo com as variações da solução.
26 Junho 2017 Equações Diferenciais – Métodos Adaptativos e Rigidez
Métodos Adaptativos
A implementação requer uma estimativa do erro local de
truncatura cometido em cada passo:
Com base nesta estimativa o tamanho do passo pode ser
diminuído ou aumentado.
Existem 2 abordagens alternativas para incorporar o
controlo adaptativo do tamanho do passo:
Divisão do passo – usar o método de passo simples duas vezes:
Uma vez com o tamanho do passo completo h
Outra vez com 2 meios passos de tamanho h/2
Estimar o erro local de truncatura cometido no passo n como a
diferença entre os resultados obtidos:
3Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017
Método RK Adaptativo de 4ª Ordem
Um passo completo h:
Dois meios passos h/2:
Estimativa do erro local de truncatura:
Correcção de 5ª ordem:
4Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017
Métodos Adaptativos
A implementação requer uma estimativa do erro local de
truncatura cometido em cada passo:
Com base nesta estimativa o tamanho do passo pode ser
diminuído ou aumentado.
Existem 2 abordagens alternativas para incorporar o
controlo adaptativo do tamanho do passo:
Métodos RK Embebidos (RK Fehlberg) – calcular no mesmo passo
duas estimativas com métodos de RK de ordens diferentes:
Estimar o erro local de truncatura como a diferença entre os resultados
obtidos
Estes métodos costumam ser mais eficientes que os da divisão
do tamanho do passo.
5Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017
Método RK Embebido de 2ª/3ª Ordem
Usa os métodos RK de 2ª e 3ª ordem em simultâneo
para resolver a EDO e controlar o tamanho do passo de
acordo com a estimativa do erro:
Estimativa do erro local de truncatura:
6Equações Diferenciais – Métodos Adaptativos e Rigidez
(apenas avalia a função 3 vezes: k1 é o mesmo que o k4 do passo anterior)
6 Junho 2017
Método RK Embebido de 4ª/5ª Ordem
Usa os métodos RK de 4ª e 5ª ordem em simultâneo:
4ª:
5ª:
Estimativa do erro local de truncatura: 7Equações Diferenciais – Métodos Adaptativos e Rigidez
(apenas avalia a função 6 vezes: k1,…, k6) )4(
1
)5(
11 iii yyE
6 Junho 2017
Métodos RK em MATLAB
2º/3º Ordem: Implementado pela função ode23
4º/5º Ordem: Implementado pela função ode45
Após cada passo, é verificado se o erro está dentro da
tolerância desejada:
Se estiver, yi+1é aceite;
Caso contrário, o cálculo é repetido com o tamanho do passo
reduzido até ser obtida uma estimativa de erro aceitável
8Equações Diferenciais – Métodos Adaptativos e Rigidez
(tolerância relativa: por omissão103) (tolerância absoluta: por omissão106)
6 Junho 2017
Métodos RK em MATLAB
[t,y] = ode23(odefun,tspan,y0)
[t,y] = ode45(odefun,tspan,y0)
y: solução, em que cada coluna representa uma das variáveis e as linhas os seus valores nos tempos definidos no vector t
odefun: função que calcula as derivadas do sistema de EDOs
tspan: intervalo de tempo para resolver o sistema de EDOs:
Se tspan=[ti tf], os resultados são mostrados para esses
tempos assim como para os tempos intermédios adicionais utilizados.
Se tspan=[t0 t1 … tn], os resultados são mostrados apenas para os tempos especificados.
y0: vector de valores iniciais para cada uma das variáveis.
9Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017
Métodos RK em MATLAB Exemplo:
com y1(0)=2 e y2(0)=1 para t entre 0 e 20
Solução: function yp = predprey(t, y)
yp = [1.2*y(1)-0.6*y(1)*y(2); -0.8*y(2)+0.3*y(1)*y(2)];
>> tspan = [0 20];
>> y0 = [2, 1];
>> [t, y] = ode45(@predprey, tspan, y0);
>> plot(t,y); plot(y(:,1),y(:,2));
dy1
dt1.2y1 0.6y1y2
dy2
dt 0.8y2 0.3y1y2
10Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017
Métodos RK em MATLAB
Podem ser definidos parâmetros do algoritmo (options) e passados parâmetros para a função odefun
[t,y]=ode23(odefun,tspan,y0,options,p1,p2,…)
[t,y]=ode45(odefun,tspan,y0,options,p1,p2,…)
p1,p2,…: são os parâmetros da função odefun
options: são os parâmetros do algoritmo
Para definir os parâmetros do algoritmo:
options=odeset('par1',val1,'par2',val2,…)
'RelTol': tolerância relativa.
'AbsTol': tolerância absoluta.
'InitialStep': passo inicial.
'MaxStep': passo máximo (1/10 do intervalo inicial)
11Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017
Métodos RK em MATLAB Exemplo:
com y (0)=0.5 para t entre 0 e 4
Solução:
function yp = dydt(t, y)
yp = 10*exp(-(t-2)*(t-2)/(2*.075^2))-0.6*y;
>> options=odeset('RelTol',1e-4);
>> ode23(@dydt, [0 4], 0.5); >> ode23(@dydt, [0 4], 0.5, options);
12Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017
Métodos Multipasso Os métodos de passo simples usam a informação de um único
ponto ti para calcular uma estimativa da variável dependente yi+1
num ponto futuro ti+1.
Os métodos multipasso baseiam-se na utilização da informação
calculada em pontos anteriores.
A função MATLAB ode113 implementa um método multipasso13Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017
Rigidez
Um sistema rígido (stiff) contém componentes que variam muito
rapidamente e outras que variam muito lentamente.
Em alguns casos a variação rápida ocorre numa pequena fracção
de tempo. Ex:
cuja solução com y(0)=0 é:
dy
dt1000y 30002000et
y 3 0.998e1000 t 2.002et
14Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017
Rigidez
Estabilidade: amplificação ou decréscimo dos erros cometidos.
Um método numérico é estável se o erro cometido numa fase
do algoritmo não é amplificado para as fases seguintes.
Uma equação diferencial diz-se mal condicionada se os erros
numéricos são amplificados independentemente do método
Um sistema rígido (stiff) requer, em alguns métodos numéricos,
passos muito pequenos para evitar a instabilidade numérica.
15Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017
Rigidez
Exemplo:
Com um pequeno erro no valor inicial:
logo:
16Equações Diferenciais – Métodos Adaptativos e Rigidez
O erro cresce exponencialmente: problema instável
O erro decresce exponencialmente: problema estável
O erro permanece constante: problema neutralmente estável
6 Junho 2017
Rigidez
Exemplo:
Método de Euler (explícito):
Critério de estabilidade:
Região estável:
Se a=1000, para manter a estabilidade é necessário h2/1000
17Equações Diferenciais – Métodos Adaptativos e Rigidez
(factor de amplificação)
6 Junho 2017
Rigidez
Exemplo:
Método de Euler Implícito:
Critério de estabilidade:
18Equações Diferenciais – Métodos Adaptativos e Rigidez
(incondicionalmente estável!)
6 Junho 2017
Rigidez
Exemplo:
cuja solução com y(0)=0 é:
Solução:
a) Método de Euler (explícito)
b) Método de Euler Implícito
19Equações Diferenciais – Métodos Adaptativos e Rigidez
dy
dt1000y 30002000et
y 3 0.998e1000 t 2.002et
6 Junho 2017
Rigidez
Sistemas de ODEs rígidos também podem ser resolvidos por
métodos implícitos.
Exemplo:
Cuja solução para y1(0)=52.29 e y2(0)=83.82 é:
Método de Euler Implícito:
20Equações Diferenciais – Métodos Adaptativos e Rigidez
(resolver o sistema em cada passo)
6 Junho 2017
Funções MATLAB para Sistemas Rígidos
ode15s: Método de Gear (Backward-Difference-Formulae)
ode23s: Método de Rosenbrock
Ode23ts: Método Implícito de Runge-Kutta
21Equações Diferenciais – Métodos Adaptativos e Rigidez6 Junho 2017