Método ODE ideal para número fixo de avaliações de RHS

14

Na prática, o tempo de execução de resolver numericamente um IVP é frequentemente dominada pela duração da avaliação do lado direito (RHS) . Vamos, portanto, assumir que todas as outras operações são instantâneas (ou seja, sem custo computacional). Se o tempo de execução geral para resolver o IVP for limitado, isso equivale a limitar o número de avaliações de para alguns .x ( t 0 ) = x 0 f f N N

x˙(t)=f(t,x(t)) para t[t0 0,t1]
x(t0 0)=x0 0
ffNN

Estamos interessados ​​apenas no valor final .x(t1)

Estou procurando resultados teóricos e práticos que me ajudem a escolher o melhor método de EDO nesse cenário.

Se, por exemplo, , poderíamos resolver o IVP usando duas etapas explícitas de largura de Euler ou uma etapa de largura usando o método do ponto médio. Não está imediatamente claro para mim qual é o preferido. Para maior , é claro que também é possível pensar em métodos de várias etapas, esquemas de Runge-Kutta iterados, etc.( t 1 - t 0 ) / 2 t 1 - t 0 NN=2(t1t0)/2t1t0N

O que estou procurando são resultados semelhantes aos que existem, por exemplo, para regras de quadratura: Podemos escolher pesos e pontos associados modo que a regra de quadratura é exato para todos os polinômios tais que .n{wi}{xEu}Eu=1nWEug(xEu)gdeg(g)2n-1

Por isso, estou procurando limites superiores ou inferiores na precisão global dos métodos ODE, dado um número limitado de avaliações permitidas do RHS . Tudo bem se os limites se mantiverem apenas para algumas classes de RHS ou apresentarem restrições adicionais na solução (assim como o resultado da regra de quadratura que se aplica apenas a polinômios até um certo grau).fx

EDIT: Algumas informações básicas: são para aplicativos difíceis em tempo real, ou seja, o resultado deve estar disponível antes de um prazo conhecido. Daí o limite do número de avaliações de RHS como o fator de custo dominante. Normalmente, nossos problemas são rígidos e comparativamente pequenos.x(t1)N

EDIT2: Infelizmente não tenho os requisitos de tempo precisos, mas é seguro supor que será um pouco pequeno (definitivamente <100, provavelmente mais próximo de 10). Dado o requisito em tempo real, precisamos encontrar uma compensação entre a precisão dos modelos (com melhores modelos levando a tempos de execução mais longos do RHS e, portanto, com um menor ) e a precisão do método ODE (com melhores métodos que exigem maior valores de ).NNN

Florian Brucker
fonte
A correspondência usual dos métodos Runge-Kutta de etapa fixa com os métodos de Newton-Cotes aplica-se ao caso do método RK sendo aplicado ao PIV ; por exemplo, aplicar o método clássico de quarta ordem a esse IVP é equivalente a executar a regra de Simpson em . f ( x )y=f(x)f(x)
JM
@JM: Estou ciente disso. Eu pretendia apenas usar as regras de quadratura como um exemplo de caracterização da precisão de um método numérico para um determinado conjunto de entradas quando o número de avaliações de funções é limitado. Além disso, estou interessado em EDOs "verdadeiras", ou seja, aquelas que não se reduzem à integração padrão.
Florian Brucker 21/05
1
Isso está ficando mais interessante. Agora, o número por si só não significa nada. O que pode ser útil é saber λ N / T , onde T é o comprimento do intervalo de integração e λ é a constante de Lipschitz de f em relação a x . Isso nos dirá o quão rígido é o problema. Supondo que seja rígido, um candidato provável é o método BDF de 2ª ordem. NλN/TTλfx
David Ketcheson
@ DavidKetcheson: Estou mais interessado na abordagem geral para escolher um método adequado para um determinado problema, em vez do método ideal para um problema específico. Temos um número maior de modelos que variam muito em termos de rigidez e tempo.
Florian Brucker
Você diz que é muito caro para avaliar. Você pode calcular um jacobiano? Que tal alguma aproximação que possa corrigir a rigidez do princípio? Você não está em boa forma se o seu problema for muito rígido e não tiver como corrigi-lo. f
Jed Brown #

Respostas:

7

Penso que uma referência fundamental para responder à sua pergunta é este artigo de Oséias e Shampine . Agora vou dar uma base.

