Equações Diferenciais Métodos Adaptativos e...

21
Equações Diferenciais Métodos Adaptativos e Rigidez Computação – 2º Semestre 2016/2017

Transcript of Equações Diferenciais Métodos Adaptativos e...

Page 1: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

Equações Diferenciais

Métodos Adaptativos e Rigidez

Computação – 2º Semestre 2016/2017

Page 2: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 3: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 4: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 5: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 6: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 7: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 8: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 9: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 10: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 11: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 12: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 13: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 14: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 15: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 16: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 17: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 18: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 19: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 20: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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

Page 21: Equações Diferenciais Métodos Adaptativos e Rigidezcomp.ssdi.di.fct.unl.pt/aulas/teoricas/aulaT12.pdfDivisão do passo –usar o método de passo simples duas vezes: Uma vez com

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