| | | |

Matemática numérica II

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

4.1 Método de Euler

Dado um problema de valor inicial (PVI)

y′⁢(t)=f⁢(t,y⁢(t)),t>t0, (4.3)
y⁢(t0)=y0, (4.4)

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.5)

obtemos

y⁢(t+h)−y⁢(t)h≈f⁢(t,y) (4.6)
y⁢(t+h)≈y⁢(t)+h⁢f⁢(t,y⁢(t)). (4.7)

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

y(0)=y0, (4.8)
y(k+1)=y(k)+h⁢f⁢(t(k),y(k)), (4.9)

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

Exemplo 4.1.1.

Consideramos o seguinte problema de valor inicial

y′−y=sen⁡(t)⁢,0<t<1, (4.10)
y⁢(0)=12. (4.11)

Sua solução analítica é

y⁢(t)=et−12⁢sen⁡(t)−12⁢cos⁡(t). (4.12)

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

y′=y+sen⁡(t)⁢,0<t<1, (4.13)
y⁢(0)=12, (4.14)

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=1⁢e−1.
k t(k) y(k) y⁢(t(k))
0 0.0 5.00⁢e−1 5.00⁢e−1
1 0.1 5.50⁢e−1 5.58⁢e−1
2 0.2 6.15⁢e−1 6.32⁢e−1
3 0.3 6.96⁢e−1 7.24⁢e−1
4 0.4 7.96⁢e−1 8.37⁢e−1
5 0.5 9.14⁢e−1 9.70⁢e−1
6 0.6 1.05⁢e+0 1.13⁢e+0
7 0.7 1.22⁢e+0 1.31⁢e+0
8 0.8 1.40⁢e+0 1.52⁢e+0
9 0.9 1.61⁢e+0 1.76⁢e+0
10 1.0 1.85⁢e+0 2.03⁢e+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.3)-(4.4), pode ser escrito da seguinte forma

y~⁢(t(0);h)=y0, (4.15)
y~⁢(t(k+1);h)=y~⁢(t(k);h)+h⁢Φ⁢(t(k),y~⁢(t(k));h), (4.16)

onde y~⁢(t(k)) representa a aproximação da solução exata y no tempo t(k)=t0+k⁢h, 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.17)

Consistência

Agora, considerando a solução exata y de (4.3)-(4.4), introduzimos

Δ⁢(t,y;h):={y⁢(t+h)−y⁢(t)h,h≠0,f⁢(t,y⁢(t)),h=0. (4.18)

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

τ⁢(t,y;h):=Δ⁢(t,y;h)−Φ⁢(t,y;h), (4.19)

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

limh→0τ⁢(t,y;h)=0, (4.20)

ou, equivalentemente, quando

limh→0Φ⁢(t,y;h)=f⁢(t,y). (4.21)
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

limh→0τ⁢(t,y;h)=limh→0(Δ⁢(t,y;h)−Φ⁢(t,y;h)) (4.22)
=limh→0(y⁢(t+h)−y⁢(t)h−f(t,y(t))) (4.23)
=y′(t)−f(t,y(t))=0. (4.24)

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.25)

ou seja, quando

limh→0τ⁢(t,y;h)hp=C, (4.26)

para alguma constante C.

Para determinarmos a ordem do Método de Euler, tomamos a expansão em série de Taylor222Brook 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)+h⁢y′⁢(t)+h22⁢y′′⁢(t)+h36⁢y′′′⁢(t+θ⁢h), (4.27)

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

y′′⁢(t)=dd⁢t⁢f⁢(t,y⁢(t)) (4.28)
=ft(t,y)+fy(t,y)y′ (4.29)
=ft(t,y)+fy(t,y)f(t,y). (4.30)

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

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

Portanto, para o Método de Euler temos

τ⁢(t,y;h):=Δ⁢(t,y;h)−Φ⁢(t,y;h) (4.32)
=Δ(t,y;h)−f(t,y) (4.33)
=h2[ft(t,y)+fy(t,y)f(t,y)]+O(h2) (4.34)
=O(h). (4.35)

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.36)

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

limn→∞e⁢(t;hn)=0. (4.37)

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

e⁢(t;hn)=O⁢(hnp) (4.38)

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

Lema 4.1.1.([C]ap. 7, Seção 7.2)

Stoer1993a] Se a sequência (ξ(k))k∈ℝ satisfaz a estimativa

|ξ(k+1)|≤(1+δ)⁢|ξ(k)|+B, (4.39)

para dados δ>0 e B≥0, k=0,1,2,…, então

