Questão 1-2.5 pontos

Considere o PVI:
y^{\prime}=\lambda y+b \cos (t), \quad y(0)=1, \quad \lambda<0
a) Usando o método de Euler aperfeiçoado (Heun) com passo h=0.1, calcule a aproximação de y(0.2). Apresente detalhadamente o cálculo dos estágios k_{1}, k_{2} e das iterações. (Para b=1 ).
b) Deduz(a) a fórmula do método de Euler para o caso b=0. Mostre que a solução numérica obtida pelo método satisfaz
y_{n+1}=(1+\lambda h)^{n-1} y_{0} \rightarrow\left(y_{0}+\lambda h y_{0}\right)^{n-1}
Para \lambda=-5, determine para quais valores de h essa iteração converge para a solução exata. Mostre também que a solução exata do problema é
y(t)=e^{\lambda t}
c) Em quais situações o método de Runge-Kutta de ordem 2 (Heun) é preferível ao método de Taylor de ordem 2? Explique como se deduzem ambos os métodos, descrevendo as principais etapas de cada

Passo 1

O enunciado dá o problema de valor inicial
y'=\lambda y+b\cos(t),\qquad y(0)=1,\qquad \lambda<0,
e pede três coisas:
  1. (a) Usar o método de Euler aperfeiçoado (Heun) com passo h=0,1 para aproximar y(0,2) no caso b=1. É preciso apresentar detalhadamente os estágios k_1,k_2 e as duas iterações (de t=0 a 0,1 e de 0,1 a 0,2).
  2. (b) Deduzir a fórmula do método de Euler para o caso b=0; mostrar a forma fechada da iteração numérica e, para \lambda=-5, determinar os valores de h para os quais a iteração converge para a solução exata. Também mostrar que a solução exata (para b=0) é y(t)=e^{\lambda t}.
  3. (c) Explicar em que situações o método de Runge–Kutta de ordem 2 (Heun) é preferível ao método de Taylor de ordem 2 e descrever como se deduzem ambos os métodos (passos principais).
Informações relevantes dadas: y(0)=1, passo h=0{,}1, em (a) b=1. Vamos calcular as duas iterações com Heun, apresentando k_1,k_2 em cada etapa.

Passo 2

Breve aula sobre o método de Heun (Euler aperfeiçoado) — o que são k_1 e k_2 e por que usamos:
  • Temos uma EDO y'=f(t,y). O Heun é um método de Runge–Kutta de ordem 2 que pode ser visto como a regra do trapézio explícita: primeiro calculamos a inclinação inicial (previsor) e depois uma inclinação corrigida no ponto previsto.
  • Definições (para passo h): k_1 = f(t_n,y_n), \qquad y^{\text{pred}} = y_n + h k_1, \qquad k_2 = f(t_n+h, y^{\text{pred}}),e a atualização é y_{n+1} = y_n + \frac{h}{2}(k_1+k_2).
  • Intuição: k_1 é a inclinação no início do passo; k_2 é a inclinação no fim do passo estimada por previsão; a média (k_1+k_2)/2 dá uma inclinação melhor que k_1 sozinho, o que melhora a ordem para 2.
Agora aplicamos isso à nossa EDO com b=1:
f(t,y)=\lambda y+\cos(t).

Passo 3

