Método de Euler
Em matemática e ciência computacional, o método de Euler, cujo nome relaciona-se com Leonhard Euler, é um procedimento numérico de primeira ordem para solucionar equações diferenciais ordinárias com um valor inicial dado. É o tipo mais básico de método explícito para integração numérica para equações diferenciais ordinárias.
Índice
1 Formulação do Método de Euler
2 Exemplo
2.1 Usando um passo igual a 1 (h = 1)
2.2 Usando outros tamanhos para h
3 Método de Euler contra métodos de ordem maior
4 Notas
5 Ver também
Formulação do Método de Euler |
Suponha que queremos aproximar a solução de um problema de valor inicial:
- y′(t)=f(t,y(t)),y(t0)=y0.{displaystyle y'(t)=f(t,y(t)),qquad qquad y(t_{0})=y_{0}.}
Escolhendo um valor para h{displaystyle h} para o tamanho de cada passo e atribuindo a cada passo um ponto dentro do intervalo, temos que tn=t0+nh{displaystyle t_{n}=t_{0}+nh}. Nisso, o próximo passo tn+1{displaystyle t_{n+1}} a partir do anterior tn{displaystyle t_{n}} fica definido como tn+1=tn+h{displaystyle t_{n+1}=t_{n}+h}, então: [2]
yn+1=yn+hf(tn,yn).{displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}).} Com isso, para um valor menor de h{displaystyle h} teremos mais passos dentro de um dado intervalo, mas que terá melhor aproximação com o valor analítico.
O valor de yn{displaystyle y_{n}} é uma aproximação da solução da EDO no ponto tn{displaystyle t_{n}}: yn≈y(tn){displaystyle y_{n}approx y(t_{n})}. O Método de Euler é explícito, ou seja, a solução yn+1{displaystyle y_{n+1}} é uma função explícita de yi{displaystyle y_{i}} para i≤n{displaystyle ileq n}.
Enquanto o Método de Euler integra uma EDO de primeira ordem, qualquer EDO de ordem N pode ser representada como uma equação de primeira ordem: tendo a equação
y(N)(t)=f(t,y(t),y′(t),…,y(N−1)(t)){displaystyle y^{(N)}(t)=f(t,y(t),y'(t),ldots ,y^{(N-1)}(t))},
temos a introdução de variáveis auxiliares z1(t)=y(t),z2(t)=y′(t),…,zN(t)=y(N−1)(t){displaystyle z_{1}(t)=y(t),z_{2}(t)=y'(t),ldots ,z_{N}(t)=y^{(N-1)}(t)} obtendo a seguinte equação:
z′(t)=(z1′(t)⋮zN−1′(t)zN′(t))=(y′(t)⋮y(N−1)(t)y(N)(t))=(z2(t)⋮zN(t)f(t,z1(t),…,zN(t))){displaystyle mathbf {z} '(t)={begin{pmatrix}z_{1}'(t)\vdots \z_{N-1}'(t)\z_{N}'(t)end{pmatrix}}={begin{pmatrix}y'(t)\vdots \y^{(N-1)}(t)\y^{(N)}(t)end{pmatrix}}={begin{pmatrix}z_{2}(t)\vdots \z_{N}(t)\f(t,z_{1}(t),ldots ,z_{N}(t))end{pmatrix}}}
Este é um sistema de primeira ordem na variável z(t){displaystyle mathbf {z} (t)} e pode ser usada através do Método de Euler ou qualquer outros métodos de resoluções de sistemas de primeira ordem.[3]
Exemplo |
Dado o problema de valor inicial
- y′=y,y(0)=1,{displaystyle y'=y,quad y(0)=1,}
vamos usar o método de Euler para aproximar y(4){displaystyle y(4)}.[4]
Usando um passo igual a 1 (h = 1) |
O método de Euler é
- yn+1=yn+hf(tn,yn).{displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}).qquad qquad }
Primeiramente devemos aplicar o ponto f(t0,y0){displaystyle f(t_{0},y_{0})}. Nesse exemplo, a função f{displaystyle f} é definida por f(t,y)=y{displaystyle f(t,y)=y}. Nisso, temos que
- f(t0,y0)=f(0,1)=1.{displaystyle f(t_{0},y_{0})=f(0,1)=1.qquad qquad }
Através do passo acima, vemos que a declividade da linha é tangente à solução da curva no ponto (0,1){displaystyle (0,1)}. Lembre que a declividade é definida como a variação numérica de y{displaystyle y} em relação a t{displaystyle t}, ou Δy/Δt{displaystyle Delta y/Delta t}.
O próximo passo é multiplicar o valor acima pelo tamanho do passo h{displaystyle h}, que nesse caso resultará em:
- h⋅f(y0)=1⋅1=1.{displaystyle hcdot f(y_{0})=1cdot 1=1.qquad qquad }
Como o tamanho do passo é a variação em t{displaystyle t}, quando multiplicamos esse passo pela declividade da tangente, resultamos em um novo valor para y{displaystyle y}. Esse valor é então colocado ao valor de y{displaystyle y} inicial, com o objetivo de obtermos o próximo valor para ser usado de modo recursivo.
- y0+hf(y0)=y1=1+1⋅1=2.{displaystyle y_{0}+hf(y_{0})=y_{1}=1+1cdot 1=2.qquad qquad }
Os passos acima devem ser repetidos para assim encontrarmos y2{displaystyle y_{2}}, y3{displaystyle y_{3}} e y4{displaystyle y_{4}}.
- y2=y1+hf(y1)=2+1⋅2=4,y3=y2+hf(y2)=4+1⋅4=8,y4=y3+hf(y3)=8+1⋅8=16.{displaystyle {begin{aligned}y_{2}&=y_{1}+hf(y_{1})=2+1cdot 2=4,\y_{3}&=y_{2}+hf(y_{2})=4+1cdot 4=8,\y_{4}&=y_{3}+hf(y_{3})=8+1cdot 8=16.end{aligned}}}
Como isso se torna um processo repetitivo, uma boa forma de organizar cada iteração em forma de tabela, evitando a possibilidade de erros.
n{displaystyle n}
yn{displaystyle y_{n}}
tn{displaystyle t_{n}}
f(tn,yn){displaystyle f(t_{n},y_{n})}
h{displaystyle h}
Δy{displaystyle Delta y}
yn+1{displaystyle y_{n+1}}
0
1
0
1
1
1
2
1
2
1
2
1
2
4
2
4
2
4
1
4
8
3
8
3
8
1
8
16
A conclusão desse método é de que y4=16{displaystyle y_{4}=16}, enquanto a solução exata da equação diferencial é y(t)=et{displaystyle y(t)=e^{t}}, então y(4)=e4≈54,598{displaystyle y(4)=e^{4}approx 54,598}. Nesse caso, a aproximação por Método de Euler não é muito eficiente, porém podemos ver na imagem que o comportamento de ambas as curvas são semelhantes.
Usando outros tamanhos para h |
Como mostrado no início, o método possui sua aproximação aprimorada quando tomamos valores cada vez menores para h{displaystyle h}. A tabela abaixo mostra o resultado para diferentes tamanhos de h{displaystyle h}. A primeira linha são os valores para h=1{displaystyle h=1}, conforme descrito no tópico anterior. Já a segunda linha é para h=0,25{displaystyle h=0,25}, conforme ilustrado ao lado.
Tamanho de h{displaystyle h}
Resultado do Método de Euler
Erro Absoluto
1
16
38,598
0,25
35,53
19,07
0,1
45,26
9,34
0,05
49,56
5,04
0,025
51,98
2,62
0,0125
53,26
1,34
O erro absoluto é a diferença entre o valor obtido por Euler e o valor exato da solução para t=4{displaystyle t=4}. Podemos ver que, ao ponto que o valor de h{displaystyle h} vai caindo pela metade a cada linha, o erro aproximadamente possui o mesmo comportamento. Isso sugere que o erro absoluto é relativamente proporcional ao tamanho do passo de cada iteração adotado. Essa notação perde a validade para passos muito pequenos, mas geralmente é válida em demais equações; consulte Erro de truncamento para mais detalhes.
Em outros métodos ilustrados, como o Método dos Pontos Médios neste caso mostraram-se mais razoáveis, pois este possui uma precisão proporcional quadrática do tamanho do passo. Por essa razão, tem-se o Método de Euler como um método de primeira ordem, enquanto o Método dos Pontos Médios é dito como de segunda ordem.
Podemos extrapolar a tabela acima se precisamos de uma melhor precisão através da escolha de valores como h=0,00001{displaystyle h=0,00001} que, para chegar em t=4{displaystyle t=4}, necessitamos de 400.000 passos. Esse método demanda, portanto, um grande custo computacional; com isso, usam-se métodos com maior ordem de precisão, como o Método de Runge-Kutta, quando uma grande aproximação é necessária.[6]
Método de Euler contra métodos de ordem maior |
A ordem de um método mede o quanto rapidamente este converge para a solução analítica quando se diminui os passos na integração numérica [7]. Infelizmente devido a limitações computacionais, erros de arredondamento crescem quando se diminui o tamanho dos passos, ocorrendo até mesmo divergência ou mesmo valores errados. Uma forma de resolver este problema é aumentar a ordem do método numérico. Por exemplo, métodos de ordem maiores incluem método de Runge-Kutta e o método de Euler melhorado.
Notas |
↑ «Faça exemplos com O Monitor». omonitor.io. Consultado em 23 de março de 2016
↑ Butcher 2003, p. 45; Hairer, Nørsett & Wanner 1993, p. 36
↑ Butcher 2003, p. 3; Hairer, Nørsett & Wanner 1993, p. 2
↑ Veja Também Atkinson 1989, p. 344
↑ «Confira este exemplo e faça outros com O Monitor». omonitor.io. Consultado em 23 de março de 2016
↑ Hairer, Nørsett & Wanner 1993, p. 40
↑ Devries, Paul L. ; Hasbun, Javier E. A first course in computational physics. Second edition. Jones and Bartlett Publishers: 2011.
Ver também |
- Para métodos numéricos para cálculo de integrais definidas, veja integração numérica.