Tamanho atual da fonte:

Métodos de Passo Único

Considere um problema de valor inicial:

$$ \begin{cases} \frac{\text{d}y}{\text{d}x}= g(x,y), \\ y(x_1) = y_1. \end{cases} $$

De posse do valor inicial da função ${y_1}$ para um determinado ${x_1}$, desejamos calcular os próximos valores para ${y}$, de forma a obter a cada iteração o valor de ${ y_{i+1}}$ para um determinado ${ x_{i+1}}$, variando $x_1 \leq x \leq x_f$.

A solução numérica de uma EDO é formada por um conjunto de pontos discretos que representam a função ${y(x)}$ de forma aproximada em um dado domínio $[{x_1,x_f}]$ onde $x_1 \leq x \leq x_f$.

${i}$ ${x_i}$ ${y_i}$
${1}$ ${x_1}$ ${y_1}$
.
.
.
.
.
.
.
.
.
${n}$ ${x_n}$ ${y_n}$
Os métodos numéricos que estudaremos pertencem a uma classe chamada de Métodos de Passo Único. Partindo de um ponto $(x_i,y_i)$, o próximo ponto $(x_{i+1},y_{i+1})$ é obtido através da estimativa de quanto a função cresceu/descresceu no intervalo $[x_i, x_{i+1}]$. Ou seja, no passo $i$ é determinado o valor de uma inclinação $h$, a partir da qual o valor de $y_{i+1}$ é estimado:
$$ \text{Valor novo } = \text{Valor antigo} + \text{inclinação} * \text{tamanho do passo}. $$

Ou, em termos matemáticos,

$$ \begin{aligned} y_{i+1} &= y_i + k h, \\ x_{i+1} &= x_i + h, \end{aligned} $$

onde $h$ é chamado de passo e $k$ é uma estimativa da inclinação média da função no intervalo $[x_i, x_{i+1}]$.


Com os conceitos de métodos numéricos aplicados à resolução de EDOs bem definidos, podemos agora ver o primeiro método, chamado de método de Euler.


Método de Euler

O método de Euler nos diz que, se quisermos calcular a solução de uma determinada equação diferencial $ \frac{dy}{dx}= g(x,y)$, nós podemos usar, inicialmente, essa equação diferencial e aplicar nela os valores iniciais $(x_i, y_i)$ para descobrir uma primeira inclinação da função: $$ {k = g(x_i,y_i)}. $$ Esse método presume que a inclinação da função durante todo o intervalo é constante. Dessa forma, podemos aproximar a inclinação média da função no intervalo como sendo a mesma inclinação do início do intervalo. Assim, calculamos o próximo valor da função da seguinte maneira:

$$ \begin{aligned} y_{i+1} &= y_i + g(x_i,y_i)h \\ x_{i+1} &= x_i + h. \end{aligned} $$

A aproximação feita pelo método de Euler pode ser vista na figura abaixo:

Observamos que quanto maior o tamanho do passo, $h$, maior será o erro cometido pela aproximação.


Exemplo

Use o método de Euler para resolver o PVI

$$ \begin{cases} \frac{dy}{dx}= -1.2y + 7e^{-0.3x} = g(x,y)\\ y(0) = 3 \end{cases} $$

de $a = 0$ até $b = 2.5$ com um passo $h = 0.5$.

Compare o resultado com a solução analítica:
$$ y = f(x) = \frac{70}{9}e^{-0.3x} - \frac{43}{9}e^{-1.2x}. $$
Solução

  1. Partimos do ponto inicial $(0;3)$, como mostrado no gráfico acima.




Problemas com o método de Euler

O método de Euler, apesar de ser simples, tem o problema de apresentar erros, pois a aproximação feita pelo método não tem uma boa precisão. Dessa forma, além de haver um erro local causado pela aproximação da inclinação em cada iteração, há também o erro acumulado, já que em cada iteração se usa um valor anterior que já continha um erro.

Uma solução para diminuir a propagação do erro é diminuir o tamanho do passo $h$. Porém, a medida que diminuímos o valor de $h$, aumentamos o esforço computacional. A melhor solução, então, é utilizar outro método que tenha uma melhor precisão, como é o caso dos métodos de Runge-Kutta que veremos a seguir.


Algoritmo para implementação computacional

Implementação Scilab


Exercícios - Método de Euler

Enunciado