| | | | |

4.1 Método de Euler

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

Dado um Problema de Valor Inicial (PVI)

y(t) =f(t,y(t)),t>t0, (4.2a)
y(t0) =y0, (4.2b)

temos que f(t,y) é a derivada da solução y(t) no tempo t. Então, aproximando a derivada pela razão fundamental de passo h>0

y(t)y(t+h)y(t)h, (4.3)

obtemos

y(t+h)y(t)hf(t,y) (4.4)
y(t+h)y(t)+hf(t,y(t)). (4.5)

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

y(0) =y0, (4.6a)
y(k+1) =y(k)+hf(t(k),y(k)), (4.6b)

com k=0,1,2,,n, y(k)y(t(k)), t(k)=t0+kh e passo h>0.

Exemplo 4.1.1.

Consideramos o seguinte problema de valor inicial

yy =sen(t),0<t<1, (4.7a)
y(0) =12. (4.7b)

Sua solução analítica é

y(t)=et12sen(t)12cos(t). (4.8)

Para computarmos a solução pelo Método de Euler, reescrevemos o problema da seguinte forma

y=y+sen(t),0<t<1, (4.9a)
y(0)=12, (4.9b)

donde identificamos f(t,y):=y+sen(t), t0=0 e y0=1/2.

Tabela 4.1: Resultados obtidos para o problema do Exemplo 4.1.1 com h=1e1.
k t(k) y(k) y(t(k))
0 0.0 5.00e1 5.00e1
1 0.1 5.50e1 5.58e1
2 0.2 6.15e1 6.32e1
3 0.3 6.96e1 7.24e1
4 0.4 7.96e1 8.37e1
5 0.5 9.14e1 9.70e1
6 0.6 1.05e+0 1.13e+0
7 0.7 1.22e+0 1.31e+0
8 0.8 1.40e+0 1.52e+0
9 0.9 1.61e+0 1.76e+0
10 1.0 1.85e+0 2.03e+0
Refer to caption
Figura 4.1: Esboço das soluções numérica (pontos) e analítica (linha) para o problema do Exemplo 4.1.1.
Código 8: euler.py
1def euler(f, t0, y0, h, n):
2    t = np.empty(n+1)
3    t[0] = t0
4    y = np.empty(n+1)
5    y[0] = y0
6    for k in range(n):
7        t[k+1] = t[k] + h
8        y[k+1] = y[k] + h*f(t[k], y[k])
9    return t, y

4.1.1 Análise Numérica

O Método de Euler com passo h aplicado ao problema de valor inicial (4.1), pode ser escrito da seguinte forma

y~(t(0);h) =y0, (4.10a)
y~(t(k+1);h) =y~(t(k);h)+hΦ(t(k),y~(t(k));h), (4.10b)

onde y~(t(k)) representa a aproximação da solução exata y no tempo t(k)=t0+kh, k=0,1,2,. Métodos que podem ser escritos dessa forma, são chamados de Métodos de Passo Simples (ou único). No caso específico do Método de Euler, temos

Φ(t,y;h):=f(t,y(t)). (4.11)

Consistência

Agora, considerando a solução exata y de (4.1), introduzimos

