View
6
Download
0
Category
Preview:
Citation preview
Equações Diferenciais
Problemas de Valor Inicial
Computação – 2º Semestre 2016/2017
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Sistemas de Equações Exemplo:
43Equações Diferenciais – Problemas de Valor Inicial 30 Maio 2017
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
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
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
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
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
Recommended