| | | | |

4.4 Método de Euler Implícito

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

Seja o Problema de Valor Inicial (PVI)

y=f(t,y),t0<ttf, (4.141a)
y(t0)=y0, (4.141b)

com dados t0,tf e y0, sendo a função y=y(t) a incógnita.

Consideramos a discretização no tempo t(k):=t0+hk, k=0,1,2,,n, com passo h:=(tft0)/n. De (4.4) e do Teorema Fundamental do Cálculo temos

y(t(k+1))=y(t(k))+t(k)t(k+1)f(t,y)𝑑t. (4.142)

A integral pode ser aproximada por

t(k)t(k+1)f(t,y)𝑑thf(t(k+1),y(k+1)) (4.143)

donde obtemos

y(t(k+1))y(t(k))+hf(t(k+1),y(k+1)). (4.144)

Isto nos motiva a iteração do Método de Euler Implícito1616endnote: 16Leonhard Paul Euler, 1707-1783, matemático e físico suíço. Fonte: Wikipédia: Ronald Fisher.

y(0)=y0, (4.145)
y(k+1)=y(k)+hf(t(k+1),y(k+1)),

sendo y(k)y(t(k)), k=0,1,2,,n.

Exemplo 4.4.1.

Consideremos o seguinte PVI

yy=sen(t),t>0 (4.146a)
y(0)=12. (4.146b)

Na Tabela 4.6, temos as aproximações y~(1)y(1) computadas pelo Método de Euler Implícito com diferentes passos h.

h y~(1) |y~(1)y(1)|
101 2.23660 2.1e1
102 2.04660 1.9e2
103 2.02930 1.9e3
104 2.02759 1.9e4
105 2.02741 1.9e5
106 2.02740 1.9e6
Tabela 4.6: Resultados referentes ao Exemplo 4.4.1
Código 12: eulerImp.py
1import numpy as np
2from scipy.optimize import fsolve
3
4def eulerimp(f, t0, y0, h, n):
5    t = t0
6    y = y0
7    for k in range(n):
8        y = fsolve(lambda x:
9                   x - y - h*f(t+h, x),
10                   x0 = y, xtol=1e-14)[0]
11        t += h
12    return t, y
13
14def f(t, y):
15    return y + np.sin(t)
16
17# analítica
18def exata(t):
19    return np.exp(t) - 0.5*np.sin(t) - 0.5*np.cos(t)
20
21h = 1e-1
22n = round(1./h)
23t,y = eulerimp(f, 0., 0.5, h, n)
24print(f'{h:.1e}: {y:.5e} {np.abs(y-exata(1)):.1e}')

4.4.1 Análise Numérica

O Método de Euler Implícito é O(h). De fato, tomando o polinômio de Taylor

y(t)=y(t+h)hf(t+h,y(t+h))+O(h2), (4.147)

temos

τ(t,y;h) :=Δ(t,y;h)Φ(t,y;h) (4.148)
=y(t+h)y(t)h:=Δf(t+h,y(t+h);h):=Φ (4.149)
=O(h). (4.150)

Estabilidade

Um método é dito ser estável quando pequenas perturbações na condição inicial produzem pequenas alterações nas aproximações subsequentes, i.e. os resultados dependem continuamente dos dados iniciais.

Exemplo 4.4.2.

Consideramos o seguinte PVI

y=40y,0<t1, (4.151a)
y(0)=13. (4.151b)

A solução exata é y(t)=15e40t. Na tabela abaixo, temos os resultados obtidos por computações com o Método de Euler (Explícito, y~e) e o Método de Euler Implícito (y~i) para h=101 e 102.

h |y~e(1)y(1)| |y~i(1)y(1)|
101 2.0e+04 3.8e08
102 1.4e18 8.1e16

Estabilidade do Euler Explícito

Consideramos o PVI

y=λy,t>0, (4.152a)
y(0)=y0, (4.152b)

para dados λ<0 e y0.

A iteração do Método de Euler Explícito para este PVI consiste em

y(0)=y0, (4.153)
y(k+1)=y(k)+hλy(k),

donde temos

y(k+1)=(1+hλ)k+1y0. (4.154)

Tendo em vista a solução exata y(t)=y0eλt, temos que o erro global é

