Normes scientifiques pour les erreurs numériques

40

Dans mon domaine de recherche, la spécification d'erreurs expérimentales est communément acceptée et les publications qui ne les fournissent pas sont très critiquées. En même temps, je trouve souvent que les résultats des calculs numériques sont fournis sans aucune explication des erreurs numériques, même si (ou peut-être parce que) des méthodes numériques souvent discutables sont à l'œuvre. Je parle d’erreurs qui résultent de la discrétisation et de la précision finie des calculs numériques, etc. Bien sûr, ces estimations d’erreurs ne sont pas toujours faciles à obtenir, comme dans le cas des équations hydrodynamiques, mais elles semblent souvent résulter de la paresse alors que je crois. que la spécification des estimations d'erreur numérique doit être standard tout autant que pour les résultats expérimentaux. D'où ma question:

highsciguy
la source

Réponses:

26

Votre question concerne le modèle de vérification. Vous pouvez trouver de nombreuses ressources sur les méthodes et les normes en recherchant Vérification et validation ( Roache 1997 , 2002 , 2004 , Oberkampf et Trucano 2002 , Salari et Knupp 2000 , Babuska et Oden 2004 ), ainsi que le thème plus général de la quantification de l’ incertitude . Plutôt que de développer des méthodes, je voudrais mettre en évidence une communauté qui a pris une position ferme sur la question.

En 1986, Roache, Ghia et White ont établi la déclaration de politique éditoriale du Journal of Fluids Engineering sur le contrôle de la précision numérique qui s'ouvre par

Un problème professionnel existe dans la communauté de la dynamique des fluides computationnelle ainsi que dans le domaine plus large de la physique computationnelle. À savoir, il existe un besoin de normes plus élevées sur le contrôle de la précision numérique.

[...] Le problème n’est certainement pas propre à la JFE et a été encore plus souligné lors de la Conférence AFOSRHTTM-Stanford de 1980-1981 sur les écoulements complexes turbulents. Le comité d’évaluation de cette conférence a conclu que, dans la plupart des communications soumises à cette conférence, il était impossible d’évaluer et de comparer la précision de différents modèles de turbulence, car on ne pouvait pas distinguer les erreurs de modélisation physiques des erreurs numériques liées à l’algorithme et la grille. C'est particulièrement le cas pour les méthodes précises du premier ordre et les méthodes hybrides.

Ils concluent avec des directives très directes:

Le Journal of Fluids Engineering n'acceptera pas de publication tout article présentant la solution numérique d'un problème d'ingénierie des fluides qui n'aborde pas la tâche du test systématique des erreurs de troncature et de l'estimation de la précision.

[...] nous devons préciser qu'un seul calcul dans un réseau fixe ne sera pas acceptable , car il est impossible de déduire une estimation de la précision à partir d'un tel calcul. En outre, les éditeurs ne considéreront pas qu'un accord raisonnable avec des données expérimentales constitue une preuve suffisante de la précision, en particulier si des paramètres ajustables sont impliqués, comme dans la modélisation de la turbulence.

La version actuelle contient un ensemble complet de critères et représente un standard auquel, à mon avis, d’autres domaines doivent aspirer. Il est honteux que, même aujourd’hui, la prise de conscience de l’importance de la vérification des modèles soit absente dans de nombreux domaines.

Jed Brown
la source
1
Le dernier point concernant les paramètres ajustables me rappelle une citation de John von Neumann: "Avec quatre paramètres, je peux adapter un éléphant et avec cinq, je peux le forcer à remuer sa trompe."
Jed Brown
Cela ne concerne que l’effet de l’erreur de discrétisation, et non celui des erreurs d’arrondi, qui sont presque universellement ignorées dans les simulations de fluides car elles contribuent généralement moins à l’erreur totale. Mais dans les applications ne comportant pas d’équations différentielles ni d’intégrales, il n’ya pas d’erreur de discrétisation. Dans ces problèmes, les erreurs d'arrondi et les erreurs de troncature d'itération constituent la source d'erreur principale.
Arnold Neumaier
Pensez-vous qu'une estimation rigoureuse a posteriori pourrait remplacer l'exigence d'indépendance du réseau? Comme indiqué, il est un peu vague, dans quelle mesure affinez-vous la grille pour assurer votre indépendance? Un bon estimateur a posteriori, en revanche, ne devrait laisser aucune place à l’ambiguïté.
Reid.Atcheson
2
@ Reid.Atcheson "Yo dawg, je t'ai entendu comme une estimation d'erreur, alors je t'ai donné une estimation d'erreur pour ton estimation d'erreur afin que tu puisses estimer l'erreur dans ton ...", mais malheureusement, les estimations d'erreur pratiques ont tendance à ne pas être rigoureuses pire des cas. Les limites disponibles sont souvent pessimistes et reposent sur des hypothèses qui ne sont pas vraies pour la plupart des problèmes d’ingénierie. Même avec l'estimateur d'erreur suprême, vous devez vérifier qu'il a été implémenté correctement. Bien sûr, utilisez un estimateur d'erreur si vous en avez un, mais ce dernier n'est pas une vérification autonome.
Jed Brown
19

