Méthode ODE optimale pour un nombre fixe d'évaluations RHS

14

En pratique, le temps d'exécution de la résolution numérique d'un IVP est souvent dominé par la durée de l'évaluation du côté droit (RHS) . Supposons donc que toutes les autres opérations sont instantanées (c'est-à-dire sans coût de calcul). Si le temps d'exécution global pour résoudre l'IVP est limité, cela revient à limiter le nombre d'évaluations de à un certain .

X˙(t)=F(t,X(t)) pour t[t0,t1]
f f N N
X(t0)=X0
FFNN

Nous ne sommes intéressés que par la valeur finale .X(t1)

Je recherche des résultats théoriques et pratiques qui m'aideront à choisir la meilleure méthode ODE dans un tel contexte.

Si, par exemple, alors nous pourrions résoudre l'IVP en utilisant deux pas de largeur d'Euler explicites ou un pas de largeur t_1 - t_0 en utilisant la méthode du point médian. Il n'est pas immédiatement clair pour moi lequel est préférable. Pour un N plus grand , on peut bien sûr aussi penser aux méthodes à plusieurs étapes, aux schémas Runge-Kutta itérés, etc.( t 1 - t 0 ) / 2 t 1 - t 0 NN=2(t1-t0)/2t1-t0N

Ce que je recherche, ce sont des résultats similaires à ceux qui existent, par exemple pour les règles de quadrature: nous pouvons choisir n poids {wje} et les points associés {Xje} telle sorte que la règle de quadrature je=1nwjeg(Xje) est exact pour tous les polynômes g tels que eg(g)2n-1 .