Em geral, o tamanho da etapa que você pode usar ao integrar numericamente um IVP pode ser restringido pela estabilidade ou precisão. Se você quiser escolher o melhor solucionador em termos de estabilidade, precisará considerar a região de estabilidade absoluta . Para um método de uma etapa, é

S={zC:|P(z)|1}.

Aqui é a função de estabilidade do método; veja, por exemplo, o texto de Hairer et. al. Uma condição necessária para a estabilidade é que λ h S onde λ varia sobre os valores próprios do jacobiano de f e h seja o tamanho do passo. Isso nem sempre é uma condição suficiente para problemas não lineares, mas geralmente é uma boa regra geral e é usado na prática.P(z)λhSλfh

Para um tratamento extensivo do problema de encontrar métodos (explícitos) que permitam grandes tamanhos de etapas estáveis, consulte este artigo sobre polinômios de estabilidade e este sobre otimização dos métodos de Runge-Kutta para simulações de fluidos compressíveis .

A estabilidade é a preocupação relevante se você achar que o maior tamanho estável da etapa já oferece precisão suficiente. Por outro lado, o tamanho da etapa pode ser restringido por seus requisitos de precisão. O que normalmente é feito é o controle de erros local. A solução é calculada usando dois métodos, e sua diferença é usada como estimativa do erro no menos preciso. O tamanho da etapa é escolhido de forma adaptativa para atingir o mais próximo possível a tolerância prescrita.

Duas medidas teóricas são fundamentais para prever a eficiência da precisão. A primeira é a ordem de precisão do método, que descreve a taxa na qual o erro se aproxima de zero quando o tamanho da etapa é diminuído. O segundo é o índice de eficiência de precisão (veja o artigo de Oséias e Shampine, vinculado na primeira frase acima), que leva em consideração as constantes que aparecem nos termos do erro e permite comparações entre métodos da mesma ordem.

A precisão e a eficiência da estabilidade de uma ampla gama de métodos podem ser calculadas de maneira simples e automatizada usando o NodePy (aviso: o NodePy é desenvolvido por mim).

David Ketcheson
fonte
Obrigado. O artigo de Oséias e Shampine é realmente muito interessante. Você conhece resultados semelhantes para problemas rígidos? Estou ciente de que um geralmente usa métodos implícitos para esses, mas estes não têm limite a priori no número de avaliações do RHS, portanto, são de pouca utilidade no meu caso.
Florian Brucker
Não conheço nada parecido com problemas rígidos, mas suspeito que exista algo. Como você diz, a pergunta é mais sutil ao usar métodos implícitos. Uma abordagem pode ser usar os métodos de Rosenbrock, que lidam bem com problemas rígidos, mas têm um número fixo de avaliações de RHS.
David Ketcheson
6

Não há muitos resultados nessa direção porque é mais difícil do que apenas corrigir a precisão, pois as considerações de estabilidade geralmente exigem que você escolha etapas de tempo menores do que o necessário para a precisão desejada. Portanto, os resultados são divididos entre os casos rígido e não rígido. No primeiro caso, os prazos e os requisitos das avaliações de RHS geralmente não são regidos pela precisão, e no último caso são.

Vou me concentrar em métodos explícitos, já que o caso implícito é muito menos óbvio quantas avaliações de RHS você precisará usar ... isso depende inteiramente de como você decide resolver o sistema resultante.

Para sistemas não rígidos:

Existem limitações de estágio para métodos explícitos de Runge-Kutta, para os quais digamos quantos estágios (avaliações RHS) são necessários para atingir uma certa ordem de precisão. Após a quarta ordem, o número de estágios excede a ordem da precisão e a disparidade continua a aumentar. Grande livro ODE de açougueiro: http://books.google.com/books/about/Numerical_Methods_for_Ordinary_Different.html?id=opd2NkBmMxsC

faz um bom trabalho explicando algumas dessas provas de 'inexistência'.

Seu exemplo de regra de quadratura leva a um método do tipo de várias etapas, como Adams-bashforth, ou ao que agora são chamados métodos de correção espectral adiada. Para adams-bashforth, você precisa apenas de uma avaliação RHS por etapa, mas como as regiões de estabilidade são tão pequenas em geral para esses métodos, você geralmente acaba fazendo a mesma quantidade de trabalho em termos de avaliações RHS que um método Runge-Kutta com o mesmo método. ordem.

