Métodos numéricos para solução de EDOs
Problemas de valor inicial para equações diferenciais ordinárias (EDOs) ocorrem em quase todas as ciências, tal como a mecânica de Newton, o movimento das partículas, evoluções de doenças, mecânica quântica (aqui uma equação parcial é am ias conhecida), entre outros. No cálculo das variações, essa teoria também é muito importante, como vimos no curso de EDP. Mais motivações dessa área são deixados para outros materiais, como esse aqui, esse aqui, ou algum livro de EDOs recomendado pelo curso.
O problema de valor inicial padrão envolve um sistema de equações diferenciais de primeira ordem, e suas condições iniciais, Uma equação de segunda ordem, tal como pode ser transformada em um sistema de primeira ordem introduzindo a variável .
A existência de soluções em um sistema de EDOs é garantida quando a função é contínua, enquanto a unicidade é garantida quando as últimas componentes são Lipshitz Contínuas. Mais detalhes podem ser consultados aqui para um resumo, ou algum texto-livro de EDOs.
Métodos numéricos
Suponha que queremos resolver
Existem basicamente dois tipos de métodos para solução numérica de EDOs, os métodos por aproximação analítica que buscam aproximar a função para qualquer ponto , tomando a forma de uma expansão de série truncada; e os métodos variável-discreta que procuram estimar a função em pontos para .
Métodos de um passo
Para , definimos esses tipos de método por em que com uma incrementação aproximada por passo.
Chamamos de solução referência a função tal que Temos que procura estimar . Para avaliar essa aproximação, definimos o erro de truncamento dado pela expressão Dizemos que o método, dado pela descrição de , é consistente se Também dizemos que o método é de ordem se para alguma norma (não importa qual nesse contexto pela equivalência das normas) e para algum , vale que
Método de Euler
No método de Euler, temos que . Note que o passo será a expansão de Taylor de primeira ordem: O erro de truncamento é que é claramente consistente, porque quando tende a 0, temos que a expressão de converge para . Além disso, note que em que pelo Teorema do Valor Médio e usando a expansão de Taylor. Isso nos permite mostrar que e o método de Euler é de ordem .
Para verificar a ordem, uma maneira relativamente fácil é verificar que , em que é a constante de Lipschitz de e .
Na vida real, o método de Euler é pouco utilizado, pois o seu erro se acumula ao longo das iterações e a curva fica bem diferente ao longo do tempo. Lembre que ele é uma boa aproximação local, mas uma péssima global.
Método de Heun
Vamos tentar corrigir a separação da curva real com a aproximação por Euler. O algoritmo Heun atende a esse requisito de correção. Em vez de focar no ponto inicial à esquerda do intervalo em que calculamos , usamos a informação do ponto final da curva. A ideia é que quando a tangente subestima o valor da função no ponto à esquerda do intervalo, teremos que ela superestimará quando pegarmos do ponto à direita (pelo menos em funções bem comportadas e suficientemente pequeno). A imagem abaixo ilustra esse fato:
Com isso, o método fica que é um método implícito. Para isso, aproximamos na equação da direita por que é o método de Euler. Esse método tem ordem .
Para mais detalhes, confira esse site.
Métodos de Taylor
Considere as derivadas totais de dadas por Portanto, e o método se torna Obteremos que o erro de truncagem é
Métodos Runge-Kutta
A ideia desses métodos é escrever tal que e É natural impor que Por fim, basta definir esses parâmetros adicionais introduzidos. O Runge-Kutta clássico de ordem 4 tem que ,
Esse é um tutorial que pode ser útil. Não se deixe enganar pelo "tutorial", tem bastante matemática. Esse também é um bom resumo.
Equações diferenciais Stiff (rígida, difícil)
Os métodos numéricos para resolver EDOs têm erros inerentes que envolvem derivadas de ordem maior. Se essas derivadas são razoavelmente limitadas, o erro vai ficar controlado. Problemas de valor inicial cuja magnitude da derivada cresce, mas a função não, são chamados de equações stiff ou equações rígidas/difíceis. A solução exata delas tem termo com forma em que é grande.
Vamos ilustrar esse problema com o seguinte exemplo:
Sabemos calcular a solução desse sistema exatamente usando EDOs. Nesse caso, A solução é a seguinte:
É fácil ver que quando cresce, ambas as funções convergem para a função cosseno:
Vamos aplicar o Runge Kutta com o passo e com . Note como a solução fica bem ruim para o primeiro caso:
Isso dá uma ideia do quão ruim uma solução pode acabar ficando dependendo do escolhido. Para analisar o erro produzido por equações desse tipo, usamos uma equação de teste:
Note que se a parte real dos autovalores de forem todos negativos, teremos que a solução converge para 0. No método de Euler, por exemplo,
que estabelece uma recursividade cuja solução é
Queremos, em particular, que quando . Se para uma matriz diagonal e uma invertível , então
Isso permite concluir que somente se para cada autovalor de , tenhamos que .
Domínio de estabilidade: .
Dizemos que um método é -estável quando for aplicado à equação de teste para e para a sequência gerada pelo método, para qualquer escolhido. O método de Euler implícito é -estável, pois e, portanto,