Calculo Numerico
267 pág.

Calculo Numerico


DisciplinaCálculo Numérico14.733 materiais266.517 seguidores
Pré-visualização35 páginas
seja O(hN ); para eliminar o ca´lculo das derivadas faz-se
va´rias avaliac¸o\u2dces da func¸a\u2dco f a cada passo. Estes me´todos podem ser constru´\u131dos
para qualquer ordem N .
Fund. de Ca´lculo Nume´rico para Engenheiros 161
O me´todo de Runge-Kutta de segunda ordem e´ definido pelas equac¸o\u2dces:
yn+1 = yn +
h
2
(k1 + k2) (7.5)
onde
k1 = f(xn, yn)
k2 = f(xn + h, yn + hk1)
Exemplo 7.4: Demonstre como obter esta fo´rmula.
Soluc¸~ao: Considere a expansa\u2dco
yn+1 = yn + f [xn, y(xn)]h+
h2
2!
f \u2032[xn, y(xn)]
onde
yn+1 = yn + [f(ak1, bk2)]h
com a e b constantes. Assim
ak1 + bk2 = f [xn, y(xn)]h+
h2
2!
f \u2032[xn, y(xn)]
onde
k1 = f(xn, yn)
k2 = f [xn + ph, yn + qhf(xn), y(xn)]
Deve-se determinar a,b,q,p. Por expansa\u2dco em Se´ries de Taylor resulta
k2 = f [xn + ph, yn + qhf(xn), y(xn)] \u223c f(xn, yn) + phfx(xn, yn) + qhf(xn, yn)fy(xn, yn)
162 Cap´\u131tulo 7 - Soluc¸a\u2dco Nume´rica de EDO\u2019s
onde
fx(xn, yn) =
\u2202
\u2202x
f(x, y)
}
xn,yn
fy(xn, yn) =
\u2202
\u2202y
f(x, y)
}
xn,yn
pois
f(x, y) \u223c f(a+ h, b+ h2) \u223c f(a, b) + h1 \u2202f(x, y)
\u2202x
}
a,b
+ h2
\u2202f(x, y)
\u2202x
}
a,b
A substituic¸a\u2dco desta expressa\u2dco em yn+1 fornece
yn+1 = yn + h(ak1 + bk2) = yn + h[f(xn, yn) +
h
2
f \u2032(xn, yn)]
ou
yn+1 \u223c yn + h[af(xn, yn) + bf(xn + ph, yn) + qhf(xn, yn)]
e ainda
yn+1 = yn + ah[af(xn, yn)] + hb[fxn + bh
2pfx(xn, yn) + bqh
2f(xn, yn)fy(xn, yn)]
ou
yn+1 = yn + h(a+ b)f(xn, yn) + hb
2[pfx(xn, yn) + qf(xn, yn)fy(xn, yn)]
Como f\u2019(x,y)= ddx(x,y) = fx(x, y) + f(x, y)fy(x, y) pode-se escrever
yn+1 = yn + hf(xn, yn) +
h2
2!
f(xn, yn)fy(xn, yn)
Igualando as expresso\u2dces, obte´m-se
h(a+ b)f(xn, yn) + h
2[bpfx(xn, yn) + qbf(xn, yn)fy(xn, yn)] =
Fund. de Ca´lculo Nume´rico para Engenheiros 163
hf(xn, yn) + h
2
{
fx(xn, yn)
2!
+
1
2!
f(xn, yn)fy(xn, yn)
}
Desta forma a+b = 1, bp = 1/2 e bq = 1/2. Para b = 12 obte´m-se, a = b = 1/2,
p = q = 1.
Portanto, o me´todo de Runge-kutta de ordem 2 e´ dado por
y(n+ 1) = y(n) +
k1 + k2
2
k1 = hf(xn, yn)
k2 = hf(xn + h, yn + k1)
Exemplo 7.5: Obter a soluc¸a\u2dco aproximada da equac¸a\u2dco diferencial
d y
dx
= \u2212x y
y(0) = 1
no intervalo [0, 1], utilizando o me´todo de Runge-Kutta de segunda ordem com h =
0, 1.
Soluc¸~ao: A fo´rmula iterativa (7.5) neste caso fica
yn+1 = yn +
0, 1
2
(k1 + k2)
onde
k1 = \u2212xn yn
k2 = \u2212(xn + 0, 1)(yn + 0, 1 k1)
Como x0 = 0 e y0 = 1, os resultados obtidos sa\u2dco os seguintes:
164 Cap´\u131tulo 7 - Soluc¸a\u2dco Nume´rica de EDO\u2019s
n xn yn k1 k2 yn+1
0 0, 0 1, 000000000 0, 000000000 \u22120, 100000000 0, 995000000
1 0, 1 0, 995000000 \u22120, 099500000 \u22120, 197010000 0, 980174500
2 0, 2 0, 980174500 \u22120, 196034900 \u22120, 288171303 0, 955964190
3 0, 3 0, 955964190 \u22120, 286789257 \u22120, 370914106 0, 923079022
4 0, 4 0, 923079022 \u22120, 369231609 \u22120, 443077930 0, 882463545
5 0, 5 0, 882463545 \u22120, 441231772 \u22120, 503004221 0, 835251745
6 0, 6 0, 835251745 \u22120, 501151047 \u22120, 549595648 0, 782714410
7 0, 7 0, 782714410 \u22120, 547900087 \u22120, 582339521 0, 726202430
8 0, 8 0, 726202430 \u22120, 580961944 \u22120, 601295612 0, 667089552
9 0, 9 0, 667089552 \u22120, 600380597 \u22120, 607051492 0, 606717947
O me´todo de Runge-Kutta de ordem N = 4 e´ o mais popular. Ele e´ em geral uma
boa escolha, pois e´ bastante preciso, esta´vel e fa´cil de programar. Sua forma e´ a
seguinte:
yn+1 = yn +
h
6
(k1 + 2 k2 + 2 k3 + k4) (7.6)
onde
k1 = f(tn, yn)
k2 = f
(
tn +
h
2
, yn +
h
2
k1
)
k3 = f
(
tn +
h
2
, yn +
h
2
k2
)
k4 = f (tn + h, yn + hk3)
a demonstrac¸a\u2dco desta fo´rmula segue o mesmo procedimento indicado para o me´todo
de ordem 2, pore´m e´ muito mais trabalhosa, na\u2dco sendo apresentada.
Ao inve´s de mostrar o desenvolvimento rigoroso destas fo´rmulas, e´ interessante
observar algumas caracter´\u131sticas importantes. Considere o gra´fico de y = y(t) no
Fund. de Ca´lculo Nume´rico para Engenheiros 165
primeiro subintervalo [t0, t1]. Os valores em (7.6) sa\u2dco aproximac¸o\u2dces para as derivadas
desta curva em determinados pontos. Aqui, k1 e´ a derivada na extremidade esquerda
do intervalo, k2 e k3 sa\u2dco duas estimativas para a derivada no ponto central e k4 e´ a
derivada na extremidade direita (veja a figura 7.2).
Figura 7.2: Runge-Kutta de ordem 4
O ponto seguinte, (t1, y1), e´ obtido pela integrac¸a\u2dco
y(t1)\u2212 y(t0) =
\u222b t1
t0
f [t, y(t)] dt. (7.7)
Se a regra de Simpson e´ aplicada a` esta equac¸a\u2dco com espac¸amento h/2, enta\u2dco a
aproximac¸a\u2dco para a integral fica\u222b t1
t0
f [t, y(t)] dt \u2248 h
6
[
f(t0, y(t0)) + 4 f(t1/2, y(t1/2)) + f(t1, y(t1))
]
, (7.8)
onde t1/2 e´ o ponto me´dio do intervalo.
Tre\u2c6s valores da func¸a\u2dco f sa\u2dco necessa´rios; portanto, faz-se a escolha: f(t0, y(t0)) =
k1 e f(t1, y(t1)) \u2248 k4 e para o valor no centro do intervalo escolhe-se uma me´dia
166 Cap´\u131tulo 7 - Soluc¸a\u2dco Nume´rica de EDO\u2019s
entre k2 e k3, isto e´,
f [t1/2, y(t1/2)] \u2248
k2 + k3
2
.
Estes valores sa\u2dco substitu´\u131dos em 7.8, que e´ usada na equac¸a\u2dco 7.7 para determinar
y1:
y1 = y0 +
h
6
[
k1 +
4 (k2 + k3)
2
+ k4
]
.
Quando esta fo´rmula e´ simplificada, percebe-se que esta e´ a equac¸a\u2dco 7.6 para n = 0.
Exemplo 7.6: Obter a soluc¸a\u2dco aproximada da equac¸a\u2dco diferencial
d y
dx
= \u2212x y
y(0) = 1
no intervalo [0, 1] utilizando o me´todo de Runge-Kutta de quarta ordem com h = 0, 1.
A fo´rmula iterativa (7.6) neste caso fica
yn+1 = yn +
0, 1
2
(k1 + 2 k2 + 2 k3 + k4)
onde
k1 = \u2212xn yn
k2 = \u2212(xn + 0, 05)(yn + 0, 05 k1)
k3 = \u2212(xn + 0, 05)(yn + 0, 05 k2)
k4 = \u2212(xn + 0, 1)(yn + 0, 1 k3)
Como x0 = 0 e y0 = 1, os resultados obtidos sa\u2dco indicados na tabela:
Fund. de Ca´lculo Nume´rico para Engenheiros 167
n xn yn k1 k2 k3 k4 yn+1
0 0, 0 1, 0000000 0, 0000000 \u22120, 0500000 \u22120, 0498750 \u22120, 0995012 0, 995012479
1 0, 1 0, 99501248 \u22120, 09950125 \u22120, 14850561 \u22120, 14813808 \u22120, 19603973 0, 98019867
2 0, 2 0, 98019867 \u22120, 19603973 \u22120, 24259917 \u22120, 24201720 \u22120, 28679909 0, 95599748
3 0, 3 0, 95599748 \u22120, 28679924 \u22120, 32958013 \u22120, 32883147 \u22120, 36924573 0, 92311634
4 0, 4 0, 92311634 \u22120, 36924654 \u22120, 40709431 \u22120, 40624273 \u22120, 44124604 0, 88249690
5 0, 5 0, 88249690 \u22120, 44124845 \u22120, 47322390 \u22120, 47235922 \u22120, 50115659 0, 83527021
6 0, 6 0, 83527021 \u22120, 50116213 \u22120, 52663787 \u22120, 52580991 \u22120, 54788245 0, 78270454
7 0, 7 0, 78270454 \u22120, 54789318 \u22120, 56648241 \u22120, 56578532 \u22120, 58090081 0, 72614905
8 0, 8 0, 72614905 \u22120, 58091924 \u22120, 59253763 \u22120, 59204384 \u22120, 60025020 0, 66697684
9 0, 9 0, 66697684 \u22120, 60027916 \u22120, 60511474 \u22120, 60488505 \u22120, 60648834 0, 60653073
7.2.3 Caracter´\u131sticas dos me´todos de passo simples
O me´todo de Euler na\u2dco e´ muito usado em problemas pra´ticos em virtude da ne-
cessidade de intervalos pequenos para obter a precisa\u2dco desejada. Os me´todos de
Runge-Kutta sa\u2dco de maior exatida\u2dco que o de Euler e evitam o ca´lculo das derivadas
de y(x) calculando a func¸a\u2dco f(x,y) em pontos selecionados em cada sub-intervalo. To-
dos os me´todos de passo simples sa\u2dco auto-inicializa´veis. Em particular os me´todos
de Runge-Kutta:
\u2022 Na\u2dco precisam do ca´lculo de derivadas de ordem elevada;
\u2022 Permitem a troca fa´cil do tamanho do intervalo;
\u2022 Dif´\u131ceis de avaliar o erro de truncamento;
\u2022 Fa´ceis de vetorizar e paralelizar.
7.3 Me´todos de passo mu´ltiplo
Os me´todos que executam mais de um passo ou que utilizam informac¸o\u2dces em mais
de um ponto ale´m do ponto anterior para calcular yn+1 sa\u2dco denominados me´todos
168 Cap´\u131tulo 7 - Soluc¸a\u2dco Nume´rica de EDO\u2019s
de passo mu´ltiplo. Dentre eles sa\u2dco indicados os me´todos da fam\u131´lia Adams e de
predic¸a\u2dco-correc¸a\u2dco.
7.3.1 Me´todos da fam\u131´lia Adams e de predic¸a\u2dco correc¸a\u2dco
De acordo com o teorema fundamental do ca´lculo, sabe-se que
y(tn+1)\u2212 y(tn) =
\u222b tn+1
tn
y\u2032(t) dt (7.9)
A ide´ia ba´sica dos me´todos