Aqui está um artigo sobre correção adiada espectral:

https://www.google.com/search?q=spectral+deferred+correction&aq=f&oq=spectral+deferred+correction&aqs=chrome.0.57j0l2j62.3336j0&sourceid=chrome&ie=UTF-8

Não tenho certeza de como esses métodos de integração se comportam contra métodos explícitos padrão, geralmente exigem muito mais memória para salvar estados de solução em nós de quadratura e, portanto, nunca os usei eu mesmo.

Para sistemas rígidos:

infelizmente existem indicadores de tempo "otimizados", mas resultados teóricos precisos sobre o quão bom eles podem obter estão infelizmente limitados a alguns casos simples (e mesmo aqueles que acabaram não sendo um trabalho trivial). Os três resultados padrão dizem que, para os métodos Runge-Kutta com estágios : O eixo real mais negativo que pode incluir em sua região de estabilidade é um intervalo de comprimento 2 S 2 , o eixo mais imaginário que ele pode conter é um intervalo de comprimento S - 1 , e o maior círculo tangente ao eixo imaginário que ele pode conter possui raio S (todos eles são mutuamente exclusivos).S2S2S-1S

Reid.Atcheson
fonte
2
Pode acontecer que o uso de um método de etapa variável (ou mesmo de ordem variável) possa ser mais eficiente do que aderir obstinadamente a um método de etapa fixa. Pode-se, por exemplo, considerar o uso de um método extrapolativo como Bulirsch-Stoer: faça algumas avaliações em algumas etapas e depois crie (ostensivamente) estimativas mais precisas a partir dos resultados dessas etapas.
JM
Verdade. De fato, muitos dos métodos ótimos são equivalentes, em certo sentido, a uma versão de etapa variável de outro time-stepper. Runge-Kutta-Chebshev, por exemplo, pode ser visto como Euler avançado aplicado com os intervalos de tempo variáveis ​​como pontos de Chebyshev.
Reid.Atcheson
@JM: Exatamente. Mas existe uma maneira de julgar a precisão dessas abordagens em relação ao número de avaliações de RHS, além de experimentos numéricos (que seriam muito envolvidos, dado o alto número de abordagens possíveis)?
Florian Brucker
@ Florian, não em geral. Você já ouviu falar das equações de Lorenz, presumo?
JM
1
@JM: Sim :) Foi por isso que mencionei o exemplo da quadratura, onde a precisão é medida em um subconjunto (polinômios) do espaço original do problema. Ficaria feliz com os resultados que funcionam apenas para um determinado subconjunto de problemas.
Florian Brucker
3

1014f(x)

É claro que há exceções (sistemas muito grandes, sistemas muito rígidos), mas um sentimento comum na comunidade é que a questão de projetar solucionadores de EDO para sistemas "padrão" é resolvida. Consequentemente, acho que a pergunta que você faz não é muito interessante - trata de um componente do design do solucionador de ODE que não é mais importante. Isso também pode explicar a falta de literatura sobre o assunto.

Wolfgang Bangerth
fonte
+1. Sempre que alguém pergunta sobre solucionadores de ODE eficientes, presumo que esteja interessado em grandes sistemas de ODEs provenientes de semi-discretizações de PDE ou grandes problemas de n corpos.
David Ketcheson
Você pode explicar como isso se relaciona com a minha pergunta? Não vejo a conexão, pois estou interessado no caso em que a avaliação f(x)não é gratuita, mas é tão cara que o número de avaliações é limitado.
Florian Brucker
@ DavidKetcheson: Este não é o caso aqui. Em vez disso, temos requisitos de tempo muito rígidos (em tempo real) em hardware fraco (dispositivos incorporados). Os próprios sistemas ODE são comparativamente pequenos.
Florian Brucker
NNNN
NNN<1000
1

O(dim3)O(dim2)

Portanto, o primeiro ponto é garantir que o seu RHS seja realmente mais caro que a álgebra linear subjacente.

O segundo ponto: é sabido na literatura que os solucionadores baseados em métodos "caros" (ou seja, métodos RK explícitos) às vezes são mais rápidos que os "mais baratos" (métodos explícitos em várias etapas).

Resumindo, acho que você não deve considerar apenas a contagem de avaliações do RHS.

faleichik
fonte
N