De telles normes n'existent pas, car des estimations d'erreur fiables coûtent souvent beaucoup plus cher que les calculs approximatifs.

Il existe essentiellement quatre types d'estimations d'erreur:

(i) Analyses théoriques prouvant qu'une méthode numérique est numériquement stable. Cela ne donne pas vraiment une barre d'erreur car l'analyse garantit uniquement que l'erreur commise n'est pas pire qu'une erreur quantifiée dans les arguments d'entrée. Cela suffit pour la plupart des calculs scientifiques, car les entrées sont également approximatives, de sorte que l'erreur commise avec une méthode numériquement stable n'est pas pire que d'avoir utilisé une entrée légèrement différente (mais inconnue). Les méthodes numériques les plus réputées sont accompagnées d'une analyse numérique stable, bien que l'on ne trouve pratiquement aucune implémentation qui rend compte sur demande de la soi-disant erreur rétrograde résultante.

(ii) Estimation de l'erreur asymptotique. Celles-ci supposent que les produits de toutes les erreurs (les erreurs de saisie, les erreurs d'arrondi ou de discrétisation étant les sources les plus courantes) peuvent être négligés (discutable si les fonctions sont très non linéaires), et utilisent une analyse de sensibilité pour propager les erreurs de saisie. Associée à une analyse de stabilité numérique, elle permet également de saisir l’effet des erreurs d’arrondi ou de discrétisation. Les barres d'erreur résultantes sont aussi réaliables que la validité des hypothèses sur lesquelles elles sont basées. À l'aide d'outils de différenciation automatique, le coût de l'estimation de l'erreur est généralement 1 ou 2, en plus du coût de l'approximation. Ainsi, ce type d’estimation d’erreur est assez fréquent dans la pratique.

[Éditer] Par exemple, le théorème de Oettli-Prager donne des estimations d'erreur rétrocédent facilement calculables pour la solution de systèmes linéaires. L'analyse de sensibilité indique que ces erreurs doivent être multipliées par la norme de l'inverse de la matrice, qui peut être estimée à l'aide de l'estimateur de Hager (intégré dans les estimateurs modernes du nombre de conditions).

(iii) Analyse d'erreur stochastique: (CESTAC, http://www.sciencedirect.com/science/article/pii/0378475488900705) Ceci est effectué en surchargeant toutes les opérations avec une variante stochastique correspondante qui évalue trois jeux d'arguments et ajoute ensuite une erreur artificielle d'arrondi aléatoire. Les trois derniers résultats servent à calculer une moyenne et un écart-type à la racine carrée de (somme des carrés des écarts par rapport à la moyenne divisée par 2 = 3-1). Cela donne une estimation assez utile de la précision de la partie erreur d’arrondi. Cela ne tient cependant pas compte de l'erreur de discrétisation, qui est généralement l'erreur dominante dans les calculs ODE et PDE. Le coût dépend du langage de programmation en raison de la surcharge liée à l'exécution d'opérations surchargées. En supposant (ce qui n’est presque jamais le cas) que la surcharge n’entraîne aucune pénalité temporelle, le coût du résultat et de l’erreur estimée est un facteur de 3 par rapport au calcul de l’approximation uniquement.

