O tópico de equações exatas terminou com uma constatação desconfortável: quase
nenhuma equação diferencial tem solução em forma fechada. O teorema de
existência e unicidade, por sua vez, garante que a solução existe — ela está
lá, é única, apenas não se deixa escrever.
Métodos numéricos são a resposta a essa situação. Eles nunca produzem uma
fórmula; produzem uma tabela de números, com erro controlado. É menos do que se
gostaria e é o suficiente para quase toda aplicação.
O problema, posto com precisão
Dado o problema de valor inicial
dxdy=f(x,y),y(x0)=y0,
queremos valores aproximados de y nos pontos
xn=x0+nh,n=1,2,3,…
O número h é o passo. Chamaremos yn a aproximação calculada e
y(xn) o valor exato — que não conhecemos, e cuja distância a yn é
justamente o que se quer estimar.
O método de Euler
A ideia é a coisa mais direta que se pode fazer com um campo de direções: em
cada ponto o campo diz para onde ir, então vá — em linha reta, por um instante
curto, e pergunte de novo.
Passe o cursor para ver a solução por um ponto; clique para fixá-la.Toque no gráfico para fixar a solução que passa pelo ponto.
Quanto erro, exatamente
Há dois erros diferentes, e confundi-los é a fonte de mal-entendidos.
Demonstração— ordem do método de Euler
Erro local. Pelo teorema de Taylor com resto de Lagrange, existe ξ entre
xn e xn+1 com
y(xn+1)=y(xn)+hy′(xn)+2h2y′′(ξ).
Como y′(xn)=f(xn,y(xn)), os dois primeiros termos são exatamente o passo
de Euler a partir do valor exato. Logo
εn+1=2h2y′′(ξ),
que é O(h2) desde que y′′ seja limitada no intervalo.
Erro global. Para chegar a xˉ são precisos N=(xˉ−x0)/h
passos, isto é, N é proporcional a 1/h. Somando N erros locais de tamanho
O(h2):
N⋅O(h2)=hxˉ−x0⋅O(h2)=O(h).
∎Fim da demonstração.
Como melhorar: duas estratégias
Se o erro vem de truncar Taylor cedo demais, há duas saídas.
Estratégia 1: mais termos de Taylor. Derivando y′=f(x,y) pela regra da
cadeia,
y′′=fx+fyy′=fx+ffy,
o que dá o método de Taylor de três termos:
yn+1=yn+hf+2h2(fx+ffy).
É de ordem 2. E é pouco usado, por uma razão de engenharia: exige as derivadas
parciais de f, calculadas à mão para cada problema novo. Um programa de uso
geral receberia f como caixa-preta e não teria como derivá-la.
Estratégia 2: mais avaliações de f. Em vez de derivadas, use o próprio f
em vários pontos e combine os valores. Esta é a família Runge-Kutta, e é a que
venceu.
Euler melhorado
Runge-Kutta de quarta ordem
O experimento
Ordem é uma afirmação verificável. Tomemos o problema mais transparente possível,
y′=y,y(0)=1,
cuja solução em x=1 vale e=2,718281828…, e integremos até lá com
os três métodos, dividindo h pela metade a cada linha.
h
erro Euler
razão
erro Heun
razão
erro RK4
razão
0,1
1,24×10−1
—
4,20×10−3
—
2,08×10−6
—
0,05
6,50×10−2
1,92
1,09×10−3
3,85
1,36×10−7
15,4
0,025
3,32×10−2
1,96
2,78×10−4
3,93
8,67×10−9
15,7
0,0125
1,68×10−2
1,98
7,01×10−5
3,96
5,47×10−10
15,8
Na prática
O livro dedica uma seção inteira à pergunta “e agora, o que eu uso?”
(Braun (1993), §1.17, p. 118). Três pontos merecem
registro.
Passo pequeno demais também é ruim. A análise acima trata só do erro de
truncamento, que decresce com h. Mas cada operação em ponto flutuante carrega
um erro de arredondamento, e o número de operações cresce como 1/h. Abaixo de
certo h o arredondamento domina e o erro total volta a crescer. Existe um
h ótimo, e ele não é o menor possível.
Passo adaptativo. Em vez de fixar h, estima-se o erro em tempo de execução:
dá-se um passo de tamanho h e dois de tamanho h/2, e compara-se. Se a
diferença exceder a tolerância, reduz-se h; se for muito menor, aumenta-se. É
assim que funcionam os integradores de biblioteca, e é o que permite atravessar
uma região suave depressa e desacelerar numa região difícil.
Onde tudo falha. Nenhum método numérico detecta sozinho que a solução deixou
de existir. Em y′=y2 com y(0)=1, a solução explode em
x=1, e um integrador
ingênuo produzirá números cada vez maiores sem avisar que passaram a não
significar nada. O campo de direções desta plataforma trata o caso do jeito
mínimo — interrompe o traçado ao encontrar valor não finito —, o que resolve o
problema de travar a aba, e não o de saber onde a solução acaba.
Exercícios
O segundo exercício é o mais instrutivo: ele prevê, com papel e lápis, exatamente os números da tabela acima.
básicoEuler e Heun à mãono espírito de Braun §1.13 e §1.15
Considere y′=x2−y com y(0)=1.
(a) Dê dois passos de Euler com h=0,2.
(b) Dê um passo de Euler melhorado com h=0,2.
(c) A solução exata é y=x2−2x+2−exp(−x). Compare os erros em
x=0,2 e comente o custo de cada método.
Dica
Em (b), calcule primeiro o passo de Euler como previsão, depois avalie f no ponto previsto.
Comentário. Dobrar o trabalho reduziu o erro por um fator de quase 8.
Compare com o que aconteceria dobrando o trabalho em Euler, isto é, usando
h=0,1 em dois passos: o erro cairia por um fator de 2, não de 8.
O ganho de Heun não vem de mais passos; vem de usar melhor a informação de
cada passo. É essa a ideia que Runge-Kutta leva ao limite prático.
intermediárioprever o erro de Eulerno espírito de Braun §1.13
Aplique o método de Euler a y′=y, y(0)=1, com passo h=1/N.
(a) Mostre que yN=(1+h)1/h.
(b) Mostre que o erro global em x=1 satisfaz
e−yN=2eh+O(h2).
(c) Confronte a previsão com a coluna de Euler da tabela do texto.
Dica
Em (b), calcule lnyN=h1ln(1+h) e use a série do logaritmo.
Resolução
(a) Com f(x,y)=y, o passo é yn+1=yn+hyn=(1+h)yn. Por
indução, yn=(1+h)n, e em n=N=1/h:
yN=(1+h)1/h.
(b) Tomando logaritmo e usando ln(1+h)=h−2h2+3h3−⋯:
lnyN=h1ln(1+h)=1−2h+3h2−⋯
Exponenciando e expandindo a exponencial,
yN=eexp(−2h+O(h2))=e(1−2h+O(h2)).
Logo
e−yN=2eh+O(h2)≈1,359h.
(c) Confrontando:
h
previsão 1,359h
erro medido
0,1
0,1359
0,1245
0,05
0,0680
0,0650
0,025
0,0340
0,0332
0,0125
0,0170
0,0168
A previsão erra por 9% na primeira linha e por 1% na última — que é
exatamente o comportamento esperado de um termo O(h2) desprezado.
O que este exercício estabelece. O teorema dizia O(h); aqui obteve-se a
constante, e/2. E ela explica por que as razões da tabela se aproximam de
2 por baixo: o termo O(h2) tem sinal tal que reduz o erro, e sua influência
relativa diminui à medida que h encolhe.
avançadoordem dos métodosno espírito de Braun §1.15 e §1.16
(a) Mostre, expandindo em série de Taylor em duas variáveis, que o erro local do
método de Euler melhorado é O(h3) — e portanto o erro global é O(h2).
(b) Mostre que, quando f não depende de y, o passo de Runge-Kutta de quarta
ordem coincide com a regra de Simpson aplicada a ∫xnxn+hf(x)dx.
(c) Use (b) para explicar por que RK4 é exato para y′=f(x) com f polinômio
de grau até 3.
Dica
Em (a), a expansão que você precisa é f(x+h,y+hk)=f+hfx+hkfy+O(h2), com as derivadas avaliadas em (xn,yn).
Resolução
(a) Escreva f, fx, fy avaliados em (xn,yn), e y=y(xn).
O valor exato. Por Taylor, com y′=f e y′′=fx+ffy:
y(xn+h)=y+hf+2h2(fx+ffy)+O(h3).
O passo de Heun. Expandindo k2 em duas variáveis,
Comparando. Os dois coincidem até o termo em h2, inclusive. A diferença é
O(h3): erro local de ordem 3.
Erro global. Pelo mesmo argumento de contagem do texto, N∼1/h passos
com erro local O(h3) dão erro global O(h2).
(b) Se f=f(x), as avaliações não dependem do segundo argumento:
k1=f(xn),k2=k3=f(xn+2h),k4=f(xn+h).
Substituindo na combinação:
yn+1=yn+6h[f(xn)+4f(xn+2h)+f(xn+h)],
porque 2k2+2k3=4f(xn+h/2). O colchete com pesos 1,4,1 sobre
h/6 é precisamente a regra de Simpson em [xn,xn+h].
(c) A regra de Simpson é exata para polinômios de grau até 3 — ela é
construída para ser exata até grau 2, e ganha o grau 3 de graça por simetria
do erro em torno do ponto médio.
Como para y′=f(x) o método é Simpson, ele integra sem erro algum
qualquer f polinomial de grau até 3: o resultado numérico coincide com
∫f até o arredondamento da máquina.
A leitura correta disso. Não significa que RK4 seja exato para EDOs de
grau baixo em geral — a dependência em y estraga o argumento. Significa que a
ordem 4 do método tem uma raiz identificável: ele carrega dentro de si uma
regra de quadratura de ordem 4, e as duas avaliações no ponto médio existem
para alimentar o peso 4 de Simpson.
O progresso fica salvo neste navegador, e só muda quando você aperta.
Fontes deste tópico
Martin Braun. Differential Equations and Their Applications: An Introduction to Applied Mathematics, 4ª ed. Springer-Verlag, 1993.
§1.13, §1.14, §1.15, §1.16, §1.17 · p. 96-120 (PDF: p. 112–136)
Euler, análise de erro, série de Taylor de três termos, Euler melhorado e Runge-Kutta. §1.17 ("What to do in practice") discute a escolha do método.
fontes/EDO/Differential Equations and The - Braun, Martin_7579.pdf