aula 14 métodos numéricos para sistemas de …valle/teaching/2015/ms211/aula14.pdf · aula 14...
TRANSCRIPT
![Page 1: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/1.jpg)
Aula 14Métodos Numéricos paraSistemas de Equações
Diferenciais e Equações deOrdem Superior.
MS211 - Cálculo Numérico
Marcos Eduardo Valle
Departamento de Matemática AplicadaInstituto de Matemática, Estatística e Computação Científica
Universidade Estadual de Campinas
![Page 2: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/2.jpg)
Na aula anterior, apresentamos os métodos de Runge-Kuttapara resolução de um PVI da forma:{
y ′ = f (x , y),y(x0) = y0.
Na aula de hoje, veremos que os métodos de Runge-Kuttapodem ser aplicados também para a resolução numérica desistemas de equações diferenciais e equações de ordemsuperior, ambos com valores iniciais.
![Page 3: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/3.jpg)
Sistemas de Equações DiferenciaisUm sistema de equações diferenciais com valor inicial
y ′1 = f1(x , y1, y2, . . . , yn),
y ′2 = f2(x , y1, y2, . . . , yn),...
y ′n = f1(x , y1, y2, . . . , yn),
y1(x0) = y1,0,y2(x0) = y2,0,
...yn(x0) = yn,0,
pode ser escrito de forma mais compacta como
y′ = f(x ,y), y(x0) = y0,
em que x ∈ R e,
y(x) =
y1(x)y2(x)
...yn(x)
, f(x ,y) =
f1(x ,y)f2(x ,y)
...fn(x ,y)
e y0 =
y1,0y2,0
...y1,0
,
são vetores em Rn.
![Page 4: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/4.jpg)
Métodos de Euler
O método de Euler para sistemas de equações diferenciais é
yk+1 = yk + hf(xk ,yk ), ∀k = 0,1, . . . ,
em que y1,y2, . . . são aproximações para y(x1),y(x2), . . ..
Exemplo 1
Use o método de Euler para obter uma aproximação numéricada solução do sistema de equações diferenciais{
y ′ = z,z ′ = y + ex
y(0) = 1z(0) = 0
para x ∈ [0,0.2] usando h = 0.1.
![Page 5: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/5.jpg)
Resolução: A fórmula do método de Euler fornece[yk+1zk+1
]=
[ykzk
]+ h
[zk
yk + exk
].
Para k = 0, temos[y1z1
]=
[y0z0
]+ h
[z0
y0 + ex0
]=
[10
]+ 0.1
[0
1 + 1
]=
[1
0.2
].
Para k = 1, temos[y2z2
]=
[y1z1
]+h[
z1y1 + ex1
]=
[1
0.2
]+0.1
[0.2
1 + e0.2
]=
[1.02
0.4105
].
Portanto, encontramos as aproximações
y(0.2) ≈ 1.02 e z(0.2) ≈ 0.4105.
![Page 6: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/6.jpg)
Método de HeunDe um modo similar, o método de Heun para sistemas deequações diferenciais com valor inicial é
yk+1 = yk +h2(k1 + k2), ∀k = 0,1, . . . ,
em que
k1 = f(xk ,yk ) e k2 = f(xk + h,yk + hk1).
Exemplo 2
Use o método de Heun para obter uma aproximação numéricada solução do sistema de equações diferenciais{
y ′ = z,z ′ = y + ex
y(0) = 1z(0) = 0
para x ∈ [0,0.2] usando h = 0.1.
![Page 7: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/7.jpg)
Resolução: Para k = 0, o método de Heun fornece:
k1 = f(
x0,
[y0z0
])=
[z0
y0 + ex0
]=
[0
1 + e0
]=
[02
]e
k2 = f(
x0 + h,[y0z0
]+ hk1
)= f(
0 + h,[10
]+ h
[02
])= f(
0.1,[
10.2
])=
[0.2
1 + e0.1
]=
[0.2
2.1052
].
Logo,[y1z1
]=
[y0z0
]+
h2(k1 + k2) =
[10
]+
0.12
([02
]+
[0.2
2.1052
])=
[1.010000.20526
]
![Page 8: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/8.jpg)
Para k = 1, o método de Heun fornece:
k1 = f(
x1,
[y1z1
])=
[z1
y1 + ex1
]=
[0.20526
1.01 + e0.1
]=
[0.205262.1152
]e
k2 = f(
x1 + h,[y1z1
]+ hk1
)= f(
0.1 + h,[1.010000.20526
]+ h
[0.205262.1152
])= f(
0.2,[1.030530.41678
])=
[0.41678
1.03053 + e0.2
]=
[0.416782.2519
].
Logo,[y2z2
]=
[y1z1
]+
h2(k1 + k2)
=
[1.010000.20526
]+
0.12
([0.205262.1152
]+
[0.416782.2519
])=
[1.041100.42362
]
![Page 9: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/9.jpg)
Método de Runge-Kutta de Ordem 4
Finalmente, o método de Runge-Kutta de ordens 4 parasistemas de equações diferenciais é descrito por:
yk+1 = yk +h6(k1 + 2k2 + 2k3 + k4) ,
em que
k1 = f(xk ,yk ),
k2 = f(xk + h/2,yk + k1h/2),k3 = f(xk + h/2,yk + k2h/2),k4 = f(xk + h,yk + k3h).
![Page 10: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/10.jpg)
Exemplo 3
Use o método de Runge-Kutta de ordem 4 para obter umaaproximação numérica de{
y ′ = z,z ′ = y + ex
y(0) = 1z(0) = 0
para x ∈ [0,0.2] usando h = 0.1.
![Page 11: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/11.jpg)
Resolução: Para k = 0, temos
k1 = f(
x0,
[y0z0
])=
[02
],
k2 = f(
x0 +h2,
[y0z0
]+ k1
h2
)=
[0.10002.0513
]k3 = f
(x0 +
h2,
[y0z0
]+ k2
h2
)=
[0.10262.0563
],
k4 = f(
x0 + h,[y0z0
]+ k3h
)=
[0.20562.1154
].
Logo,
y1 = y0 +h6(k1 + 2k2 + 2k3 + k4) =
[1.01020.2055
].
![Page 12: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/12.jpg)
Para k = 1, temos
k1 = f(
x1,
[y1z1
])=
[0.20552.1154
],
k2 = f(
x1 +h2,
[y1z1
]+ k1
h2
)=
[0.31132.1823
]k3 = f
(x1 +
h2,
[y1z1
]+ k2
h2
)=
[0.31462.1876
],
k4 = f(
x1 + h,[y1z1
]+ k3h
)=
[0.42432.2630
].
Logo,
y2 = y1 +h6(k1 + 2k2 + 2k3 + k4) =
[1.04150.4241
].
![Page 13: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/13.jpg)
Modelo Presa-Predador
Considere duas espécies que interagem como presa-predador.Por exemplo, lobos e coelhos.
Denote por p(t) e q(t) a quantidade de presas e predadores noinstante t .
A dinâmica populacional das duas espécies pode ser descritapelo sistema de equações diferenciais, chamado equações deLotka-Volterra: {
p′ = ap − bpq,q′ = −cq + dpq,
em que a,b, c e d são constantes positivas.
![Page 14: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/14.jpg)
Considere
a = 0.25, b = 0.01, c = 1.00 e d = 0.01,
e a condição inicial
p0 = 80 e q0 = 30.
Nesse caso, encontramos as seguintes aproximações usandoos métodos de Euler, Heun e Runge-Kutta de ordem 4.
![Page 15: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/15.jpg)
Método de Euler
60
70
80
90
100
110
120
130
140
10 15 20 25 30 35 40 45
Presa
Predador
h=1.00
h=0.50
h=0.25
Exata
Note que a curva do método de Euler se aproxima“linearmente” da solução exata.
![Page 16: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/16.jpg)
Método de Heun
60
70
80
90
100
110
120
130
140
10 15 20 25 30 35 40 45
Presa
Predador
h=1.00
h=0.50
h=0.25
Exata
Para h = 1, a solução se afasta da solução exata. Ainda assim,a aproximação é melhor que as do método de Euler.
![Page 17: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/17.jpg)
Método de Runge-Kutta ordem 4
60
70
80
90
100
110
120
130
140
10 15 20 25 30 35 40 45
Presa
Predador
h=1.00
h=0.50
h=0.25
Exata
Encontramos boas aproximações mesmo com h = 1!
![Page 18: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/18.jpg)
Equações Diferenciais de Ordem SuperiorUma equação diferencial de ordem m
u(m) = g(x ,u,u′,u′′, . . . ,u(m−1)),
pode ser escrita como um sistema com m equaçõesdiferenciais de ordem 1
y′ = f (x ,y),
tomando
y1(x) = u(x), y2(x) = u′(x), . . . , ym(x) = u(m−1).
Especificamente, temosy ′1 = y2,
y ′2 = y3,...
y ′m = g(x , y1, y2, . . . , ym).
![Page 19: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/19.jpg)
Exemplo 4
Escreva o problema de valor inicial{u′′ − u = ex ,
u(0) = 1 e u′(0) = 0,
como um sistema de equações diferenciais com valor de inicial.
![Page 20: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/20.jpg)
Exemplo 4
Escreva o problema de valor inicial{u′′ − u = ex ,
u(0) = 1 e u′(0) = 0,
como um sistema de equações diferenciais com valor de inicial.
Resposta: Tomando y = u e z = u′, podemos escrever oproblema de valor inicial como{
y ′ = z,z ′ = y + ex ,
y(0) = 1z(0) = 0,
que é o mesmo sistema encontrado no Exemplo 1.
![Page 21: Aula 14 Métodos Numéricos para Sistemas de …valle/Teaching/2015/MS211/Aula14.pdf · Aula 14 Métodos Numéricos para Sistemas de Equações Diferenciais e Equações de Ordem](https://reader030.vdocuments.com.br/reader030/viewer/2022021805/5ba84d7909d3f25e2c8c8ae6/html5/thumbnails/21.jpg)
Considerações Finais
Na aula de hoje, vimos que os métodos de Runge-Kutta podemser aplicadas para aproximar a solução de um sistema deequações diferenciais de um modo direto.
Vimos também como escrever uma equação diferencial deordem superior como um sistema de equações diferenciais.
Durante toda abordagem, consideramos h fixo. Porém, amaioria dos softwares de computação científica usam métodosde passo variado. Os métodos de passo variado fazem umaestimativa do erro local a cada iteração. O método deRunge-Kutta-Fehlberg é um exemplo de método de passovariado.