Método de Passo Simples
Um método para resolver o PVI é o de passo simples se a aproximação \(y_{i+1}\) depende apenas do resultado \(y_i\) da etapa anterior. Todos os métodos de passo simples são escritos na forma:
\[y_{i+1} = y_{i}+h\theta(x_i, y_i, h), i = 0, 1, \cdots, m-1\]Onde \(\theta\) é a função incremento e \(h\) o comprimento do passo.
A classificação dos métodos se dá pela sua ordem, assim diz-se que um é de método de ordem \(r\) se \(r\) for maior o qual:
\[y(x+h) - y(x) - h\theta(x, y(x), h) = \sigma(h^{r+1})\]Onde \(y(x)\) é a solução teórica do PVI
O método de Euler é de ordem um.
Métodos de Runge-Kutta de Segunda Ordem
Fazendo
\[\theta(x_i, y_i, h) = \alpha K_1 + \beta K_2 \]e substituindo em:
\[y_{i+1} = y_{i}+h\theta(x_i, y_i, h), i = 0, 1, \cdots, m-1\]temos:
\[y_{i+1} = y_i + h(\alpha K_1 + \beta K_2), i =0, 1, \cdots, m-1 \]Sejam:
\[\begin{cases} K_1 = & f(x_i, y_i) \\ K_2 = & f[x_i + ph, y_i qhf(x_i, y_i)] \end{cases} \]As constantes \(\alpha, \beta, p\) e \(q\) devem ser determinadas para que se obtenham métodos de Runge-Kutta de 2ª ordem. Para isso os seguintes passos devem ser seguidos:
\[\begin{cases} \alpha + \beta + \gamma + \delta = 1 \\ qb + uc = 1/2 \\ q^2b + u^c = 1/3 \\ cps = s/6 \end{cases} \]Duas incógnitas no sistema são arbitrários. Um método de 3ª ordem bastante conhecido é:
1º Passo
Expande-se \(K_2\) numa série de Taylor de duas variáveis, abandonado-se todos os termos a partir do termo em \(h^2\), inclusive:
\[K_2 = f(x_i, y_i) +ph\frac{\partial f}{\partial x} (x_i, y_i) + qhf(x_i, y_i)\frac{\partial f}{\partial x} (x_i,y_i)+ \sigma(h^2)\]Substituindo:
\[y_{i+1}=y_i+h\left[(\alpha+\beta)f(x_i, y_i)\right] + h^2\left[\beta p \frac{\partial f}{\partial x}(x_i, y_i)+ \beta qf(x_i, y_i)\frac{\partial f}{\partial x}(x_i, y_i) \right] + \sigma(h^3)\]2º Passo
Expande-se a solução teórica \(y(x)\) em torno de \(x_i\) até o termo em \(h^2\), inclusive:
\[y(x_i+h)= y(x_i) + \frac{h}{1!}f(x_i, y(x_i)) + \frac{h^2}{2!}f^{(1)}(x_i, y(x_i)) + \sigma(h^3)\]Como:
\[f^{(1)}(x_i, y(x_i)) = \frac{\partial f}{\partial x} (x_i, y(x_i)) + f(x_i, y(x_i))\frac{\partial f}{\partial x} (x_i,y(x_i))\]Tem-se:
\[y(x_i+h)= y(x_i) + hf(x_i, y(x_i)) + \frac{h^2}{2!} \left[ \frac{\partial f}{\partial x} (x_i, y(x_i)) + f(x_i, y(x_i))\frac{\partial f}{\partial x} (x_i,y(x_i))\right] + \sigma(h^3)\]3º Passo
Comparam-se os termos de mesma potência, com relação a \(h\) e faz-se y_i = y(x_i):
\[f(x_i, y(x_i)) = (\alpha + \beta) f(x_i, y_i) + \frac{1}{2} \left[ \frac{\partial f}{\partial x} (x_i, y(x_i)) + f(x_i, y(x_i))\frac{\partial f}{\partial x} (x_i,y(x_i))\right] = \] \[ \beta p\frac{\partial f}{\partial x} (x_i, y_i) + \beta pf(x_i, y_i)\frac{\partial f}{\partial x} (x_i, y_i)\]Das duas igualdades acima, obtém-se o sistema não linear:
\[\begin{cases} \alpha + \beta = 1 \\ \beta p = {1}/{2} \\ \beta q = {1}/{2} \\ \end{cases} \]4º Passo
Resolve-se o sistema. O sistema possui quatro incógnitas e três equações, uma das incógnitas pode ser tomada arbitratiamente.
Para a escolha \(\beta = \frac{1}{2} \), tem-se \(\alpha = \frac{1}{2} \), \(p=1\) e \(q=1\). O RK2 será:
Para \(\beta = 1 \), tem-se \(\alpha = 0 \), \(p=\frac{1}{2}\) e \(q=\frac{1}{2}\). O RK2 será:
A Equação 1 é conhecida como método de Euler melhorado, enquanto a Equação 2 é conhecida como método de Euler modificado
Exemplo 1
Encontre a aproximação do PVI:
\[\begin{cases} y' = 2x - y + 1\\ y(0) = 1\\ \end{cases} \]Na malha \([0, 2]\) com \(h=0.2\) utilizando o método de Euler melhorado.
Lembrando que utilizamos a Equação 1 para os cálculos:
\[ \begin{matrix} k_1 = f(x_i, y_i) \\ k_2 = f(x_i + h, y_i+hf(x_i, y_i)) \\ y_{i+1} = y_{i}+\frac{h}{2} (K_1 + K_2) \\ \end{matrix} \]Os cálculos detalhados:
| Iteração | \(x_{i}\) | \(y_{i}\) | Cálculo |
|---|---|---|---|
| 0 | 0 | 1 | \[K_1 = f(0, 1) = 0\] \[K_2 = f(0 + 0.2, 1 + 0.2 \times f(0, 1)) = 0.4\] \[y_{1} = 1 +\frac{0.2}{2} (0 + 0.4) = 1.04\] |
| 1 | 0.2 | 1.04 | \[K_1 = f(0.2, 1.04) = 0.36\] \[K_2 = f(0.2 + 0.2, 1.04 + 0.2 \times f(0.2, 1.04)) = 0.688\] \[y_{2} = 1.04 +\frac{0.2}{2} (0.36 + 0.688) = 1.1448\] |
| 2 | 0.4 | 1.1448 | \[K_1 = f(0.4, 1.1448) = 0.6552\] \[K_2 = f(0.4 + 0.2, 1.1448 + 0.2 \times f(0.4, 1.1448)) = 0.92416\] \[y_{3} = 1.1448 +\frac{0.2}{2} (0.6552 + 0.92416) = 1.30274\] |
| 3 | 0.6 | 1.30274 | \[K_1 = f(0.6, 1.30274) = 0.897264\] \[K_2 = f(0.6 + 0.2, 1.30274 + 0.2 \times f(0.6, 1.30274)) = 1.11781\] \[y_{4} = 1.30274 +\frac{0.2}{2} (0.897264 + 1.11781) = 1.50424\] |
| 4 | 0.8 | 1.50424 | \[K_1 = f(0.8, 1.50424) = 1.09576\] \[K_2 = f(0.8 + 0.2, 1.50424 + 0.2 \times f(0.8, 1.50424)) = 1.27661\] \[y_{5} = 1.50424 +\frac{0.2}{2} (1.09576 + 1.27661) = 1.74148\] |
| 5 | 1 | 1.74148 | \[K_1 = f(1, 1.74148) = 1.25852\] \[K_2 = f(1 + 0.2, 1.74148 + 0.2 \times f(1, 1.74148)) = 1.40682\] \[y_{6} = 1.74148 +\frac{0.2}{2} (1.25852 + 1.40682) = 2.00801\] |
| 6 | 1.2 | 2.00801 | \[K_1 = f(1.2, 2.00801) = 1.39199\] \[K_2 = f(1.2 + 0.2, 2.00801 + 0.2 \times f(1.2, 2.00801)) = 1.51359\] \[y_{7} = 2.00801 +\frac{0.2}{2} (1.39199 + 1.51359) = 2.29857\] |
| 7 | 1.4 | 2.29857 | \[K_1 = f(1.4, 2.29857) = 1.50143\] \[K_2 = f(1.4 + 0.2, 2.29857 + 0.2 \times f(1.4, 2.29857)) = 1.60114\] \[y_{8} = 2.29857 +\frac{0.2}{2} (1.50143 + 1.60114) = 2.60883\] |
| 8 | 1.6 | 2.60883 | \[K_1 = f(1.6, 2.60883) = 1.59117\] \[K_2 = f(1.6 + 0.2, 2.60883 + 0.2 \times f(1.6, 2.60883)) = 1.67294\] \[y_{9} = 2.60883 +\frac{0.2}{2} (1.59117 + 1.67294) = 2.93524\] |
| 9 | 1.8 | 2.93524 | \[K_1 = f(1.8, 2.93524) = 1.66476\] \[K_2 = f(1.8 + 0.2, 2.93524 + 0.2 \times f(1.8, 2.93524)) = 1.73181\] \[y_{10} = 2.93524 +\frac{0.2}{2} (1.66476 + 1.73181) = 3.2749\] |
| 10 | 2 |
3.2749
|
Com o resultado final: \(3.2749\), resultado exato: \(3.27067067\)
Métodos de Runge-Kutta de Terceira e Quarta Ordem
Os métodos de Runge-Kutta de ordens mais elevadas são obtidos de modo semelhante aos de 2ª ordem. Os métodos de 3ª ordem, por exemplo, possuem a função incremento \(\theta(x_i, y_i, h) = \alpha K_1 + \beta K_2 + \gamma K_3 \), onde \(K_1\), \(K_2\) e \(K_3\) aproximam derivadas em vários pontos do intervalo \([x_i, x_{i+1}]\). Aqui faz-se:
\[\begin{matrix} K_1 = f(x_i, y_i) \\ K_2 = f(x_i + ph, y_i + qhK_1) \\ K_3 = f(x_i + uh, y_i + shK_2 + (u-s)hK_1) \end{matrix} \]Para determinação de \(\alpha\),\(\beta\),\(\gamma\), \(p\), \(q\), \(s\) e \(u\) expande-se \(K_1\) e \(K_2\) em torno de \((x_i, y_i)\) numa série de Taylor de duas incógnitas. Expande-se, também, a solução teórica \(y(x)\) em torno de \(x_i\) numa série de Taylor. Os coeficientes de mesma potência de \(h\) até \(h^3\) inclusive são igualados, chegando ao sistema:
\[\begin{cases} \alpha + \beta + \gamma + \delta = 1 \\ qb + uc = 1/2 \\ q^2b + u^c = 1/3 \\ cps = s/6 \end{cases} \]Duas incógnitas o sistema são arbitrárias. Um método de 3ª ordem bastante conhecido é o seguinte:
E para a 4ª Ordem temos:
Exemplo 2
Dada a PVI:
\[\begin{cases} y' = 2x - y + 1\\ y(0) = 1\\ \end{cases} \]Na malha \([0, 2]\) com \(h=0.2\), iremos demonstrar a resolução a resolução pelos métodos de Runge-Kutta de 3ª e 4ª Ordem
Resolução pelo método de 3ª Ordem
| Iteração | \(x_{i}\) | \(y_{i}\) | Cálculo |
|---|---|---|---|
| 0 | 0 | 1 | \[K_1 = f(0, 1) = 0\] \[K_2 = f(0 + \frac{0.2}{2}, 1 + \frac{0.2}{2} \times 0) = 0.2\] \[K_3 = f(0 + 0.2, 1 + 2 \times 0.2 \times 0.2 - 0.2 \times 0) = 0.32\] \[y_{1} = 1 + \frac{0.2}{6} (0 + 4\times 0.2 + 0.32) = 1.03733\] |
| 1 | 0.2 | 1.03733 | \[K_1 = f(0.2, 1.03733) = 0.362667\] \[K_2 = f(0.2 + \frac{0.2}{2}, 1.03733 + \frac{0.2}{2} \times 0.362667) = 0.5264\] \[K_3 = f(0.2 + 0.2, 1.03733 + 2 \times 0.2 \times 0.5264 - 0.2 \times0.362667) = 0.62464\] \[y_{2} = 1.03733 + \frac{0.2}{6} (0.362667 + 4\times 0.5264 + 0.62464) = 1.14043\] |
| 2 | 0.4 | 1.14043 | \[K_1 = f(0.4, 1.14043) = 0.65957\] \[K_2 = f(0.4 + \frac{0.2}{2}, 1.14043 + \frac{0.2}{2} \times 0.65957)= 0.793613\] \[K_3 = f(0.4 + 0.2, 1.14043 + 2 \times 0.2 \times 0.793613 - 0.2 \times 0.65957) = 0.874039\] \[y_{3} = 1.14043 + \frac{0.2}{6} (0.65957 + 4\times 0.793613 + 0.874039) = 1.29737\] |
| 3 | 0.6 | 1.29737 | \[K_1 = f(0.6, 1.29737) = 0.902634\] \[K_2 = f(0.6 + \frac{0.2}{2}, 1.29737 + \frac{0.2}{2} \times 0.902634) = 1.01237\] \[K_3 = f(0.6 + 0.2, 1.29737 + 2 \times 0.2 \times 1.01237 - 0.2 \times 0.902634) = 1.07821\] \[y_{4} = 1.29737 + \frac{0.2}{6} (0.902634 + 4\times 1.01237 + 1.07821) = 1.49838\] |
| 4 | 0.8 | 1.49838 | \[K_1 = f(0.8, 1.49838) = 1.10162\] \[K_2 = f(0.8 + \frac{0.2}{2}, 1.49838 + \frac{0.2}{2} \times 1.10162)= 1.19146\] \[K_3 = f(0.8 + 0.2, 1.49838 + 2 \times 0.2 \times 1.19146 - 0.2 \times 1.10162) = 1.24536\] \[y_{5} = 1.49838 + \frac{0.2}{6} (1.10162 + 4\times 1.19146 + 1.24536) = 1.73547\] |
| 5 | 1 | 1.73547 | \[K_1 = f(1, 1.73547) = 1.26453\] \[K_2 = f(1 + \frac{0.2}{2}, 1.73547 + \frac{0.2}{2} \times 1.26453) =1.33808\] \[K_3 = f(1 + 0.2, 1.73547 + 2 \times 0.2 \times 1.33808 - 0.2 \times 1.26453) = 1.3822\] \[y_{6} = 1.73547 + \frac{0.2}{6} (1.26453 + 4\times 1.33808 + 1.3822)= 2.00211\] |
| 6 | 1.2 | 2.00211 | \[K_1 = f(1.2, 2.00211) = 1.39789\] \[K_2 = f(1.2 + \frac{0.2}{2}, 2.00211 + \frac{0.2}{2} \times 1.39789)= 1.4581\] \[K_3 = f(1.2 + 0.2, 2.00211 + 2 \times 0.2 \times 1.4581 - 0.2 \times1.39789) = 1.49423\] \[y_{7} = 2.00211 + \frac{0.2}{6} (1.39789 + 4\times 1.4581 + 1.49423)= 2.29292\] |
| 7 | 1.4 | 2.29292 | \[K_1 = f(1.4, 2.29292) = 1.50708\] \[K_2 = f(1.4 + \frac{0.2}{2}, 2.29292 + \frac{0.2}{2} \times 1.50708)= 1.55637\] \[K_3 = f(1.4 + 0.2, 2.29292 + 2 \times 0.2 \times 1.55637 - 0.2 \times 1.50708) = 1.58594\] \[y_{8} = 2.29292 + \frac{0.2}{6} (1.50708 + 4\times 1.55637 + 1.58594) = 2.60354\] |
| 8 | 1.6 | 2.60354 | \[K_1 = f(1.6, 2.60354) = 1.59646\] \[K_2 = f(1.6 + \frac{0.2}{2}, 2.60354 + \frac{0.2}{2} \times 1.59646)= 1.63681\] \[K_3 = f(1.6 + 0.2, 2.60354 + 2 \times 0.2 \times 1.63681 - 0.2 \times 1.59646) = 1.66103\] \[y_{9} = 2.60354 + \frac{0.2}{6} (1.59646 + 4\times 1.63681 + 1.66103) = 2.93036\] |
| 9 | 1.8 | 2.93036 | \[K_1 = f(1.8, 2.93036) = 1.66964\] \[K_2 = f(1.8 + \frac{0.2}{2}, 2.93036 + \frac{0.2}{2} \times 1.66964)= 1.70267\] \[K_3 = f(1.8 + 0.2, 2.93036 + 2 \times 0.2 \times 1.70267 - 0.2 \times 1.66964) = 1.72249\] \[y_{10} = 2.93036 + \frac{0.2}{6} (1.66964 + 4\times 1.70267 + 1.72249) = 3.27046\] |
| 10 | 2 |
3.27046
|
Resolução pelo método de 4ª Ordem
| Iteração | \(x_{i}\) | \(y_{i}\) | Cálculo |
|---|---|---|---|
| 0 | 0 | 1 | \[K_1 = f(0, 1) = 0\] \[K_2 = f(0 + \frac{0.2}{2}, 1 + \frac{0.2}{2} \times 0) = 0.2\] \[K_3 = f(0 + \frac{0.2}{2}, 1 + \frac{0.2}{2} \times 0.2) = 0.18\] \[K_4 = f(0 + 0.2, 1 + 0.2 \times 0.18) = 0.364 \] \[y_{1} = 1 + \frac{0.2}{6} (0 + 2\times 0.2 + 2\times 0.18 + 0.364) = 1.03747 \] |
| 1 | 0.2 | 1.03747 | \[K_1 = f(0.2, 1.03747) = 0.362533\] \[K_2 = f(0.2 + \frac{0.2}{2}, 1.03747 + \frac{0.2}{2} \times 0.362533) = 0.52628\] \[K_3 = f(0.2 + \frac{0.2}{2}, 1.03747 + \frac{0.2}{2} \times 0.52628) = 0.509905\] \[K_4 = f(0.2 + 0.2, 1.03747 + 0.2 \times 0.509905) = 0.660552 \] \[y_{2} = 1.03747 + \frac{0.2}{6} (0.362533 + 2\times 0.52628 + 2\times 0.509905 + 0.660552) = 1.14065 \] |
| 2 | 0.4 | 1.14065 | \[K_1 = f(0.4, 1.14065) = 0.659351\] \[K_2 = f(0.4 + \frac{0.2}{2}, 1.14065 + \frac{0.2}{2} \times 0.659351) = 0.793416\] \[K_3 = f(0.4 + \frac{0.2}{2}, 1.14065 + \frac{0.2}{2} \times 0.793416) = 0.78001\] \[K_4 = f(0.4 + 0.2, 1.14065 + 0.2 \times 0.78001) = 0.903349 \] \[y_{3} = 1.14065 + \frac{0.2}{6} (0.659351 + 2\times 0.793416 + 2\times 0.78001 + 0.903349) = 1.29763 \] |
| 3 | 0.6 | 1.29763 | \[K_1 = f(0.6, 1.29763) = 0.902366\] \[K_2 = f(0.6 + \frac{0.2}{2}, 1.29763 + \frac{0.2}{2} \times 0.902366) = 1.01213\] \[K_3 = f(0.6 + \frac{0.2}{2}, 1.29763 + \frac{0.2}{2} \times 1.01213) = 1.00115\] \[K_4 = f(0.6 + 0.2, 1.29763 + 0.2 \times 1.00115) = 1.10214 \] \[y_{4} = 1.29763 + \frac{0.2}{6} (0.902366 + 2\times 1.01213 + 2\times 1.00115 + 1.10214) = 1.49867 \] |
| 4 | 0.8 | 1.49867 | \[K_1 = f(0.8, 1.49867) = 1.10133\] \[K_2 = f(0.8 + \frac{0.2}{2}, 1.49867 + \frac{0.2}{2} \times 1.10133) = 1.1912\] \[K_3 = f(0.8 + \frac{0.2}{2}, 1.49867 + \frac{0.2}{2} \times 1.1912) = 1.18221\] \[K_4 = f(0.8 + 0.2, 1.49867 + 0.2 \times 1.18221) = 1.26489 \] \[y_{5} = 1.49867 + \frac{0.2}{6} (1.10133 + 2\times 1.1912 + 2\times 1.18221 + 1.26489) = 1.73577 \] |
| 5 | 1 | 1.73577 | \[K_1 = f(1, 1.73577) = 1.26423\] \[K_2 = f(1 + \frac{0.2}{2}, 1.73577 + \frac{0.2}{2} \times 1.26423) = 1.33781\] \[K_3 = f(1 + \frac{0.2}{2}, 1.73577 + \frac{0.2}{2} \times 1.33781) = 1.33045\] \[K_4 = f(1 + 0.2, 1.73577 + 0.2 \times 1.33045) = 1.39814 \] \[y_{6} = 1.73577 + \frac{0.2}{6} (1.26423 + 2\times 1.33781 + 2\times 1.33045 + 1.39814) = 2.0024 \] |
| 6 | 1.2 | 2.0024 | \[K_1 = f(1.2, 2.0024) = 1.3976\] \[K_2 = f(1.2 + \frac{0.2}{2}, 2.0024 + \frac{0.2}{2} \times 1.3976) = 1.45784\] \[K_3 = f(1.2 + \frac{0.2}{2}, 2.0024 + \frac{0.2}{2} \times 1.45784) = 1.45182\] \[K_4 = f(1.2 + 0.2, 2.0024 + 0.2 \times 1.45182) = 1.50724 \] \[y_{7} = 2.0024 + \frac{0.2}{6} (1.3976 + 2\times 1.45784 + 2\times 1.45182 + 1.50724) = 2.2932 \] |
| 7 | 1.4 | 2.2932 | \[K_1 = f(1.4, 2.2932) = 1.5068\] \[K_2 = f(1.4 + \frac{0.2}{2}, 2.2932 + \frac{0.2}{2} \times 1.5068) = 1.55612\] \[K_3 = f(1.4 + \frac{0.2}{2}, 2.2932 + \frac{0.2}{2} \times 1.55612) = 1.55118\] \[K_4 = f(1.4 + 0.2, 2.2932 + 0.2 \times 1.55118) = 1.59656 \] \[y_{8} = 2.2932 + \frac{0.2}{6} (1.5068 + 2\times 1.55612 + 2\times 1.55118 + 1.59656) = 2.6038 \] |
| 8 | 1.6 | 2.6038 | \[K_1 = f(1.6, 2.6038) = 1.5962\] \[K_2 = f(1.6 + \frac{0.2}{2}, 2.6038 + \frac{0.2}{2} \times 1.5962) = 1.63658\] \[K_3 = f(1.6 + \frac{0.2}{2}, 2.6038 + \frac{0.2}{2} \times 1.63658) = 1.63254\] \[K_4 = f(1.6 + 0.2, 2.6038 + 0.2 \times 1.63254) = 1.66969 \] \[y_{9} = 2.6038 + \frac{0.2}{6} (1.5962 + 2\times 1.63658 + 2\times 1.63254 + 1.66969) = 2.93061 \] |
| 9 | 1.8 | 2.93061 | \[K_1 = f(1.8, 2.93061) = 1.66939\] \[K_2 = f(1.8 + \frac{0.2}{2}, 2.93061 + \frac{0.2}{2} \times 1.66939) = 1.70245\] \[K_3 = f(1.8 + \frac{0.2}{2}, 2.93061 + \frac{0.2}{2} \times 1.70245) = 1.69915\] \[K_4 = f(1.8 + 0.2, 2.93061 + 0.2 \times 1.69915) = 1.72956 \] \[y_{10} = 2.93061 + \frac{0.2}{6} (1.66939 + 2\times 1.70245 + 2\times 1.69915 + 1.72956) = 3.27068 \] |
| 10 | 2 |
3.27068
|
Destacamos a proximidade do resultado Método de Runge-Kutta do resultado exato: \(3.27067067\)
Atividade
Calcule o valor das EDOs a seguir através dos métodos solicitados
-
PVI:
\[\begin{cases} y' = sin(x + 2y)\\ y(0) = 1\\ \end{cases} \]Na malha \([1, 10]\) com \(h=1\)
Método de Runge-Kutta de 2ª Ordem
-
PVI:
\[\begin{cases} y' = ln(x) - 2y\\ y(0) = 1\\ \end{cases} \]Na malha \([0.2, 1]\) com \(h=0.2\)
Método de Runge-Kutta de 3ª Ordem
-
PVI:
\[\begin{cases} y' = cos(x) - y + 1\\ y(0) = 0\\ \end{cases} \]Na malha \([0, 1]\) com \(h=0.2\)
Método de Runge-Kutta de 4ª Ordem