Por que o método de Runge-Kutta e Euler é tão diferente?

10

Estou resolvendo um sistema de equações lineares, , numericamente. Eu fiz isso usando os métodos populares de Euler e Runge-Kutta (RK). Percebi uma grande diferença entre os dois em precisão na solução analítica. Qual é a razão para isto?x˙_=A_x_

Peter Mortensen
fonte
5
No mesmo período, os dois métodos têm precisão e estabilidade muito diferentes. Infelizmente, isso é principalmente uma questão de matemática, e seria melhor se você explicasse seu nível de entendimento sobre Métodos Numéricos.
Ja72
Meu nível neste assunto é muito limitado. Mas obrigado por compartilhar sua opinião.

Respostas:

18

A primeira coisa, você poderia ter mencionado, qual método RK você usou. Aqui está uma breve introdução aos métodos RK e Euler, trabalhando, existem méritos e deméritos.

Método de Euler

O método de Euler é o método de primeira ordem. É um método direto que estima o próximo ponto com base na taxa de mudança no ponto atual e é fácil de codificar. É um método de etapa única. Notavelmente, o método do Forward Euler é incondicionalmente instável para sistemas oscilantes sem amortecimento (como um sistema de mola de mola ou equações de onda) na desctretização do espaço. Para problemas complexos e / ou condições de contorno, pode falhar. Pode ser usado para análise numérica básica. Este método não é comumente usado para discretização espacial, mas algumas vezes usado na discretização temporal. Este esquema não é recomendado para a equação diferencial hiperbólica, porque é mais difusiva. A ordem de convergência desse esquema com o refinamento da grade é muito baixa. Estender o método de Euler para o método de ordem superior é fácil e direto.

Métodos RK:

Os métodos Runge-Kutta são na verdade uma família de esquemas derivados de um estilo específico. Você pode consultar este link para ter uma idéia básica dos métodos RK: http://web.mit.edu/10.001/Web/Course_Notes/Differential_Equations_Notes/node5.html

O método Euler avançado é realmente o método RK mais simples (1 estágio, primeira ordem). Os métodos RK precisos de ordem superior são multiestágio porque envolvem cálculos de inclinação em várias etapas no ou entre os valores de tempo discretos atuais e seguintes. O próximo valor da variável dependente é calculado tomando uma média ponderada desses vários estágios com base em uma aproximação da solução de série de Taylor. Os pesos nesta média ponderada são obtidos através da resolução de equações algébricas não lineares que são formadas exigindo o cancelamento de termos de erro na série de Taylor. O desenvolvimento de métodos RK de ordem superior é tedioso e difícil sem o uso de ferramentas simbólicas para computação.

O método RK mais popular é o RK4, pois oferece um bom equilíbrio entre ordem de precisão e custo de computação. RK4 é o método Runge-Kutta explícito de ordem mais alta que requer o mesmo número de etapas que a ordem de precisão (por exemplo, RK1 = 1 estágio, RK2 = 2 estágios, RK3 = 3 estágios, RK4 = 4 estágios, RK5 = 6 estágios ,. ..) Além da quarta ordem, os métodos RK tornam-se relativamente mais caros de calcular.

Responda

  • Geralmente, o erro no método Euler é mais alto que o método RK de ordem superior (RK2, RK3 etc.), porque o erro de truncamento nos métodos de ordem superior é menos comparado ao método Euler.

  • Em algumas literaturas de nível iniciante em métodos numéricos, é pouco mencionado que os métodos de ordem superior (digamos, RK4) geram menos erro que o método de ordem inferior (digamos, método de Euler). Na maioria das vezes isso é verdade, mas não o tempo todo. Essa propriedade depende da malha, condição inicial e equações diferenciais que você considerou.

  • nn

  • O "erro absoluto de diferença máxima absoluta" inicial no método RK4 é igual (ou) maior que o método de Euler para a grade grossa e reduz com a grade de refino os problemas com ondas mais curtas em relação à grade . Porque a taxa de convergência do método RK4 é maior que Euler. Observe que a grossura ou finura da grade é completamente baseada na equação diferencial, condição inicial e esquema numérico. Consulte o link a seguir para mais detalhes. Embora isso se baseie na diferenciação, podemos fazer uma comparação relativa entre integração numérica no tempo e diferenciação, desde que a "integração numérica" ​​seja estável.

