Use o botão abaixo para reportar erros ou dar sugestões.

Cálculo Numérico - Versão Python

10.8 Métodos de Runge-Kutta implícitos


Nas seções anteriores contruímos os métodos de Runge-Kutta implícito, nesta seção veremos uma nova família de métodos chamados implícitos. Nos métodos implícitos o processo recursivo produz uma equação implícita para y(n+1) em termos de y(n), como por exemplo:

y(n+1) = y(n) + hy(n+1) y(1) = 1 (10.203)

para resolver o problema de valor inicial dado por: y(t) = y(t) (10.204) y(0) = 1 (10.205)

Note que este método é implícito pois a expressão que define a iteração depende de u(n+1) dos dois lados da Equação (10.203), exigindo que o termo seja isolado para a aplicação do método.

10.8.1 Método de Euler implícito


Contruiremos, agora, o mais simples dos métodos para resolver problemas de valor inicial: o método de Euler implícito, uma variante do método de Euler (explícito) que vimos na Seção 10.2. Seguinte o mesmo raciocício daquela seção, integramos o problema de valor inicial dado por u(t) = f(t,u(t)) (10.206) u(t(1)) = a (10.207)

de t(1) até t(2) obtemos (como feito anteriormente) para obter u(t(2)) = u(t(1)) +t(1)t(2) f(t,u(t))dt (10.208)

Diferentemente do método de Euler estudado, o método de Euler implícito aproxima a função f(t,u) pela uma função constante f(t,u(t)) f(t(2),u(2)) e, assim, obtemos o seguinte esquema: u(2) = u(1) + hf(t(2),u(2)) (10.209)

Generalizando este procedimento para tn obtemos o método de Euler implícito u(n+1) = u(n) + hf(t(n+1),u(n+1)). (10.210)

Note que este método é implícito (a equação é implícita) pois depende de un+1 dos dois lados da equação. Se a função f for simples o suficiente, podemos resolver a equação isolando o termo un+1. Se isso não for possível, devemos usar um dos métodos vistos anteriormente para calcular as raízes da equação (por exemplo, método da bissecção e método de Newton).

Exemplo 10.8.1. Considere o problema de valor inicial dado por u(t) = λu(t) (10.211) u(0) = 1 (10.212)

A relação de recorrência do método de Euler implícito é dado por: y(n+1) = y(n)hλy(n+1) (10.213) y(1) = 1 (10.214)

Isolando a y(n+1) na primeira equação, obtemos o processo iterativo dado por: y(n+1) = y(n) 1 - λh (10.215) y(1) = 1 (10.216)

10.8.2 O método trapezoidal


O método de Euler aproxima a função f(t,u) como uma constante no intervalo [t(1),t(2)]. O método trapezoidal é muito semelhante ao método de Euler melhorado estudado na Seção 10.3, integramos de t(1) até t(2) a equação diferencial envolvida no problema de valor inicial

u(t) = f(t,u(t)),t > t(1) u(t(1)) = a. (10.217)

para obter: t(1)t(2) u(t)dt = t(1)t(2) f(t,u(t))dt (10.218) u(t(2)) - u(t(1)) = t(1)t(2) f(t,u(t))dt (10.219) u(t(2)) = u(t(1)) +t(1)t(2) f(t,u(t))dt (10.220)

Exatamente como no método de Euler melhorado, aplicamos a regra do trapézio (ver 9.2.2) à integral envolvida no lado direito da expressão, isto é: t(1)t(2) f(t,u(t))dt = f t(1),u(t(1)) + f t(2),u(t(2)) 2 h + O(h3) (10.221)

onde h = t(2) - t(1).

Repetindo este procedimento para cada n, obtemos o esquema iterativo do método trapezoidal: u(n+1) = u(n) + h 2 f(t(n),u(n)) + f(t(n+1),u(n+1)) (10.222) u(1) = a (10.223)

Exemplo 10.8.2. Considere o problema de valor inicial dado por u(t) = λu(t) (10.224) u(0) = 1 (10.225)

onde λ é uma constante. A relação de recorrência do método de Euler trapezoidal é dado por: y(n+1) = y(n) - λh 2 y(n+1) + y(n) (10.226) y(1) = 1 (10.227)

Isolando a y(n+1) na primeira equação, obtemos o processo iterativo dado por: y(n+1) = 1 + λh2 1 - λh2y(n) (10.228) y(1) = 1 (10.229)

10.8.3 O método theta


O método theta é uma generalização dos métodos de Euler e trapezoidal. A relação de recorrência do método theta é dada por: u(n+1) = u(n) + h(θf(t(n),u(n)) + (1 - θ)f(t(n+1),u(n+1))) (10.230)

Observe que quando θ = 1, a relação recai no método de Euler, quando θ = 1 2, no método trapezoidal e quando θ = 0, no método de Euler implícito.

Exercícios resolvidos


ER 10.8.1. Considere o problema de valor inicial dado por: y(t) = y(t) 1 - y(t) , (10.231) y(0) = 1 2. (10.232)

Construa a recursão via método de Euler implícito e explicite o termo y(n+1).

Solução. O método de Euler implícito produz a seguinte recursão:
y(n+1) = y(n) + hy(n+1) 1 - y(n+1) (10.233)

a qual pode ser escrita como:

h y(n+1) 2 + (1 - h)y(n+1) - y(n) = 0 (10.234)

Usando a fórmula da equação quadrática temos:

y(n+1) = - (1 - h) ±(1 - h)2 + 4hy(n) 2h (10.235)

Como a condição inicial é positiva, é fácil ver que y(t) > 0 para todo t e, portanto: y(n+1) = - (1 - h) + (1 - h)2 + 4hy(n) 2h (10.236) = (1 - h) - 1 + 1 + 4hy(n) (1-h)2 2h (10.237) = (1 - h) 2h 1 + 4hy(n) (1 - h)2 - 1 (10.238) = (1 - h) 2h 4hy(n) (1 - h)2 1 1 + 4hy(n) (1-h)2 + 1 (10.239) = 2 (1 - h) 1 1 + 1 + 4hy(n) (1-h)2 y(n) (10.240) (10.241)

Exercícios


Esta seção carece de exercícios. Clique em e inicie a editá-la agora mesmo. Veja outras formas de participar clicando aqui.

Creative Commons License Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 15/5/2019 às 15:24:50.

Informe erros ou edite você mesmo!