|y(t(k))y(k)| =|y0eλhky0(1+hλ)k| (4.155)
=|(eλh)k(1+hλ)k||y0| (4.156)

e, portanto, a exatidão é determinada por quão bem 1+hλ aproxima eλh. Observamos que, para qualquer λ<0, (eλh)k0 quando t. Por outro lado, para y(k)0, quando t0, é necessário que |1+hλ|<1, i.e. o passo do Método de Euler fica restrito

h<2|λ| (4.157)

Supondo um erro de arredondamento δ0 (apenas) na condição inicial, as aproximações subsequentes do Método de Euler Explícito ficariam

y(k+1)=(1+hλ)k+1(y0+δ0), (4.158)

donde temos que

δ(k)=(1+hλ)kδ0 (4.159)

é o valor propagado de δ0 na k-ésima iteração. Ou seja, quando |1+hλ|>1, temos que δ(k) quando k e o método é instável. Concluímos que o Método de Euler Explícito é estável para

h<2|λ|. (4.160)

Estabilidade do Euler Implícito

O Método de Euler Implícito é incondicionalmente estável. Para o PVI (4.4.1), o método produz as aproximações

y(k)=(1hλ)ky0. (4.161)

Aqui, para qualquer λ<0, temos que

(1hλ)k0,k, (4.162)

para qualquer escolha do passo h>0. Isto mostra a estabilidade incondicional do método. Também, o Exercício 4.4.7 mostra que o método é convergente para o PVI (4.4.1).

4.4.2 Exercícios

E. 4.4.1.

Considere o seguinte problema de valor inicial

y=y+1, 0<t1, (4.163a)
y(0)=0, (4.163b)

com solução exata y(t)=et1. Use o Método de Euler Implícito com h=101 para computar uma aproximação de y(1). Então, verifique a ordem de convergência para diferentes passos h=101,102,103 e 104.

Resposta.

Dica.

y(k+1)=y(k)+hf(t(k+1),y(k+1)) (4.164a)
y(k+1)=y(k)+h(y(k+1)+1) (4.164b)
y(k+1)=y(k)+h1h. (4.164c)
E. 4.4.2.

Considere o seguinte problema de valor inicial

y=50y+50,0<t1, (4.165a)
y(0)=2, (4.165b)

com solução exata y(t)=1+e50t. Com h=101, compute a aproximação de y(1) dada pelo

  1. a)

    Método de Euler Explícito.

  2. b)

    Método de Euler Implícito.

Por que os resultados são tão diferentes entre os métodos? Escolha um passo h em que ambos produzam resultados satisfatórios e justifique sua escolha.

Resposta.

Dica: consulte a condição de estabilidade (4.160).

E. 4.4.3.

Use o Método de Euler Implícito, com h=101, para computar aproximações para a solução do PVI discutido no Exemplo 4.1.1. Compare os resultados com aqueles apresentados com o Método de Euler Explícito.

E. 4.4.4.

O problema de valor inicial

y=π[cos2(πt)sen2(πt)],t>0, (4.166a)
y(0)=0. (4.166b)

tem solução analítica y(t)=sen(πt)cos(πt). Compute a aproximação y~(1.5)y(1.5) pelo Método de Euler Implícito com passo h=101 e forneça o erro ε:=|y~(1.5,h)y(1.5)|.

Resposta.

y~(1.5)=6.65400e1, ε=6.7E01

E. 4.4.5.

Use o Método de Euler Implícito para computar a solução de

y=e2t2y,0<t1, (4.167a)
y(0)=0. (4.167b)

Escolha um passo h adequado de forma que y(1) seja computado com precisão de 5 dígitos significativos.

E. 4.4.6.

Considere o seguinte problema de valor inicial

y+ey2+1=2,t>1, (4.168a)
y(1)=1. (4.168b)

Use o Método de Euler Implícito para computar o valor aproximado de y(2) com precisão de 6 dígitos significativos.

Análise Numérica

E. 4.4.7.

Mostre que o Método de Euler Implícito é convergente para a solução exata do PVI (4.4.1) para qualquer λ<0.

Resposta.
y(t(k)) =y0eλt(k) (4.169)
=y0limh0+(1hλ)t(k)/h (4.170)
=y0limh0+(1hλ)k (4.171)
=limh0+y(k). (4.172)

Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!