(iv) Analyse par intervalles: ceci donne des limites rigoureuses pour toutes les sources d'erreur si cela est fait correctement, mais, sauf dans des cas simples, une longue expérience (ou un logiciel l'incarnant) est nécessaire pour le faire de manière à ce que les limites ne surestiment pas sérieusement les erreurs vraies. . Un bon logiciel d'intervalle est disponible, entre autres, pour l'algèbre linéaire (par exemple, IntLab http://www.ti3.tu-harburg.de/rump/intlab/ ; coût un facteur d'environ 6 si la dimension est grande) et l'optimisation globale (par exemple , COCONUT http://www.mat.univie.ac.at/~coconut/coconut-environment/; peut être beaucoup plus cher ou même être moins cher que l'optimisation globale approximative, en fonction des caractéristiques du problème). Mais de nombreuses autres catégories de problèmes faciles à traiter avec précision (par exemple, en englobant les trajectoires des grandes planètes du système solaire sur 10 ans) sont complètement hors de portée pour la génération actuelle de méthodes à intervalles.

Arnold Neumaier
la source
Merci. Je voudrais voir (ii) au travail. Pouvez-vous donner un exemple où les auteurs combinent l'analyse de sensibilité et l'analyse de stabilité numérique pour déterminer les estimations d'erreur globales.
highsciguy
@highsciguy: voir mon édition de (ii)
Arnold Neumaier
Merci. Matrice jacobienne inverse?
highsciguy
@highsciguy: ne comprends pas ta dernière question. L'exemple consistait à résoudre un système linéaire d'équations, sans figures jacobiennes.
Arnold Neumaier
1
J'ai négligé linéaire. Alors c'est clair. Existe-t-il des tentatives pour généraliser le théorème de Oettli-Prager à des systèmes non linéaires?
highsciguy
13

Sorte de. Les analystes numériques ont déduit des marges d'erreur théoriques qui sont généralement surestimées et qui risquent de ne pas être aussi utiles dans la pratique car elles peuvent impliquer des informations difficiles à obtenir pour des problèmes concrets. Un bon exemple serait les limites des erreurs numériques dans la solution des équations ordinaires, que vous pouvez trouver dans les livres de Hairer et Wanner. Le livre de Nick Higham, Exactitude et stabilité des algorithmes numériques (je peux être légèrement différent du titre), fournit également des limites d'erreur sur les opérations numériques courantes et les algorithmes d'algèbre linéaire. La littérature d'analyse numérique est en proie à de telles limites.

Des méthodes d'analyse par intervalles ont également été utilisées pour calculer les limites d'erreur; ces méthodes sont rigoureuses et tendent à fournir des limites d'erreur plus fortes que les limites d'erreur théoriques, mais elles peuvent toujours surestimer de manière flagrante l'erreur dans un calcul numérique. Ces méthodes ont été mieux exploitées (à ma connaissance) dans l'optimisation globale, mais trouvent également une utilisation dans la quantification de l'incertitude. Arnold Neumaier a écrit au moins un livre sur les méthodes d'analyse par intervalles et est mieux qualifié pour commenter ce sujet en détail. Outre les problèmes de surestimation potentiels, les méthodes d'analyse par intervalles souffrent de la nécessité de disposer d'une infrastructure informatique supplémentaire qui nécessite la mise à niveau de logiciels de simulation numérique volumineux existants (tels que PETSc, Trilinos, CLAWPACK / PyClaw, etc.). ) pour inclure l’arithmétique des intervalles et la différenciation automatique (pour les méthodes basées sur Taylor). D'après ce que j'ai vu, il n'y a pas beaucoup de formules d'arithmétique par intervalles et de différenciation automatique autorisées par licence, bien qu'il y en ait. Même alors, parfois, ces bibliothèques ont une fonctionnalité limitée; Il a été difficile de trouver une bibliothèque arithmétique par intervalles avec licence permissive (LGPL ou BSD) avec une fonctionnalité similaire à BLAS.

Des estimations d'erreur a posteriori peuvent être obtenues plus facilement, mais ne sont pas rigoureuses. Je connais le mieux ces estimations tirées de travaux sur des équations différentielles ordinaires, mais elles existent également pour de nombreuses méthodes utilisées pour calculer des solutions d'équations aux dérivées partielles.