|ξ(n)|≤en⁢δ⁢|ξ(0)|+en⁢δ−1δ⁢B. (4.40)
Demonstração.

De forma iterativa, temos

|ξ(1)|≤(1+δ)⁢|ξ(0)|+B (4.41)
|ξ(2)|≤(1+δ)⁢|ξ(1)|+B (4.42)
=(1+δ)2|ξ(0)|+(1+δ)B+B (4.43)
⋮ (4.44)
|ξ(k)|≤(1+δ)k⁢|ξ(0)|+B⁢∑k=0k−1(1+δ)k (4.45)
=(1+δ)k|ξ(0)|+B(1+δ)k−1δ. (4.46)

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

|ξ(k)|≤ek⁢δ⁢|ξ(0)|+ek⁢δ−1δ⁢B. (4.47)

∎

Teorema 4.1.1.(Estimativa do error global)

Considere o PVI (4.3)-(4.4), para t0=a, y0∈ℝ. Suponha que f é Lipschitz contínua em y

|f⁢(t,y)−f⁢(t,z)|≤L⁢|y−z|, (4.48)

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

|y′′⁢(t)|≤M, (4.49)

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

|y(k)−y⁢(t(k))|≤h⁢M2⁢L⁢[eL⁢(t(k)−t0)−1]. (4.50)
Demonstração.

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

y⁢(t(k+1))=y⁢(t(k))+h⁢f⁢(t(k),y⁢(t(k)))+h22⁢y′′⁢(ξ(k)), (4.51)

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

y(k+1)=y(k)+h⁢f⁢(t(k),y(k)). (4.52)

Subtraindo esses equações, obtemos

y(k+1)−y⁢(t(k+1))=y(k)−y⁢(t(k))
+h⁢[f⁢(t(k),y(k))−f⁢(t(k),y⁢(t(k)))]−h22⁢y′′⁢(ξ(k)) (4.53)

Da hipótese de f Lipschitz, temos

|y(k+1)−y⁢(t(k+1))|≤|y(k)−y⁢(t(k))|
+h⁢L⁢|y(k)−y⁢(t(k))|+h22⁢|y′′⁢(ξ(k))| (4.54)

Ou, ainda,

|y(k+1)−y⁢(t(k+1))|≤(1+h⁢L)⁢|y(k)−y⁢(t(k))|+h2⁢M2. (4.55)

Do Lema 4.1.1, temos

|y(k+1)−y⁢(t(k+1))|≤h2⁢M2⁢ek⁢h⁢L−1h⁢L, (4.56)

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

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.57)
y⁢(0)=0. (4.58)

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)=et−1.

Tabela 4.2: Resultados referentes ao Exemplo 4.1.2.
h y~⁢(1) |y~⁢(1)−y⁢(1)|
10−1 1.59374 1.2⁢e−1
10−2 1.70481 1.3⁢e−2
10−3 1.71692 1.4⁢e−3
10−5 1.71827 1.4⁢e−5
10−7 1.71828 1.4⁢e−7
10−9 1.71828 1.4⁢e−9

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.59)
y~(k+1)=y~(k)+h⁢f⁢(t(k),y~(k))+δ(k+1), (4.60)

onde δ(k) é o erro devido a arredondamentos na k-ésima iterada, t(k)=t0+h⁢k, 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⁢(h⁢M2+δh)⁢[eL⁢(t(k)−t0)−1]
+|δ0|⁢eL⁢(t(k)−t0), (4.61)

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

4.1.2 Sistemas de Equações

Seja um sistema de EDOs333Equações Diferenciais Ordinárias com valor iniciais

𝒚′=𝒇⁢(t,𝒚),t0<t≤tf, (4.62)
𝒚⁢(t0)=𝒚0, (4.63)

com dada 𝒇:(t,𝒚)∈[t0,tf]×ℝm↦ℝm, dados valores iniciais 𝒚0∈ℝm e incógnita 𝒚:t∈[t0,tf]↦ℝm, n≥1.

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

𝒚(0)=𝒚0, (4.64)
𝒚(k+1)=𝒚(k)+h⁢𝒇⁢(t(k),𝒚(k)), (4.65)

para 𝒚(k)≈𝒚⁢(t(k)), t(k)=t0+k⁢h, h=(tf−t0)/n, k=0,1,2,…,n.

Exemplo 4.1.3.

Consideramos o sistema de EDOs

y1′=−y1+y2−e−t−sen⁡(t)+cos⁡(t), (4.66)
y2′=2⁢y1+3⁢y2−6⁢et−2⁢cos⁡(t), (4.67)

