equações diferenciais problemas de valor inicialproblema de valor inicial: se todas as condições...

48
Equações Diferenciais Problemas de Valor Inicial Computação – 2º Semestre 2016/2017

Upload: others

Post on 15-Mar-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Equações Diferenciais

Problemas de Valor Inicial

Computação – 2º Semestre 2016/2017

Page 2: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Equações Diferenciais

Uma equação diferencial é uma equação cuja incógnita é uma função que aparece na equação sob a forma das respectivas derivadas.

Equações diferenciais ordinárias (EDO) são equações de forma que envolvem uma função incógnita e algumas das suas derivadas em ordem à sua única variável independente.

Ex:

Equações diferenciais parciais (PDE) envolvem mais do que uma variável independente.

Ex:

230 Maio 2017 Equações Diferenciais – Problemas de Valor Inicial

0,,,, )( nyyyxf )(xyy

5.820122 23 xxxdx

dy

Page 3: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Equações Diferenciais

Chama-se ordem da equação diferencial à maior das

ordens das derivadas que nela aparecem.

Ex:

"Resolver" a equação diferencial consiste em encontrar

funções que a satisfaçam.

3Equações Diferenciais – Problemas de Valor Inicial

1ª ordem

2ª ordem

9ª ordem

)(xyy

30 Maio 2017

Page 4: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Equações Diferenciais

4Equações Diferenciais – Problemas de Valor Inicial

5.820122 23 xxxdx

dy

15.81045.0 234 xxxxy

é uma solução possível

Cxxxxy 5.81045.0 234

tem infinitas soluções

30 Maio 2017

Page 5: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Equações Diferenciais

5Equações Diferenciais – Problemas de Valor Inicial

5.820122 23 xxxdx

dy

15.81045.0 234 xxxxy

é uma solução possível

Cxxxxy 5.81045.0 234

tem infinitas soluções

30 Maio 2017

Page 6: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Equações Diferenciais

Uma equação diferencial de ordem n requer a especificação

de n condições adicionais para obter uma solução única.

Problema de Valor Inicial: Se todas as condições são

especificadas para o mesmo valor da variável independente.

Ex:

Problema de Valor Fronteira: Se as condições são especificadas

para valores diferentes da variável independente.

Ex:

6Equações Diferenciais – Problemas de Valor Inicial

2)0(3)0(02

yyy

2)0(0)1(

02

yyy

solução única: 322 xxy

solução única: 322 xxy

30 Maio 2017

Page 7: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Equações Diferenciais

7Equações Diferenciais – Problemas de Valor Inicial

5.820122 23 xxxdx

dy

15.81045.0 234 xxxxy

solução única

1)0( y

30 Maio 2017

Page 8: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Equações Diferenciais

As equações diferenciais são fundamentais em ciência e engenharia onde muitos fenómenos físicos são formulados matematicamente em termos das suas taxas de variação.

8Equações Diferenciais – Problemas de Valor Inicial

v- variável dependente

t- variável independentem

vcg

dt

dv d

2

30 Maio 2017

Page 9: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Modelos Matemáticos

Problema: a velocidade de um bungee jumper

Segunda Lei de Newton:

a aceleração de um corpo é igual à razão entre a

força exercida sobre ele e a sua massa

A aceleração é a taxa de variação da velocidade:

acelerar um corpo é variar a sua velocidade num

período de tempo

9Introdução à Computação Numérica

m

Fa

adt

dv

30 Maio 2017

Page 10: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Modelos Matemáticos

Problema: a velocidade de um bungee jumper

Num corpo em queda livre actuam duas forças:

A força da gravidade FD

A força da resistência do ar FR

10Introdução à Computação Numérica

RD FFF

m

F

dt

dv

30 Maio 2017

Page 11: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Modelos Matemáticos

Problema: a velocidade de um bungee jumper

Num corpo em queda livre actuam duas forças:

A força da gravidade FD

A força da resistência do ar FR

De acordo com a 2ª lei de Newton:

em que g é a aceleração da gravidade.

11Introdução à Computação Numérica

RD FFF

m

FF

dt

dv RD

mgFD

30 Maio 2017

Page 12: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Modelos Matemáticos

Problema: a velocidade de um bungee jumper

Num corpo em queda livre actuam duas forças:

A força da gravidade FD

A força da resistência do ar FR

A força da resistência do ar é aproximadamente

proporcional ao quadrado da velocidade do corpo:

em que cd é o coeficiente de resistência.

12Introdução à Computação Numérica

RD FFF

m

Fg

m

Fmg

dt

dv RR

2vcF dR

30 Maio 2017

Page 13: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Modelos Matemáticos

Problema: a velocidade de um bungee jumper

Assumindo velocidade inicial nula: v(0)=0

Modelo diferencial:

e resolvendo em ordem a v obtém-se…

Modelo analítico:

13Introdução à Computação Numérica

0)0( v

m

vcg

dt

dv d

2

m

vcg

dt

dv d

2

t

m

gc

c

gmtv d

d

tanh

30 Maio 2017

Page 14: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Métodos de Passo Simples

Vamos considerar equações diferenciais da forma:

Os métodos denominados de passo simples têm todos o formato geral:

em que é a função incremento, usada para saltar do valor anterior de yi para o novo valor yi+1.

dy

dt f t, y

yi1 yi h

14Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 15: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Euler

A primeira derivada dá

uma estimativa directa

da inclinação em ti:

O método de Euler usa

essa estimativa como a

função incremento:

dy

dt ti

f ti,yi

f ti, yi

yi1 yi f ti , yi h

15Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 16: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Euler

Exemplo: usar o método de Euler para integrar:

de t = 0 a t = 4 com um passo de tamanho 1.

Solução: hytfyy iiii ,1

16Equações Diferenciais – Problemas de Valor Inicial

yey t 5.04 8.0

2)0( y(solução analítica)

5)2(5.042)1()0(,0)0()1( 0 eyfyy

solução analítica:

erro relativo:

1º passo:

30 Maio 2017

Page 17: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Euler

Exemplo: usar o método de Euler para integrar:

de t = 0 a t = 4 com um passo de tamanho 1.

Solução: hytfyy iiii ,1

17Equações Diferenciais – Problemas de Valor Inicial

yey t 5.04 8.0

2)0( y(solução analítica)

solução analítica:

erro relativo:

2º passo:

84392.14)2( y

%19.23t

30 Maio 2017

Page 18: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Euler

Exemplo: usar o método de Euler para integrar:

de t = 0 a t = 4 com um passo de tamanho 1.

Solução:

18Equações Diferenciais – Problemas de Valor Inicial

yey t 5.04 8.0

2)0( y(solução analítica)

30 Maio 2017

Page 19: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Euler

Exemplo: usar o método de Euler para integrar:

de t = 0 a t = 4 com um passo de tamanho 1.

Solução:

19Equações Diferenciais – Problemas de Valor Inicial

yey t 5.04 8.0

2)0( y(solução analítica)

30 Maio 2017

Page 20: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Erros dos Métodos Numéricos

A solução numérica de EDOs envolve 2 tipos de erro: Erros de Truncatura, causados pela natureza dos algoritmos

usados (ex: utilização de um número finito de termos)

Erros de Arredondamento, originados pela representação aproximada dos números reais e das operações aritméticas

O erro global de truncatura pode ser dividido em: Erro de truncatura local que resulta da aplicação do método

num único passo, e

Erro de truncatura propagado que resulta das aproximações produzidas durante os passos anteriores.

20Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 21: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Erros dos Métodos Numéricos

Se y(t) é uma função com derivadas contínuas pode ser representada pela série de Taylor:

em que h = ti+1ti e Rn é: com:

Sendo:

fica:

O(hn+1) significa que o erro de truncatura local é proporcional ao tamanho do passo elevado a n+1

21Equações Diferenciais – Problemas de Valor Inicial

],[ 1 ii tt

ytfdt

dy,

30 Maio 2017

Page 22: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Euler

Caso geral:

Método de Euler:

Logo o erro de truncatura local:

Que é geralmente aproximado por:

Pode ser demonstrado que o erro global de truncatura é proporcional ao tamanho do passo: O(h)

22Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 23: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Euler

O erro local de truncatura é O(h2) e proporcional à derivada de f(t,y)

O erro global de truncatura é O(h).

Como consequência:

O erro global pode ser reduzido por diminuição do tamanho do passo;

O método de Euler calcula estimativas correctas no caso de a função y(t) ser linear.

Em geral para um método de ordem n o erro local de truncatura é O(hn+1) e o erro global de truncatura é O(hn).

23Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 24: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Eulerfunction [t,y] = eulode(dydt,tspan,y0,h,varargin)

% eulode: Euler ODE solver

% [t,y] = eulode(dydt,tspan,y0,h,p1,p2,...):

% uses Euler's method to integrate an ODE

% input:

% dydt = name of the M-file that evaluates the ODE

% tspan = [ti, tf] where ti and tf = initial and

% final values of independent variable

% y0 = initial value of dependent variable

% h = step size

% p1,p2,... = additional parameters used by dydt

% output:

% t = vector of independent variable

% y = vector of solution for dependent variable

24Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 25: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Eulerif nargin<4,error('at least 4 input arguments required'),end

ti = tspan(1);tf = tspan(2);

if ~(tf>ti),error('upper limit must be greater than lower'),end

t = (ti:h:tf)'; n = length(t);

% if necessary, add an additional value of t

% so that range goes from t = ti to tf

if t(n)<tf

t(n+1) = tf;

n = n+1;

end

y = y0*ones(n,1); %preallocate y to improve efficiency

for i = 1:n-1 %implement Euler's method

y(i+1) = y(i) + dydt(t(i),y(i),varargin{:})*(t(i+1)-t(i));

end

25Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 26: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Euler

Exemplo: usar o método de Euler para integrar:

de t = 0 a t = 4 com um passo de tamanho 1.

Solução:>> dydt=@(t,y) 4*exp(0.8*t) - 0.5*y;

>> [t,y] = eulode(dydt,[0 4],2,1);

>> disp([t,y])

0 2.0000

1.0000 5.0000

2.0000 11.4022

3.0000 25.5132

4.0000 56.8493

26Equações Diferenciais – Problemas de Valor Inicial

yey t 5.04 8.0

2)0( y(solução analítica)

30 Maio 2017

Page 27: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Heun

Melhoria do método de Euler baseada na média das derivadas calculadas no

início e na estimativa do fim do intervalo:

Primeiro estima o novo valor de y, depois corrige-o baseado na derivada

calculada nesse novo valor.

Este processo predictor-corrector pode ser iterado até convergir:

27Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 28: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Heun

Exemplo: usar o método de Heun iterativo para integrar:

de t = 0 a t = 4 com um passo de tamanho 1.

Usar um critério de paragem de 0.00001%

Solução:

28Equações Diferenciais – Problemas de Valor Inicial

yey t 5.04 8.0

2)0( y(solução analítica)

30 Maio 2017

Page 29: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Heun

Exemplo: usar o método de Heun iterativo para integrar:

de t = 0 a t = 4 com um passo de tamanho 1.

Usar um critério de paragem de 0.00001%

Solução:

29Equações Diferenciais – Problemas de Valor Inicial

yey t 5.04 8.0

2)0( y(solução analítica)

30 Maio 2017

Page 30: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Heun

Exemplo: usar o método de Heun iterativo para integrar:

de t = 0 a t = 4 com um passo de tamanho 1.

Usar um critério de paragem de 0.00001%

30Equações Diferenciais – Problemas de Valor Inicial

yey t 5.04 8.0

2)0( y(solução analítica)

30 Maio 2017

Page 31: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método de Heun

O erro local de truncatura é O(h3) e proporcional à segunda derivada de f(t,y)

O erro global de truncatura é O(h2).

Como consequência:

O erro global pode ser reduzido mais rapidamente que no método de Euler por diminuição do tamanho do passo;

O método de Heun calcula estimativas correctas no caso de a função y(t) ser quadrática.

31Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 32: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Método do Ponto Médio

Melhoria do método de Euler baseada na derivada calculada na estimativa do ponto médio do intervalo:

Tal como no método de Heun, o erro local de truncatura é O(h3) e o erro global de truncatura é O(h2).

32Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 33: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Métodos de Runge-Kutta

Os métodos de Runge-Kutta (RK) conseguem a precisão das séries de Taylor sem calcular derivadas de ordem superior.

Onde a função incremento pode ser escrita como:

com a’s constantes e k’s:

em que os p’s e os q’s são constantes.

a1k1 a2k2 ankn

k1 f ti, yi k2 f ti p1h, yi q11k1h k3 f ti p2h, yi q21k1h q22k2h

kn f ti pn1h, yi qn1,1k1h qn1,2k2h qn1,n1kn1h

33Equações Diferenciais – Problemas de Valor Inicial

yi1 yi h

30 Maio 2017

Page 34: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Métodos de Runge-Kutta

Vários tipos de métodos RK podem ser obtidos considerando um numero diferente de termos na função incremento.

O método de Euler é um método RK de 1ª ordem com n=1.

Uma vez escolhido o n, os valores dos a’s, p’s, e q’s são calculados igualando a equação geral a uma expansão da série de Taylor.

Para n=1:

a1=1

a1k1 a2k2 ankn

ii ytfk ,1

34Equações Diferenciais – Problemas de Valor Inicial

hyy ii 1

30 Maio 2017

Page 35: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Métodos de Runge-Kutta

Para n=2:

Os valores de a1, a2, p1, e q11 são obtidos igualando a equação de 2ª ordem à expansão de 2º ordem da série de Taylor.

São derivadas as seguintes 3 equações para as 4 incógnitas:

35Equações Diferenciais – Problemas de Valor Inicial

),(

),(

)(

11112

1

22111

hkqyhpxfk

yxfk

hkakayy

ii

ii

ii

2

1

2

1

1

112

12

21

qa

pa

aa

Um valor é assumido para uma das incógnitas

(a2) e resolve-se em relação às outras 3

30 Maio 2017

Page 36: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Métodos de Runge-Kutta

Para n=2:

Como podemos escolher infinitos valores para a2, existem infinitos métodos RK de 2ª ordem.

Qualquer um daria exactamente o mesmo resultado para funções (soluções da EDO) quadráticas, lineares, ou constantes.

No entanto, os resultados seriam diferentes para soluções mais complicadas.

Os 3 métodos mais usados são:

Método de Huen sem iteração (a2 =1/2)

Método do ponto Médio (a2 =1)

Método de Ralston (a2 =2/3)

36Equações Diferenciais – Problemas de Valor Inicial

),(

),(

)(

11112

1

22111

hkqyhpxfk

yxfk

hkakayy

ii

ii

ii

30 Maio 2017

Page 37: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Métodos de Runge-Kutta

Os métodos RK mais populares são os de 4ª ordem, e a

forma mais usada é:

com:

hkkkkyy ii 43211 226

1

k1 f ti , yi

k2 f ti 1

2h, yi

1

2k1h

k3 f ti 1

2h, yi

1

2k2h

k4 f ti h, yi k3h

37Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 38: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Métodos de Runge-Kutta Exemplo: usar o método RK de 4ª ordem para integrar:

de t = 0 a t = 1 com um passo 1.

Solução:

38Equações Diferenciais – Problemas de Valor Inicial

yey t 5.04 8.0

2)0( y

30 Maio 2017

Page 39: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Métodos de Runge-Kutta Exemplo: usar o método RK de 4ª ordem para integrar:

de t = 0 a t = 1 com um passo 1.

Solução:

39Equações Diferenciais – Problemas de Valor Inicial

yey t 5.04 8.0

2)0( y

30 Maio 2017

Page 40: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Sistemas de Equações

Muito problemas requerem a resolução de um

sistema de equações diferenciais ordinárias:

A solução de um sistema com n equações requer a

especificação de n condições.

dy1dt

f1 t, y1, y2 , , yn

dy2

dt f2 t, y1, y2 , , yn

dyndt

fn t, y1, y2 , , yn

40Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 41: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Sistemas de Equações

Uma equação diferencial de ordem k:

Pode ser transformada num sistema equivalente de kequações 1ª ordem:

41Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 42: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Sistemas de Equações

Os métodos para resolução de uma equação também

podem ser usados para resolver sistemas de equações

O método tem que ser aplicado a todas as equações em

cada passo antes de proceder ao passo seguinte.

42Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 43: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Sistemas de Equações Exemplo:

43Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 44: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Sistemas de Equaçõesfunction [tp,yp] = rk4sys(dydt,tspan,y0,h,varargin)

% rk4sys: fourth-order Runge-Kutta for a system of ODEs

% [t,y] = rk4sys(dydt,tspan,y0,h,p1,p2,...): integrates

% a system of ODEs with fourth-order RK method

% input:

% dydt = name of the M-file that evaluates the ODEs

% tspan = [ti, tf]; initial and final times with output

% generated at interval of h, or

% = [t0 t1 ... tf]; specific times where solution output

% y0 = initial values of dependent variables

% h = step size

% p1,p2,... = additional parameters used by dydt

% output:

% tp = vector of independent variable

% yp = vector of solution for dependent variables

44Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 45: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Sistemas de Equaçõesif nargin<4,error('at least 4 input arguments required'), end

if any(diff(tspan)<=0),error('tspan not ascending order'), end

n = length(tspan);

ti = tspan(1);tf = tspan(n);

if n == 2

t = (ti:h:tf)'; n = length(t);

if t(n)<tf

t(n+1) = tf;

n = n+1;

end

else

t = tspan;

end

tt = ti; y(1,:) = y0;

np = 1; tp(np) = tt; yp(np,:) = y(1,:);

i=1;

45Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 46: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Sistemas de Equaçõeswhile(1)

tend = t(np+1);

hh = t(np+1) - t(np);

if hh>h,hh = h;end

while(1)

if tt+hh>tend,hh = tend-tt;end

k1 = dydt(tt,y(i,:),varargin{:})';

ymid = y(i,:) + k1.*hh./2;

k2 = dydt(tt+hh/2,ymid,varargin{:})';

ymid = y(i,:) + k2*hh/2;

k3 = dydt(tt+hh/2,ymid,varargin{:})';

yend = y(i,:) + k3*hh;

k4 = dydt(tt+hh,yend,varargin{:})';

phi = (k1+2*(k2+k3)+k4)/6;

y(i+1,:) = y(i,:) + phi*hh;

tt = tt+hh;

i=i+1;

if tt>=tend,break,end

end

np = np+1; tp(np) = tt; yp(np,:) = y(i,:);

if tt>=tf,break,end

end

46Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 47: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Sistemas de Equações Exemplo:

Solução:function dy = dydtsys(t, y)

dy = [y(2);9.81-0.25/68.1*y(2)^2];

>> [t y] = rk4sys(@dydtsys,[0 10],[0 0],2);

>> disp([t' y(:,1) y(:,2)])

0 0 0

2.0000 19.1656 18.7256

4.0000 71.9311 33.0995

6.0000 147.9521 42.0547

8.0000 237.5104 46.9345

10.0000 334.1626 49.4027

47Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017

Page 48: Equações Diferenciais Problemas de Valor InicialProblema de Valor Inicial: Se todas as condições são especificadas para o mesmo valor da variável independente. Ex: Problema de

Sistemas de Equações Exemplo:

Solução:function dy = dydtsys(t, y)

dy = [y(2);9.81-0.25/68.1*y(2)^2];

>> tspan=[0 6 10];

>> [t y] = rk4sys(@dydtsys,tspan,[0 0],2);

>> disp([t' y(:,1) y(:,2)])

0 0 0

6.0000 147.9521 42.0547

10.0000 334.1626 49.4027

48Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017