registro(error)registro(grEud sEuze)

AGN
fonte
6
É ótimo ver outras pessoas que reconhecem que ordem superior nem sempre significa erro menor, apenas convergência mais rápida. Esse é um ponto tão importante, mas muitos parecem sentir falta dele!
tpg2114
Sim, senhor, eu vim a saber isso de uma das palestras de meus professores e verifiquei isso em uma de minhas tarefas. Acho que está faltando porque, na maioria das vezes, trabalhamos em malha fina e equações diferenciais relativamente não rígidas.
AGN
Resposta muito boa em geral. Editei para corrigir alguns pontos e adicionei alguns detalhes. Espero que você não se importe.
Doug Lipinski
1
@ Doug, obrigado por passar seu valioso tempo nisso. Meu argumento é simples: os métodos de ordem inferior são precisos na grade do curso e os métodos de ordem superior são precisos na grade fina. Por que mencionei (Observe que a grosseria ou a finura da grade são completamente baseadas na equação diferencial, na condição inicial e no esquema numérico). Em minha resposta, o erro de truncamento nos esquemas depende do tamanho da grade e da magnitude da ordem da derivada da função que truncamos ( Indiretamente, isso pode estar relacionado à rigidez da ODE).
AGN
Desculpe, não vi seu comentário até agora. As pessoas só recebem notificações se você responder ao nome de usuário completo (ou se for o proprietário da publicação). Comece a digitar @Dou...e ele deve oferecer o preenchimento automático para você. Publiquei uma resposta em sua outra pergunta .
Doug Lipinski
8

O método de Euler não leva em consideração a curvatura da solução e, portanto, tende a fornecer resultados diferentes, dependendo do tamanho da etapa. RK, dependendo da ordem, leva em consideração a curvatura. E isso torna o "próximo passo" estimado mais preciso. Basicamente, se você está fingindo que uma linha reta é uma boa aproximação de uma curva (Euler), estará sempre superando sua solução. Mas se você considerar a curvatura (RK), poderá seguir a curva.

Compare com a famosa citação do hóquei (Gretzky): Euler patina até onde está o disco; Runge-Kutta patina para onde o disco vai estar.

Eu recomendo que você leia sobre esses algoritmos. Você pode começar com os artigos da Wikipedia aqui e aqui .

Floris
fonte
5

Perdoe-me por adicionar uma resposta eu também, mas não resisti em incluir esta página da Press et al: "Receitas Numéricas em C":

insira a descrição da imagem aqui

Mike Dunlavey
fonte
1
Complementa muito bem a outra resposta. Esse livro é um clássico. Apesar de não mostrar as suas raízes Fortran por matrizes, por vezes, começando com um índice de 1.
Floris
2
@Floris: Uma vez eu trabalhei com um cara do norte da Itália, alto, nariz adunco, cabelos loiros e finos e tudo, chamado Giuseppe. Eu estava falando sobre por que as pessoas não se converteram para uma linguagem moderna, como C :) Ele rola para mim com uma voz profunda e imperiosa: "Como, Fortran é como o Rock and Roll. Ele nunca vai morrer".
Mike Dunlavey
1
i encaixar cerca de metade da sua descrição de Giuseppe ... :-)
Floris
4

Basicamente, a razão pela qual eles têm diferentes níveis de precisão está na maneira como são derivados. O método Euler (suponho que adiante) é de primeira ordem e pode ser derivado de várias maneiras. Mais facilmente do teroem de Taylor. Nesse método, apenas o termo de segunda ordem é retido, cometendo o erro de primeira ordem.

Os métodos runge kutta, por outro lado, são organizados e têm coeficientes escolhidos muito especificamente para "cancelar" várias ordens de termos de erro. Rk4 é de quarta ordem, já que os termos de erro de primeira, segunda, terceira ordem são cancelados pela escolha dos coeficientes do estágio. A derivação desses coeficientes não é muito difícil e provavelmente pode ser encontrada na wikipedia, se você estiver interessado em vê-lo.

Alex
fonte