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

## 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)),\qquad \qquad y(t_{0})=y_{0}.$
Escolhendo um valor para $h$ para o tamanho de cada passo e atribuindo a cada passo um ponto dentro do intervalo, temos que $t_{n}=t_{0}+nh$. Nisso, o próximo passo $t_{n+1}$ a partir do anterior $t_{n}$ fica definido como $t_{n+1}=t_{n}+h$, então:
    $y_{n+1}=y_{n}+hf(t_{n},y_{n}).$ Com isso, para um valor menor de $h$ teremos mais passos dentro de um dado intervalo, mas que terá melhor aproximação com o valor analítico.
O valor de $y_{n}$ é uma aproximação da solução da EDO no ponto $t_{n}$: $y_{n}\approx y(t_{n})$. O Método de Euler é explícito, ou seja, a solução $y_{n+1}$ é uma função explícita de $y_{i}$ para $i\leq 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),\ldots ,y^{(N-1)}(t))$,
temos a introdução de variáveis auxiliares $z_{1}(t)=y(t),z_{2}(t)=y'(t),\ldots ,z_{N}(t)=y^{(N-1)}(t)$ obtendo a seguinte equação:
$\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 $\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.

## Exemplo

Dado o problema de valor inicial
    $y'=y,\quad y(0)=1,$
vamos usar o método de Euler para aproximar $y(4)$.

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

O método de Euler é
    $y_{n+1}=y_{n}+hf(t_{n},y_{n}).\qquad \qquad$
Primeiramente devemos aplicar o ponto $f(t_{0},y_{0})$. Nesse exemplo, a função $f$ é definida por $f(t,y)=y$. Nisso, temos que
    $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)$. Lembre que a declividade é definida como a variação numérica de $y$ em relação a $t$, ou $\Delta y/\Delta t$.
O próximo passo é multiplicar o valor acima pelo tamanho do passo $h$, que nesse caso resultará em:
    $h\cdot f(y_{0})=1\cdot 1=1.\qquad \qquad$
Como o tamanho do passo é a variação em $t$, quando multiplicamos esse passo pela declividade da tangente, resultamos em um novo valor para $y$. Esse valor é então colocado ao valor de $y$ inicial, com o objetivo de obtermos o próximo valor para ser usado de modo recursivo.
    $y_{0}+hf(y_{0})=y_{1}=1+1\cdot 1=2.\qquad \qquad$
Os passos acima devem ser repetidos para assim encontrarmos $y_{2}$, $y_{3}$ e $y_{4}$.
    ${\begin{aligned}y_{2}&=y_{1}+hf(y_{1})=2+1\cdot 2=4,\\y_{3}&=y_{2}+hf(y_{2})=4+1\cdot 4=8,\\y_{4}&=y_{3}+hf(y_{3})=8+1\cdot 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$$y_{n}$$t_{n}$$f(t_{n},y_{n})$$h$$\Delta y$$y_{n+1}$ 0101112 1212124 2424148 38381816
A conclusão desse método é de que $y_{4}=16$, enquanto a solução exata da equação diferencial é $y(t)=e^{t}$, então $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$. A tabela abaixo mostra o resultado para diferentes tamanhos de $h$. A primeira linha são os valores para $h=1$, conforme descrito no tópico anterior. Já a segunda linha é para $h=0,25$, conforme ilustrado ao lado.
    Tamanho de $h$Resultado do Método de EulerErro Absoluto 11638,598 0,2535,5319,07 0,145,269,34 0,0549,565,04 0,02551,982,62 0,012553,261,34
O erro absoluto é a diferença entre o valor obtido por Euler e o valor exato da solução para $t=4$. Podemos ver que, ao ponto que o valor de $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$ que, para chegar em $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.

## Método de Euler contra métodos de ordem maior

A ordem de um método mede o quão rapidamente este converge para a solução analítica quando se diminui os passos na integração numérica. 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.