Par conséquent, je recherche des limites supérieures ou inférieures sur la précision globale des méthodes ODE, étant donné un nombre limité d'évaluations autorisées de la RHS F . Ce n'est pas grave si les bornes ne s'appliquent qu'à certaines classes de RHS ou imposent des contraintes supplémentaires à la solution X (tout comme le résultat de la règle de quadrature qui ne s'applique qu'aux polynômes jusqu'à un certain degré).

EDIT: Quelques informations de base: Ceci est pour les applications en temps réel difficiles, c'est-à-dire que le résultat doit être disponible avant une date limite connue. D'où la limite du nombre d'évaluations de l'ERS comme facteur de coût dominant. En règle générale, nos problèmes sont rigides et relativement petits.x(t1)N

EDIT2: Malheureusement, je n'ai pas les exigences de synchronisation précises, mais il est sûr de supposer que sera plutôt petit (certainement <100, probablement plus proche de 10). Étant donné l'exigence en temps réel, nous devons trouver un compromis entre la précision des modèles (avec de meilleurs modèles conduisant à des temps d'exécution plus longs de la RHS et donc à un plus faible ) et la précision de la méthode ODE (avec de meilleures méthodes nécessitant une plus grande valeurs de ).NNN

Florian Brucker
la source
La correspondance habituelle des méthodes Runge-Kutta à étapes fixes avec les méthodes Newton-Cotes s'applique au cas où la méthode RK est appliquée à l'IVP ; Par exemple, appliquer la méthode classique du quatrième ordre à cet IVP équivaut à appliquer la règle de Simpson sur . y=f(x)f(x)
JM
@JM: J'en suis conscient. Je voulais seulement utiliser les règles de quadrature comme exemple de caractérisation de la précision d'une méthode numérique pour un certain ensemble d'entrées lorsque le nombre d'évaluations de fonctions est limité. En dehors de cela, je m'intéresse aux "vraies" ODE, c'est-à-dire celles qui ne se réduisent pas à l'intégration standard.
Florian Brucker
1
Cela devient plus intéressant. Maintenant, le nombre en lui-même ne signifie rien. Ce qui pourrait être utile est de savoir , où est la longueur de l'intervalle d'intégration et est la constante de Lipschitz de par rapport à . Cela nous dira à quel point le problème est rigide. En supposant qu'il soit rigide, un candidat probable est la méthode BDF de second ordre. λ N / T T λ f xNλN/TTλfx
David Ketcheson
@DavidKetcheson: Je suis plus intéressé par l'approche générale pour choisir une méthode appropriée pour un problème donné plutôt que par la méthode optimale pour un problème spécifique. Nous avons un plus grand nombre de modèles qui varient considérablement en termes de rigidité et de synchronisation.
Florian Brucker
Vous dites que coûte très cher à évaluer. Pouvez-vous calculer un jacobien du tout? Qu'en est-il d'une approximation qui peut corriger la rigidité du principe? Vous n'êtes pas en forme si votre problème est très rigide et que vous n'avez aucun moyen de le corriger. f
Jed Brown

Réponses:

7

Je pense qu'une référence clé pour répondre à votre question est cet article d'Osée et de Shampine . Je vais maintenant donner quelques informations.

En général, la taille de pas que vous pouvez utiliser lors de l'intégration numérique d'un IVP peut être limitée par la stabilité ou la précision. Si vous voulez choisir le meilleur solveur en termes de stabilité, vous devez considérer la région de stabilité absolue . Pour une méthode en une étape, c'est

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

Ici est la fonction de stabilité de la méthode; voir par exemple le texte de Hairer et. Al. Une condition nécessaire à la stabilité est que λ h Sλ se situe sur les valeurs propres du jacobien de f et h est la taille du pas. Ce n'est pas toujours une condition suffisante pour les problèmes non linéaires mais c'est généralement une bonne règle de base et est utilisée dans la pratique.P(z)λhSλfh

Pour un traitement approfondi du problème de la recherche de méthodes (explicites) qui permettent de grandes tailles de pas stables, voir mon article sur les polynômes de stabilité et celui-ci sur l'optimisation des méthodes de Runge-Kutta pour les simulations de fluide compressible .

La stabilité est la préoccupation pertinente si vous constatez que la plus grande taille de pas stable vous donne déjà suffisamment de précision. D'un autre côté, la taille du pas peut à la place être limitée par vos exigences de précision. Ce qui est généralement fait, c'est le contrôle des erreurs locales. La solution est calculée à l'aide de deux méthodes, et leur différence est utilisée comme estimation de l'erreur dans la moins précise. La taille de pas est choisie de manière adaptative pour atteindre le plus près possible la tolérance prescrite.

Deux mesures théoriques sont essentielles pour prédire l'efficacité de la précision. Le premier est l' ordre de précision de la méthode, qui décrit la vitesse à laquelle l'erreur se rapproche de zéro lorsque la taille du pas diminue. Le second est l' indice d'efficacité de précision (voir l'article d'Osée et de Shampine lié dans la première phrase ci-dessus) qui prend en compte les constantes apparaissant dans les termes d'erreur et permet des comparaisons entre des méthodes du même ordre.

La précision et l'efficacité de la stabilité d'un large éventail de méthodes peuvent être calculées de manière simple et automatisée à l'aide de NodePy (avertissement: NodePy est développé par mes soins).

David Ketcheson
la source
Je vous remercie. L'article d'Osée et de Shampine est en effet très intéressant. Connaissez-vous des résultats similaires pour des problèmes de raideur? Je suis conscient que l'on utilise généralement des méthodes implicites pour celles-ci, mais celles-ci n'ont a priori aucune limite sur le nombre d'évaluations RHS, elles sont donc de peu d'utilité dans mon cas.
Florian Brucker
Je ne connais rien de tel pour des problèmes sévères, mais je soupçonne qu'il existe quelque chose. Comme vous le dites, la question est plus subtile lors de l'utilisation de méthodes implicites. Une approche pourrait être d'utiliser les méthodes de Rosenbrock, qui gèrent bien les problèmes rigides mais ont un nombre fixe d'évaluations RHS.
David Ketcheson
6

Il n'y a pas beaucoup de résultats dans cette direction, car il est plus difficile que de simplement fixer la précision, car les considérations de stabilité peuvent souvent vous obliger à choisir des pas de temps plus petits que ceux dont vous auriez besoin pour la précision souhaitée. Les résultats sont donc répartis entre les cas rigides et non rigides. Dans le premier cas, les exigences en matière de délais et d'évaluations RHS ne sont généralement pas régies par l'exactitude, et dans le second cas, elles le sont.

Je vais me concentrer sur les méthodes explicites, car le cas implicite est beaucoup moins évident du nombre d'évaluations RHS que vous devrez utiliser ... cela dépend entièrement de la façon dont vous décidez de résoudre le système résultant.

Pour les systèmes non rigides:

Il existe des limites d'étape pour les méthodes Runge-Kutta explicites pour lesquelles il faut indiquer le nombre d'étapes (évaluations RHS) nécessaires pour atteindre un certain ordre de précision. Après le quatrième ordre, le nombre d'étapes dépasse l'ordre de précision et la disparité continue de croître. Le gros livre ODE du boucher: http://books.google.com/books/about/Numerical_Methods_for_Ordinary_Different.html?id=opd2NkBmMxsC

fait un bon travail en expliquant certaines de ces preuves de «non-existence».

Votre exemple de règle de quadrature conduit soit à une méthode de type à étapes multiples comme Adams-bashforth, soit à ce que l'on appelle maintenant des méthodes de correction spectrale différée. Pour adams-bashforth, vous n'avez besoin que d'une seule évaluation RHS par étape, mais comme les régions de stabilité sont si petites en général pour ces méthodes, vous finissez généralement par faire la même quantité de travail en termes d'évaluations RHS qu'une méthode Runge-Kutta avec la même commande.

Voici un article sur la correction spectrale différée:

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

Je ne sais pas comment ces méthodes d'intégration se comparent aux méthodes explicites standard, elles nécessitent souvent beaucoup plus de mémoire pour enregistrer les états de la solution aux nœuds en quadrature et je ne les ai donc jamais utilisées moi-même.

Pour les systèmes rigides:

il existe des pas de temps «optimisés», mais les résultats théoriques précis concernant leur efficacité sont malheureusement limités à quelques cas simples (et même ceux-ci se sont avérés ne pas être un travail trivial). Les trois résultats standard indiquent que pour les méthodes de Runge-Kutta à étages : l'axe réel le plus négatif qu'il peut inclure dans sa région de stabilité est un intervalle de longueur 2 S 2 , l'axe le plus imaginaire qu'il peut contenir est un intervalle de longueur S - 1 , et le plus grand cercle tangent à l'axe imaginaire qu'il peut contenir a un rayon S (tous ces éléments s'excluent mutuellement également).S2S2S1S

Reid.Atcheson
la source
2
Il peut arriver que l'utilisation d'une méthode d'étape variable (ou même d'ordre variable) soit plus efficace que de s'en tenir à une méthode d'étape fixe. On pourrait par exemple envisager d'utiliser une méthode extrapolative comme Bulirsch-Stoer: faire quelques évaluations à certaines étapes, puis construire (ostensiblement) des estimations plus précises à partir des résultats de ces étapes.
JM
Vrai. En fait, bon nombre des méthodes optimales sont en quelque sorte équivalentes à une version à pas variable d'un autre pas à pas temporel. Runge-Kutta-Chebshev, par exemple, peut être vu comme Euler avancé appliqué avec les pas de temps variables étant des points de Chebyshev.
Reid.Atcheson
@JM: Exactement. Mais existe-t-il un moyen de juger de l'exactitude de ces approches par rapport au nombre d'évaluations RHS, en dehors des expériences numériques (qui seraient très impliquées, étant donné le nombre élevé d'approches possibles)?
Florian Brucker
@Florian, pas en général. Vous avez entendu parler des équations de Lorenz, je présume?
JM
1
@JM: Oui :) C'est pourquoi j'ai mentionné l'exemple en quadrature, où la précision est mesurée par rapport à un sous-ensemble (polynômes) de l'espace du problème d'origine. Je serais satisfait des résultats qui ne fonctionnent que pour un certain sous-ensemble de problèmes.
Florian Brucker
3

1014f(x)

Il y a bien sûr des exceptions (systèmes très grands, systèmes très rigides) mais un sentiment commun dans la communauté est que la question de la conception de solveurs ODE pour des systèmes "standard" est résolue. Par conséquent, je pense que la question que vous posez n'est pas très intéressante - elle concerne un composant de la conception du solveur ODE qui n'a plus d'importance. Cela peut également expliquer le manque de littérature sur le sujet.

Wolfgang Bangerth
la source
+1. Chaque fois que quelqu'un pose des questions sur des solveurs ODE efficaces, je suppose simplement qu'ils sont intéressés par d'énormes systèmes d'OD provenant de semi-discrétisations PDE ou de gros problèmes à n corps.
David Ketcheson
Pouvez-vous expliquer en quoi cela se rapporte à ma question? Je ne vois pas le lien, car je m'intéresse au cas où l'évaluation f(x)n'est pas gratuite mais plutôt si chère que le nombre d'évaluations est limité.
Florian Brucker
@DavidKetcheson: Ce n'est pas le cas ici. C'est plutôt que nous avons des exigences de timing très strictes (temps réel dur) sur du matériel faible (appareils embarqués). Les systèmes ODE eux-mêmes sont relativement petits.
Florian Brucker
NNNN
NNN<1000
1

O(dim3)O(dim2)

Donc, le premier point est de vous assurer que votre RHS est vraiment plus cher que l'algèbre linéaire sous-jacente.

Le deuxième point: il est connu de la littérature que les solveurs basés sur des méthodes "coûteuses" (c'est-à-dire des méthodes RK explicites) fonctionnent parfois plus rapidement que ceux "moins chers" (méthodes explicites en plusieurs étapes).

En résumé, je pense que vous ne devriez pas seulement considérer le nombre d'évaluations de l'ERS.

faleichik
la source
N