Primeira iteração: do tempo t_0=0 até t_1=0{,}1, com y_0=1, h=0{,}1, b=1.
  1. Calcular k_1 no ponto inicial:
    k_{1}^{(0)} = f(0,y_0)=\lambda y_0 + \cos(0)=\lambda\cdot 1 + 1 = \lambda + 1.
    (Usei \cos(0)=1.)
  2. Previsor:
    y^{\text{pred}} = y_0 + h k_{1}^{(0)} = 1 + 0{,}1(\lambda+1) = 1 + 0{,}1\lambda + 0{,}1.
  3. Calcular k_2 no ponto (t_0+h,y^{\text{pred}})=(0{,}1,y^{\text{pred}}):
    k_{2}^{(0)} = f(0{,}1, y^{\text{pred}}) = \lambda\bigl(1 + 0{,}1(\lambda+1)\bigr) + \cos(0{,}1).
    Desenvolvendo:
    k_{2}^{(0)} = \lambda + 0{,}1\lambda(\lambda+1) + \cos(0{,}1).
  4. Atualização pelo Heun:
    y_1 = y_0 + \frac{h}{2}\bigl(k_{1}^{(0)} + k_{2}^{(0)}\bigr).
    Substituindo h=0{,}1:
    y_1 = 1 + 0{,}05\Bigl[(\lambda+1) + \bigl(\lambda + 0{,}1\lambda(\lambda+1) + \cos(0{,}1)\bigr)\Bigr].
    Agrupando termos:
    y_1 = 1 + 0{,}05\Bigl(2\lambda + 1 + 0{,}1\lambda^2 + 0{,}1\lambda + \cos(0{,}1)\Bigr).
    Simplificando coeficientes:
    y_1 = 1 + 0{,}005\lambda^2 + 0{,}105\lambda + 0{,}05\bigl(1+\cos(0{,}1)\bigr).
  5. Se quisermos uma aproximação numérica de \cos(0{,}1) sem calculadora podemos usar a aproximação pelo polinômio de Taylor \cos(x)\approx 1 - x^2/2 para x=0{,}1:
    \cos(0{,}1)\approx 1 - \frac{0{,}1^2}{2} = 1 - 0{,}005 = 0{,}995.
    Então numericamente:
    y_1 \approx 1 + 0{,}005\lambda^2 + 0{,}105\lambda + 0{,}05(1+0{,}995).
y_1 \approx 1 + 0{,}005\lambda^2 + 0{,}105\lambda + 0{,}09975.
y_1 \approx 1{,}09975 + 0{,}105\lambda + 0{,}005\lambda^2.

Passo 4

Segunda iteração: do tempo t_1=0{,}1 até t_2=0{,}2, com y_1 da etapa anterior.
  1. Calcular k_1 no início do segundo passo:
    k_{1}^{(1)} = f(0{,}1,y_1) = \lambda y_1 + \cos(0{,}1).
    Substituindo a expressão de y_1:
    k_{1}^{(1)} = \lambda\bigl(1{,}09975 + 0{,}105\lambda + 0{,}005\lambda^2\bigr) + \cos(0{,}1).
    Desenvolvendo:
    k_{1}^{(1)} = 1{,}09975\lambda + 0{,}105\lambda^2 + 0{,}005\lambda^3 + \cos(0{,}1).
  2. Previsor:
    y^{\text{pred}} = y_1 + h k_{1}^{(1)} = y_1 + 0{,}1\,k_{1}^{(1)}.
    Substituindo:
    y^{\text{pred}} = \bigl(1{,}09975 + 0{,}105\lambda + 0{,}005\lambda^2\bigr) + 0{,}1\bigl(1{,}09975\lambda + 0{,}105\lambda^2 + 0{,}005\lambda^3 + \cos(0{,}1)\bigr).
    Agrupando termos (ordens em \lambda):
    y^{\text{pred}} = 1{,}199250625 + 0{,}2149750208\lambda + 0{,}0155\lambda^2 + 0{,}0005\lambda^3
    (os coeficientes numéricos vêm do produto 0{,}1 e somas; aqui usei aproximações decimais para simplificar a escrita).
  3. Calcular k_2 no ponto (0{,}2,y^{\text{pred}}):
    k_{2}^{(1)} = f(0{,}2,y^{\text{pred}}) = \lambda\,y^{\text{pred}} + \cos(0{,}2).
    Então
    k_{2}^{(1)} = 1{,}199250625\lambda + 0{,}2149750208\lambda^2 + 0{,}0155\lambda^3 + 0{,}0005\lambda^4 + \cos(0{,}2).
  4. Atualização final para y_2:
    y_2 = y_1 + \frac{h}{2}\bigl(k_{1}^{(1)} + k_{2}^{(1)}\bigr), \qquad h/2=0{,}05.
    Somando k_1^{(1)}+k_2^{(1)} e multiplicando por 0{,}05 e somando y_1, obtemos (após agrupar termos em potências de \lambda):
    y_2 \approx 1{,}198503746 + 0{,}2199500417\lambda + 0{,}02099885104\lambda^2 + 0{,}001025\lambda^3 + 0{,}000025\lambda^4.
    Esse polinômio em \lambda é a expressão aproximada (com aproximações numéricas para \cos(0{,}1) e \cos(0{,}2) via Taylor de segunda ordem) da aproximação Heun para y(0{,}2).
  5. Se quisermos um número concreto para um \lambda específico, por exemplo \lambda=-5 (mesmo que isso seja pedido em parte (b)), substituímos \lambda=-5 e calculamos:
    y_2(\lambda=-5)\approx 0{,}5112248136\\ \text{(aprox.)}.
    (Comparação rápida: a solução exata para \lambda=-5 e b=0 em t=0{,}2 seria e^{-1}\approx 0{,}367879; aqui, com b=1, o valor exato difere, e o propósito era mostrar o cálculo do Heun.)