Plus généralement, les méthodes de quantification de l'incertitude, telles que l'utilisation d'expansions de chaos polynomiales, les méthodes de Monte Carlo ou d'autres méthodes d'échantillonnage peuvent être utilisées pour quantifier l'incertitude dans les calculs en raison de variations des paramètres d'entrée. Ces méthodes devraient pouvoir fournir une sorte de "barre d'erreur" heuristique en raison de variations dans les paramètres, mais ne donneront pas de limites rigoureuses.

Je pense que vous avez parfaitement raison en ce qui concerne la spécification des erreurs numériques: la science informatique devrait être tout aussi rigoureuse en ce qui concerne la présentation des résultats que les sciences physiques expérimentales. De nombreux travaux sont en cours dans ce domaine (sous les termes génériques de "quantification de l'incertitude" et "analyse numérique"), et j'espère que des barres d'erreur seront incluses lors de la discussion de la plupart des résultats de calcul à l'avenir. .

Geoff Oxberry
la source
Avez-vous une bonne référence d'un article de synthèse sur ces développements du chaos polynomial? J'ai souvent vu le terme apparaître régulièrement et j'aimerais en apprendre un peu plus à leur sujet. Merci.
GertVdE
2
Dongbin Xiu écrit généralement des articles accessibles sur les développements du chaos polynomial. Voici l'un des documents de synthèse plus généraux qu'il a écrits: dam.brown.edu/scicomp/media/report_files/BrownSC-2003-07.pdf
Geoff Oxberry
7

Outre les autres réponses, quelques points supplémentaires doivent être pris en compte.

  1. Les erreurs de discrétisation numérique, ou au moins l'ordre des schémas, peuvent être déterminées analytiquement. La discussion de ces erreurs peut être omise des articles s'ils utilisent un schéma communément connu.
  2. Etudes de raffinement de grille où le même problème, généralement simple, est traité sur des grilles de plus en plus fines. Celles-ci sont comparées à une solution exacte, ou à la solution sur une grille ridiculement fine, pour trouver la norme L, généralement la norme L2. La pente de cette estimation d'erreur donne l'ordre de précision.
  3. Dans les problèmes où différents schémas numériques sont disponibles mais que le raffinement de la grille ou des solutions exactes ne le sont pas, une autre méthode appelée Richardson Extrapolation donnera des limites aux termes d'erreur. Vous trouverez dans cet article une bonne critique décrivant ces méthodes .
  4. Enfin, chaque revue établit ses propres normes d’acceptation. Certains sont stricts, d'autres non. Par exemple, l’AIAA a défini ses normes ici . D'autres revues ont des informations similaires pour les auteurs.
tpg2114
la source
Je voudrais juste commenter le point 2. Je pense que pour résoudre numériquement un problème du monde réel, il est beaucoup plus susceptible de voir la norme comparer la différence entre deux raffinements successifs, plutôt qu'avec "une grille ridiculement fine". Si vous pouvez résoudre la grille très fine, pourquoi vous embêtez-vous avec les plus grossières?
Godric Seer
Les études de raffinement de la grille ne sont généralement pas pratiques sur des problèmes réels. C'est là que le point 3 entre en jeu. Il est beaucoup plus facile de déterminer les limites d'erreur en modifiant l'ordre des schémas que d'affiner progressivement la grille. Par exemple, nous validons nos codes en utilisant un vortex non invisible qui est toujours non linéaire, mais nous pouvons utiliser des solutions "exactes" très fines pour vérifier la précision. Mais sur une chambre de combustion à tourbillon complet, nous ne pouvons pratiquement pas le faire, nous utilisons donc des schémas différents.
tpg2114
Notez également que le fait d'affiner la grille et de vérifier la différence dans la réponse indique l'indépendance de la grille, ce qui est différent de la vérification des limites d'erreur. Le raffinement de la grille est toujours nécessaire, même dans les cas pratiques, bien que le raffinement de la grille pour quelque chose comme Large Eddy Simulations ouvre toute une boîte de Pandore.
tpg2114
Merci, j'avais incorrectement associé l'indépendance de la grille aux limites d'erreur. J'imagine que j'avais toujours supposé que l'indépendance du réseau impliquait un certain niveau qualitatif de garantie en matière d'erreur de discrétisation.
Godric Seer
3
L'indépendance de la grille implique qu'une grille plus fine n'améliorera pas la réponse, mais elle ne vous indiquera pas la précision de votre réponse ni la rapidité avec laquelle l'amélioration de la grille améliore la précision.
tpg2114