Método de Euler






Ilustração do método de Euler. A curva desconhecida está em azul, e sua aproximação polinomial está em vermelho.[1]


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}.}{displaystyle y'(t)=f(t,y(t)),qquad qquad y(t_{0})=y_{0}.}

Escolhendo um valor para h{displaystyle h}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}{displaystyle t_{n}=t_{0}+nh}. Nisso, o próximo passo tn+1{displaystyle t_{n+1}}t_{n+1} a partir do anterior tn{displaystyle t_{n}}t_n fica definido como tn+1=tn+h{displaystyle t_{n+1}=t_{n}+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}).}{displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}).} Com isso, para um valor menor de h{displaystyle h}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}}y_n é uma aproximação da solução da EDO no ponto tn{displaystyle t_{n}}t_n: yn≈y(tn){displaystyle y_{n}approx y(t_{n})}{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}}y_{n+1} é uma função explícita de yi{displaystyle y_{i}}y_{i} para i≤n{displaystyle ileq 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))}{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)}{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}}}{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)}{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,}{displaystyle y'=y,quad y(0)=1,}

vamos usar o método de Euler para aproximar y(4){displaystyle y(4)}{displaystyle y(4)}.[4]



Usando um passo igual a 1 (h = 1) |




Ilustração da integração numérica para o exemplo y′=y,y(0)=1.{displaystyle y'=y,y(0)=1.}{displaystyle y'=y,y(0)=1.}[5] A curva em Azul é o método de Euler com h = 1.0.; em Verde, o ponto médio e em Vermelho, o valor exato da solução, y=et.{displaystyle y=e^{t}.}{displaystyle y=e^{t}.}


O método de Euler é


yn+1=yn+hf(tn,yn).{displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}).qquad qquad }{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})}{displaystyle f(t_{0},y_{0})}. Nesse exemplo, a função f{displaystyle f}f é definida por f(t,y)=y{displaystyle 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 }{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)}{displaystyle (0,1)}. Lembre que a declividade é definida como a variação numérica de y{displaystyle y}y em relação a t{displaystyle t}t, ou Δy/Δt{displaystyle Delta y/Delta t}{displaystyle Delta y/Delta t}.


O próximo passo é multiplicar o valor acima pelo tamanho do passo h{displaystyle h}h, que nesse caso resultará em:


h⋅f(y0)=1⋅1=1.{displaystyle hcdot f(y_{0})=1cdot 1=1.qquad qquad }{displaystyle hcdot f(y_{0})=1cdot 1=1.qquad qquad }

Como o tamanho do passo é a variação em t{displaystyle t}t, quando multiplicamos esse passo pela declividade da tangente, resultamos em um novo valor para y{displaystyle y}y. Esse valor é então colocado ao valor de y{displaystyle y}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 }{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}}{displaystyle y_{2}}, y3{displaystyle y_{3}}{displaystyle y_{3}} e y4{displaystyle y_{4}}{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}}}{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}n yn{displaystyle y_{n}}y_n tn{displaystyle t_{n}}t_n f(tn,yn){displaystyle f(t_{n},y_{n})}{displaystyle f(t_{n},y_{n})} h{displaystyle h}h Δy{displaystyle Delta y}{displaystyle Delta y}
yn+1{displaystyle y_{n+1}}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}{displaystyle y_{4}=16}, enquanto a solução exata da equação diferencial é y(t)=et{displaystyle y(t)=e^{t}}{displaystyle y(t)=e^{t}}, então y(4)=e4≈54,598{displaystyle y(4)=e^{4}approx 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 |




A mesma ilustração para h = 0.25.


Como mostrado no início, o método possui sua aproximação aprimorada quando tomamos valores cada vez menores para h{displaystyle h}h. A tabela abaixo mostra o resultado para diferentes tamanhos de h{displaystyle h}h. A primeira linha são os valores para h=1{displaystyle h=1}{displaystyle h=1}, conforme descrito no tópico anterior. Já a segunda linha é para h=0,25{displaystyle h=0,25}{displaystyle h=0,25}, conforme ilustrado ao lado.






































Tamanho de h{displaystyle h}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}{displaystyle t=4}. Podemos ver que, ao ponto que o valor de h{displaystyle h}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}{displaystyle h=0,00001} que, para chegar em t=4{displaystyle 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 |





  1. «Faça exemplos com O Monitor». omonitor.io. Consultado em 23 de março de 2016 


  2. Butcher 2003, p. 45; Hairer, Nørsett & Wanner 1993, p. 36


  3. Butcher 2003, p. 3; Hairer, Nørsett & Wanner 1993, p. 2


  4. Veja Também Atkinson 1989, p. 344


  5. «Confira este exemplo e faça outros com O Monitor». omonitor.io. Consultado em 23 de março de 2016 


  6. Hairer, Nørsett & Wanner 1993, p. 40


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



Popular posts from this blog

A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

Calculate evaluation metrics using cross_val_predict sklearn

Insert data from modal to MySQL (multiple modal on website)