Passo 5

Parte (b) — método de Euler para b=0: dedução e convergência.
  1. Considere a EDO com b=0:
    y'=\lambda y,\qquad y(0)=y_0.
    O método explícito de Euler com passo h dá:
    y_{n+1} = y_n + h f(t_n,y_n) = y_n + h(\lambda y_n) = (1+\lambda h)\,y_n.
  2. Aplicando recursivamente:
    y_1=(1+\lambda h)y_0,\quad y_2=(1+\lambda h)y_1=(1+\lambda h)^2 y_0,\\ \ldots,\quad y_n=(1+\lambda h)^n y_0.
    (Observação de índices: dependendo de como se indexa, pode-se escrever y_{n+1}=(1+\lambda h)^{n+1}y_0; as duas formas são a mesma recorrência com deslocamento de índice.)
  3. Mostrando a solução exata (para b=0):
    y'=\lambda y \implies \frac{y'}{y}=\lambda \implies \int_{0}^{t}\frac{y'}{y}\,dt = \int_0^t\lambda\,dt
\ln y(t)-\ln y(0)=\lambda t \implies y(t)=y(0)e^{\lambda t}.
Com y(0)=1, fica y(t)=e^{\lambda t}.
  1. Condição de convergência (estabilidade) do esquema de Euler explícito quando queremos que y_n\to 0 conforme n\to\infty (como a solução exata faz quando \lambda<0): é necessário |1+\lambda h|<1.Para \lambda=-5 obtemos |1-5h|<1.Resolver a desigualdade: -1<1-5h<1.Da primeira desigualdade -1 < 1-5h segue -2 < -5h e, dividindo por -5 (invertendo sinal), h < 0{,}4. Da segunda 1-5h<1 segue -5h<0 e portanto h>0. Portanto: 0<h<0{,}4é o intervalo de passos para o qual |1-5h|<1 e, assim, y_n=(1-5h)^n y_0\to 0 conforme n\to\infty, o que coincide com o comportamento da solução exata e^{-5t} que tende a zero quando t\to\infty.

Passo 6

Parte (c) — quando preferir Runge–Kutta 2 (Heun) ao método de Taylor de ordem 2; como se deduzem ambos (principais etapas) — explicação didática e prática.
  1. Método de Taylor de ordem 2 — ideia e dedução:
    • Partimos da expansão de Taylor em torno de t_n: y(t_n+h) = y(t_n) + h y'(t_n) + \frac{h^2}{2} y''(t_n) + O(h^3).
    • Como y'(t)=f(t,y), substituímos: y(t_n+h) \approx y_n + h f(t_n,y_n) + \frac{h^2}{2} y''(t_n).
    • Para obter y''(t_n) usamos diferenciação da EDO: y'' = \frac{d}{dt}f(t,y) = f_t + f_y\,y' = f_t + f_y f,onde f_t=\partial f/\partial t e f_y=\partial f/\partial y. Assim: y_{n+1} = y_n + h f(t_n,y_n) + \frac{h^2}{2}\bigl(f_t(t_n,y_n) + f_y(t_n,y_n)\,f(t_n,y_n)\bigr).
    • Requisitos/prós/contras: exige cálculo de derivadas parciais f_t e f_y e da função f — pode ser algebraicamente trabalhoso ou impossível se f for complicado; porém é um método de ordem 2 com bom controle de erro local.
  2. Método de Runge–Kutta de ordem 2 (Heun) — dedução e passos principais:
    • Heun evita derivadas parciais: usa avaliações de f em pontos diferentes para construir uma aproximação de ordem 2.
    • Passos: calcular k_1=f(t_n,y_n), prever y^{\text{pred}}=y_n+h k_1, calcular k_2=f(t_n+h,y^{\text{pred}}) e atualizar y_{n+1}=y_n+\tfrac{h}{2}(k_1+k_2).
    • Requisitos/prós/contras: só exige avaliações de f (sem f_t ou f_y). É fácil de implementar e funciona bem em problemas práticos; é menos oneroso do que Taylor quando f_t ou f_y são complicados. Também preserva a ordem 2.
  3. Quando preferir Heun em vez de Taylor-2:
    • Prefira Heun se f(t,y) for dado numericamente, for complicado, ou se calcular f_t e f_y for difícil ou custoso. Heun requer apenas chamadas a f, o que é vantajoso em implementações numéricas e em problemas com f complexo.
    • Prefira Taylor-2 se você tiver uma expressão analítica simples para f e para suas derivadas parciais, e quiser um método com passos de expansão direta (por vezes útil em análise teórica ou quando se dispõe de símbolos e poucas avaliações). Porém, na maioria das aplicações numéricas a simplicidade de implementação do RK2 (Heun) torna-o mais prático.

Resposta

(a) Aproximação Heun com h=0{,}1 e b=1:
y(0{,}2)\approx 1{,}198503746 + 0{,}2199500417\lambda + 0{,}02099885104\lambda^2 + 0{,}001025\lambda^3 + 0{,}000025\lambda^4.
(Usando aproximações \cos(0{,}1)\approx 0{,}995 e \cos(0{,}2)\approx 0{,}980; para \lambda=-5 isso dá y(0{,}2)\approx 0{,}5112248.)
(b) Para b=0, o método de Euler explícito é
y_{n+1}=(1+\lambda h)\,y_n,
logo por recorrência
y_n=(1+\lambda h)^n y_0.
A solução exata é
y(t)=e^{\lambda t}.
Para \lambda=-5 a iteração converge para a solução exata (tende a 0) se e somente se
|1-5h|<1,
isto é,
0<h<0{,}4.
(c) O método de Runge–Kutta de ordem 2 (Heun) é preferível ao método de Taylor de ordem 2 quando calcular f_t e f_y é difícil ou custoso, porque Heun só precisa de avaliações de f. Dedução rápida: Taylor-2 vem da expansão de Taylor incluindo y''=f_t+f_y f (exige derivadas parciais), enquanto Heun usa k_1=f(t_n,y_n), y^{\text{pred}}=y_n+h k_1, k_2=f(t_n+h,y^{\text{pred}}) e y_{n+1}=y_n+\tfrac{h}{2}(k_1+k_2), evitando derivadas parciais e sendo mais simples de implementar.

Exercícios relacionados