Δ(t,y;h):={y(t+h)y(t)h,h0,f(t,y(t)),h=0. (4.12)

Com isso, vamos analisar o chamado erro de discretização local

τ(t,y;h):=Δ(t,y;h)Φ(t,y;h), (4.13)

que estabelece uma medida quantitativa com que a solução exata y(t) no tempo t+h satisfaz a iteração do método de passo simples.

Definição 4.1.1.

(Consistência.) Um método de passo simples é dito ser consistente quando

limh0τ(t,y;h)=0, (4.14)

ou, equivalentemente, quando

limh0Φ(t,y;h)=f(t,y). (4.15)
Observação 4.1.1.

(Consistência do Método de Euler.) Da Definição 4.1.1, temos que o Método de Euler é consistente. De fato, temos

limh0τ(t,y;h) =limh0(Δ(t,y;h)Φ(t,y;h)) (4.16)
=limh0(y(t+h)y(t)hf(t,y(t))) (4.17)
=y(t)f(t,y(t))=0. (4.18)

A ordem do erro de discretização local de um método de passo simples é dita ser p, quando

τ(t,y;h)=O(hp), (4.19)

ou seja, quando

limh0τ(t,y;h)hp=C, (4.20)

para alguma constante C.

Para determinarmos a ordem do Método de Euler, tomamos a expansão em série de Taylor99endnote: 9Brook Taylor, 1685 - 1731, matemático britânico. Fonte: Wikipédia:Brook Taylor. da solução exata y(t) em torno de t, i.e.

y(t+h)=y(t)+hy(t)+h22y′′(t)+h36y′′′(t+θh), (4.21)

para algum 0<θ<1. Como y(t)=f(t,y(t)), temos

y′′(t) =ddtf(t,y(t)) (4.22)
=ft(t,y)+fy(t,y)y (4.23)
=ft(t,y)+fy(t,y)f(t,y). (4.24)

Então, rearranjando os termos em (4.21), obtemos

Δ(t,y;h)=f(t,y(t))+h2[ft(t,y)+fy(t,y)f(t,y)]+O(h2). (4.25)

Portanto, para o Método de Euler temos

τ(t,y;h) :=Δ(t,y;h)Φ(t,y;h) (4.26)
=Δ(t,y;h)f(t,y) (4.27)
=h2[ft(t,y)+fy(t,y)f(t,y)]+O(h2) (4.28)
=O(h). (4.29)

Isto mostra que o Método de Euler é de ordem 1.

Convergência

A análise acima trata apenas da consistência do Método de Euler. Para analisarmos a convergência de métodos de passo simples, definimos o erro de discretização global

e(t;hn):=y~(t;hn)y(t), (4.30)

onde y~(t;hn)y(t) para hn:=(tt0)/n. Dizemos que o método é convergente quando

limne(t;hn)=0. (4.31)

Ainda, dizemos que o método tem erro de discretização global de ordem p quando

e(t;hn)=O(hnp) (4.32)

para todo t[t0,tf], tf>t0.

Lema 4.1.1.

([8, Cap. 7, Seção 7.2]) Se a sequência (ξ(k))k satisfaz a estimativa

|ξ(k+1)|(1+δ)|ξ(k)|+B, (4.33)

para dados δ>0 e B0, k=0,1,2,, então

|ξ(n)|enδ|ξ(0)|+enδ1δB. (4.34)
Demonstração.

De forma iterativa, temos

|ξ(1)| (1+δ)|ξ(0)|+B (4.35)
|ξ(2)| (1+δ)|ξ(1)|+B (4.36)
=(1+δ)2|ξ(0)|+(1+δ)B+B (4.37)
(4.38)
|ξ(k)| (1+δ)k|ξ(0)|+Bk=0k1(1+δ)k (4.39)
=(1+δ)k|ξ(0)|+B(1+δ)k1δ. (4.40)

Observando que 0<1+δeδ para δ>1, concluímos que

|ξ(k)|ekδ|ξ(0)|+ekδ1δB. (4.41)

Teorema 4.1.1.

(Estimativa do Error Global.) Considere o PVI (4.1), para t0=a, y0. Suponha que f é Lipschitz contínua em y

|f(t,y)f(t,z)|L|yz|, (4.42)

para todo (t,y)[a,b]× e que exista M>0 tal que

|y′′(t)|M, (4.43)

para todo t[a,b]. Então, as iteradas do Método de Euler y(k)y(t(k)), t(k)=t0+kh, h>(ba)/n, k=0,1,2,,n+1, satisfazem a seguinte estimativa do erro de discretização global

|y(k)y(t(k))|hM2L[eL(t(k)t0)1]. (4.44)
Demonstração.

Para k=0 o resultado é imediato. Agora, usamos o polinômio de Taylor

y(t(k+1))=y(t(k))+hf(t(k),y(t(k)))+h22y′′(ξ(k)), (4.45)

onde t(k)ξ(k)t(k+1), k=0,1,2,,n. Já, as iteradas de Euler são

y(k+1)=y(k)+hf(t(k),y(k)). (4.46)

Subtraindo esses equações, obtemos

y(k+1)y(t(k+1)) =y(k)y(t(k)) (4.47)
+h[f(t(k),y(k))f(t(k),y(t(k)))]h22y′′(ξ(k))

Da hipótese de f Lipschitz, temos

|y(k+1)y(t(k+1))| |y(k)y(t(k))| (4.48)
+hL|y(k)y(t(k))|+h22|y′′(ξ(k))|

Ou, ainda,

|y(k+1)y(t(k+1))|(1+hL)|y(k)y(t(k))|+h2M2. (4.49)

Do Lema 4.1.1, temos

|y(k+1)y(t(k+1))|h2M2ekhL1hL, (4.50)

donde segue a estimativa do erro global (4.44). ∎

Observação 4.1.2.

(Convergência.) Do Teorema 4.1.1, a ordem do erro de discretização global de um método de passo simples é igual a sua ordem do erro de discretização local. Portanto, o Método de Euler é convergente e é de ordem 1.

Exemplo 4.1.2.

Consideramos o seguinte problema de valor inicial

y=y+1,0<t<1, (4.51a)
y(0)=0. (4.51b)

Na Tabela 4.2, temos as aproximações y~(1) de y(1) computadas pelo Método de Euler com diferentes passos h. A solução analítica deste problema é y(t)=et1.

Tabela 4.2: Resultados referentes ao Exemplo 4.1.2.
h y~(1) |y~(1)y(1)|
101 1.59374 1.2e1
102 1.70481 1.3e2
103 1.71692 1.4e3
105 1.71827 1.4e5
107 1.71828 1.4e7
109 1.71828 1.4e9

Erros de Arredondamento

O Teorema 4.1.1 não leva em consideração os erros de arredondamento. Levando em conta esses erros, a iteração do Método de Euler tem a forma

y~(0)=y0+δ(k), (4.52a)
y~(k+1)=y~(k)+hf(t(k),y~(k))+δ(k+1), (4.52b)

onde δ(k) é o erro devido a arredondamentos na k-ésima iterada, t(k)=t0+hk, k=0,1,2,,n. Assumindo as hipóteses do Teorema 4.1.1, podemos mostrar a seguinte estimativa de erro global

|y~(k+1)y(t(k+1))| 1L(hM2+δh)[eL(t(k)t0)1] (4.53)
+|δ0|eL(t(k)t0),

para δ(k)<δ, k=0,1,2,,n.

4.1.2 Sistemas de Equações

Seja um sistema de EDOs1010endnote: 10Equações Diferenciais Ordinárias com valor iniciais

𝒚=𝒇(t,𝒚),t0<ttf, (4.54a)
𝒚(t0)=𝒚0, (4.54b)

com dada 𝒇:(t,𝒚)[t0,tf]×mm, dados valores iniciais 𝒚0m e incógnita 𝒚:t[t0,tf]m, n1.

Do ponto de vista algorítmico, a iteração do Método de Euler é diretamente estendida para sistemas:

𝒚(0)=𝒚0, (4.55)
𝒚(k+1)=𝒚(k)+h𝒇(t(k),𝒚(k)),

para 𝒚(k)𝒚(t(k)), t(k)=t0+kh, h=(tft0)/n, k=0,1,2,,n.

Exemplo 4.1.3.

Consideramos o sistema de EDOs

y1=y1+y2etsen(t)+cos(t), (4.56a)
y2=2y1+3y26et2cos(t), (4.56b)

para 0<t1 com condições iniciais

y1(0)=0, (4.57a)
y2(0)=3. (4.57b)

Este sistema tem solução analítica

y1(t)=et2et+cos(t), (4.58a)
y2(t)=2et+et. (4.58b)

Podemos reescrevê-lo na forma vetorial

[y1y2]𝒚(t)=[y1+y2+etsen(t)+cos(t)2y1+3y26et2cos(t)]𝒇(t,𝒚),0<ttf (4.59e)
[y1(0)y2(0)]𝒚(0)=[03]𝒚0 (4.59j)

Usando o Método de Euler com h=102 obtemos as soluções mostradas na figura abaixo.

Refer to caption
Figura 4.2: Soluçoes numérica (linha pontilhada) versus analítica (linha contínua) para o PVI do Exemplo 4.1.3.
1import numpy as np
2
3def euler(f, t0, y0, h, n):
4    t = np.empty(n+1)
5    m = y0.size
6    y = np.empty((n+1, m))
7
8    t[0] = t0
9    y[0] = y0
10
11    for k in range(n):
12        t[k+1] = t[k] + h
13        y[k+1] = y[k] + h*f(t[k], y[k])
14    return t, y
15
16def f(t, y):
17    v = np.array([-y[0] + y[1] \
18                  - np.exp(-t) \
19                  + np.cos(t) \
20                  - np.sin(t), \
21                  2*y[0] + 3*y[1]
22                  - 6*np.exp(t)
23                  - 2*np.cos(t)])
24    return v
25
26
27h = 1e-2
28n = round(1./h)
29t0 = 0.
30y0 = np.array([0., 3.])
31t,y = euler(f, t0, y0, h, n)

4.1.3 Equações de Ordem Superior

Seja dado o PVI de ordem m

dmydtm=f(t,y,dydt,,dm1ydtm1), (4.60a)
y(t0)=y0,dydt|t=0=y0,,d(m1)ydt(m1)|t=0=y0(m1), (4.60b)

para t0ttf.

Para resolvê-lo com o Método de Euler, a ideia é reescrevê-lo como um sistema de EDOs de primeira ordem com condições iniciais. Isso pode ser feito com a mudança de variáveis

u1=y, (4.61)
u2=dydt, (4.62)
u3=d2ydt2, (4.63)
(4.64)
um=dm1ydtm1. (4.65)

Com isso e do PVI (4.1.3), obtemos o sistema de EDOs de primeira ordem

u1=u2, (4.66a)
u2=u3, (4.66b)
u3=u4, (4.66c)
(4.66d)
um=f(t,u1,u2,,um), (4.66e)

para t0<ttf e com condições inicias

u1(t0)=y0, (4.67a)
u2(t0)=y0, (4.67b)
u3(t0)=y0′′, (4.67c)
(4.67d)
um(t0)=y0(m1). (4.67e)
Exemplo 4.1.4.

Consideramos o seguinte PVI de ordem superior

y′′ty+y=(2+t)ettcos(t),0<t1, (4.68a)
y(0)=1,y(0)=0. (4.68b)

Sua solução analítica é

y(t)=sen(t)+et. (4.69)

Para reescrevê-lo como uma sistema de EDOs de primeira ordem, tomamos as mudanças de variáveis u1=y e u2=y. Com isso, obtemos

u1=u2, (4.70a)
u2=tu2u1+(2+t)ettcos(t), (4.70b)

para 0<ttf e com condições iniciais

u1(0)=1, (4.71a)
u2(0)=0. (4.71b)

Com passo h=102, o Método de Euler aplicado a este sistema fornece a solução do PVI mostrada na figura abaixo.

Refer to caption
Figura 4.3: Solução numérica versus analítica computadas para o PVI do Exemplo 4.1.4.

4.1.4 Exercícios

E. 4.1.1.

O problema de valor inicial

y=π[cos2(πt)sen2(πt)], 0<t1.5, (4.72a)
y(0)=0. (4.72b)

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

Resposta.

y~(1.5)=3.14159e1, e(1,h)=3.1E01

E. 4.1.2.

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

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

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

Resposta.

h=106, y~(1)=1.8134e+0

E. 4.1.3.

Considere o seguinte problema de valor inicial

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

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

Resposta.

5.58858e1

E. 4.1.4.

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

y=30y,0<t1, (4.75a)
y(0)=13 (4.75b)

A solução analítica é y(t)=13e30t. Compute a solução aproximação y~(1) e o erro |y~(1)y(1)| usando o passo h=101. O erro obtido está de acordo com a estimativa (4.44)?

Resposta.

|y~(1)y(1)|=3.4e+2. Dica: verifique as hipóteses do Teorema 4.1.1.

E. 4.1.5.

Para o sistema de EDOs do Exemplo 4.1.3, verifique a ordem de convergência do Método de Euler computando o erro ε=𝒚~(1)𝒚(1) com diferentes tamanhos de passos h=101,102,,106.

Resposta.
h 𝒚~(1) 𝒚~(1)𝒚(1)
101 (2.387,5.077) 7.4e1
102 (2.500,5.693) 1.1e1
103 (2.520,5.793) 1.2e2
104 (2.523,5.803) 1.2e3
105 (2.523,5.804) 1.2e4
106 (2.523,5.804) 1.2e5
E. 4.1.6.

Para o PVI de segunda ordem dado no Exemplo 4.1.4, tente computar a solução para tempos finais tf=2,3,,5. Faça uma comparação gráfica entre as soluções numérica e analítica. O que ocorre ao aumentarmos o tempo final? Justifique sua resposta.

Resposta.

Dica: O PVI do Exemplo 4.1.4 é um problema rígido.

Análise Numérica

E. 4.1.7.

Mostre que se δ>1, então 0<1+δeδ.

Resposta.

Dica: use o polinômio de Taylor de grau 2 de eδ.

E. 4.1.8.

Seja dado um PVI (4.1), t0ttf. Sejam y~(k), k=0,1,2,,n, as aproximações computadas conforme em (4.1.1), com δ(k)<δ. Assumindo as mesmas hipóteses do Teorema 4.1.1, mostre a estimativa de erro global (4.53).

Resposta.

Dica: estude a demonstração do Teorema 4.1.1.

E. 4.1.9.

Assumindo um erro de arredondamento máximo de δ>0, use (4.53) para obter uma estimativa para a melhor escolha de h.

Resposta.

h=2δ/M. Dica: Encontre o mínimo de E(h):=M/2+δ/h2.


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!