para 0<t≤1 com condições iniciais

y1⁢(0)=0, (4.68)
y2⁢(0)=3. (4.69)

Este sistema tem solução analítica

y1⁢(t)=et−2⁢e−t+cos⁡(t), (4.70)
y2⁢(t)=2⁢et+e−t. (4.71)

Podemos reescrevê-lo na forma vetorial

[y1′y2′]⏟𝒚′⁢(t)=[−y1+y2+e−t−sen⁡(t)+cos⁡(t)2⁢y1+3⁢y2−6⁢et−2⁢cos⁡(t)]⏟𝒇⁢(t,𝒚)⁢,0<t≤tf (4.72)
[y1⁢(0)y2⁢(0)]⏟𝒚⁢(0)=[03]⏟𝒚0 (4.73)

Usando o Método de Euler com h=10−2 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

dm⁢yd⁢tm=f⁢(t,y,d⁢yd⁢t,…,dm−1⁢yd⁢tm−1), (4.74)
y⁢(t0)=y0,d⁢yd⁢t|t=0=y0′,…,d(m−1)⁢yd⁢t(m−1)|t=0=y0(m−1), (4.75)

para t0≤t≤tf.

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.76)
u2=d⁢yd⁢t, (4.77)
u3=d2⁢yd⁢t2, (4.78)
⋮ (4.79)
um=dm−1⁢yd⁢tm−1. (4.80)

Com isso e do PVI (4.74)-(4.75), obtemos o sistema de EDOs de primeira ordem

u1′=u2, (4.81)
u2′=u3, (4.82)
u3′=u4, (4.83)
⋮ (4.84)
um′=f⁢(t,u1,u2,…,um), (4.85)

para t0<t≤tf e com condições inicias

u1⁢(t0)=y0, (4.86)
u2⁢(t0)=y0′, (4.87)
u3⁢(t0)=y0′′, (4.88)
⋮ (4.89)
um⁢(t0)=y0(m−1). (4.90)
Exemplo 4.1.4.

Consideramos o seguinte PVI de ordem superior

y′′−t⁢y′+y=(2+t)⁢e−t−t⁢cos⁡(t)⁢,0<t≤1, (4.91)
y⁢(0)=1,y′⁢(0)=0. (4.92)

Sua solução analítica é

y⁢(t)=sen⁡(t)+e−t. (4.93)

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.94)
u2′=t⁢u2−u1+(2+t)⁢e−t−t⁢cos⁡(t), (4.95)

para 0<t≤tf e com condições iniciais

u1⁢(0)=1, (4.96)
u2⁢(0)=0. (4.97)

Com passo h=10−2, 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<t≤1.5, (4.98)
y⁢(0)=0. (4.99)

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=10−1 e forneça o erro e⁢(1.5;h):=|y~⁢(1.5;h)−y⁢(1.5)|.


y~⁢(1.5)=3.14159⁢e−1, e⁢(1,h)=3.1⁢E−01

E. 4.1.2.

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

y′=e2⁢t−2⁢y⁢, 0<t≤1, (4.100)
y⁢(0)=0. (4.101)

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


h=10−6, y~⁢(1)=1.8134⁢e+0

E. 4.1.3.

Considere o seguinte problema de valor inicial

y′+e−y2+1=2, 1<t≤2, (4.102)
y⁢(1)=−1. (4.103)

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


−5.99605⁢e−01

E. 4.1.4.

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

y′=−30⁢y,0<t≤1, (4.104)
y⁢(0)=13 (4.105)

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


|y~⁢(1)−y⁢(1)|=3.4⁢e+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=10−1⁢,10−2,…⁢,10−6.


h 𝒚~⁢(1) ‖𝒚~⁢(1)−𝒚⁢(1)‖
10−1 (2.387,5.077) 7.4⁢e−1
10−2 (2.500,5.693) 1.1⁢e−1
10−3 (2.520,5.793) 1.2⁢e−2
10−4 (2.523,5.803) 1.2⁢e−3
10−5 (2.523,5.804) 1.2⁢e−4
10−6 (2.523,5.804) 1.2⁢e−5
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.


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δ.


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

E. 4.1.8.

Seja dado um PVI (4.3)-(4.4), t0≤t≤tf. Sejam y~(k), k=0,1,2,…,n, as aproximações computadas conforme em (4.59)-(4.60), com δ(k)<δ. Assumindo as mesmas hipóteses do Teorema 4.1.1, mostre a estimativa de erro global (4.61).


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.61) para obter uma estimativa para a melhor escolha de h.


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


Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
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.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Pedro H A Konzen
| | | |