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:

Intuição algoritmo de Heun.

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:

example 1

É fácil ver que quando cresce, ambas as funções convergem para a função cosseno:

example 1, parte 2

Vamos aplicar o Runge Kutta com o passo e com . Note como a solução fica bem ruim para o primeiro caso:

RUnge-kutta para o exemplo 1

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,