Standard scientifici per errori numerici


40

Nel mio campo di ricerca, la specifica degli errori sperimentali è comunemente accettata e le pubblicazioni che non riescono a fornirli sono fortemente criticate. Allo stesso tempo, trovo spesso che i risultati dei calcoli numerici siano forniti senza alcuna spiegazione degli errori numerici, anche se (o forse perché) sono spesso al lavoro metodi numerici discutibili. Sto parlando di errori che derivano dalla discretizzazione e dalla precisione finita dei calcoli numerici ecc. Certo, queste stime degli errori non sono sempre facili da ottenere, come nel caso delle equazioni idro-dinamiche ma spesso sembrano derivare dalla pigrizia mentre credo che la specifica delle stime degli errori numerici dovrebbe essere standard tanto quanto lo sono per i risultati sperimentali. Da qui la mia domanda:

Risposte:


26

La tua domanda è sulla verifica del modello. Puoi trovare numerose risorse su metodi e standard cercando Verifica e Convalida ( Roache 1997 , 2002 , 2004 , Oberkampf & Trucano 2002 , Salari & Knupp 2000 , Babuska & Oden 2004 ), nonché l'argomento più ampio della quantificazione dell'incertezza . Piuttosto che approfondire i metodi, vorrei evidenziare una comunità che ha preso una posizione ferma sulla questione.

Nel 1986, Roache, Ghia e White hanno istituito la Dichiarazione politica editoriale del Journal of Fluids Engineering sul controllo dell'accuratezza numerica che si apre con

Esiste un problema professionale nella comunità della fluidodinamica computazionale e anche nell'area più ampia della fisica computazionale. Vale a dire, sono necessari standard più elevati sul controllo dell'accuratezza numerica.

[...] Il problema non è certamente unico per il JFE ed è stato messo a fuoco ancora più acutamente alla conferenza AFOSRHTTM-Stanford del 1980-81 sui flussi turbolenti complessi. È stata una conclusione del comitato di valutazione di quella conferenza che, nella maggior parte dei contributi a quella conferenza, era impossibile valutare e confrontare l'accuratezza dei diversi modelli di turbolenza, dal momento che non si potevano distinguere gli errori di modellazione fisica dagli errori numerici relativi all'algoritmo e griglia. Questo è particolarmente vero per i metodi precisi del primo ordine e i metodi ibridi.

Concludono con linee guida molto dirette:

Il Journal of Fluids Engineering non accetterà per la pubblicazione alcun documento che riporta la soluzione numerica di un problema di ingegneria dei fluidi che non affronta il compito di test sistematici di errori di troncamento e stima dell'accuratezza.

[...] dobbiamo chiarire che un singolo calcolo in una griglia fissa non sarà accettabile , poiché è impossibile dedurre una stima dell'accuratezza da tale calcolo. Inoltre, gli editori non considereranno un ragionevole accordo con i dati sperimentali una prova sufficiente dell'accuratezza, specialmente se sono coinvolti parametri regolabili, come nella modellazione della turbolenza.

La versione attuale contiene una serie completa di criteri e rappresenta uno standard che, a mio avviso, altri campi dovrebbero aspirare a corrispondere. È vergognoso che anche oggi la consapevolezza dell'importanza della verifica del modello sia assente in così tanti settori.


1
L'ultimo punto sui parametri sintonizzabili mi ricorda una citazione di John von Neumann, "Con quattro parametri posso montare un elefante e con cinque posso fargli muovere il suo baule".
Jed Brown,

Questo risolve solo l'effetto dell'errore di discretizzazione, non quello degli errori di arrotondamento, che sono quasi universalmente ignorati nelle simulazioni fluide poiché in genere contribuiscono meno all'errore totale. Ma nelle applicazioni che non comportano equazioni differenziali o integrali, non vi è alcun errore di discretizzazione. In questi problemi, gli errori di arrotondamento e gli errori di troncamento dell'iterazione sono la fonte dominante di errori.
Arnold Neumaier,

Pensi che una rigorosa stima a posteriori potrebbe sostituire il requisito di indipendenza della rete? Come detto è un po 'vago, quanto affini la griglia per garantire l'indipendenza? Un buon stimatore a posteriori, d'altra parte, non dovrebbe lasciare spazio all'ambiguità.
Reid.Atcheson,

2
@ Reid.Atcheson "Yo dawg, ho sentito che ti piacciono le stime degli errori, quindi ti ho procurato una stima degli errori per la tua stima degli errori in modo da poter stimare l'errore nel tuo ...", ma sfortunatamente, le stime pratiche dell'errore tendono a non essere rigorose limiti del caso peggiore. I limiti disponibili sono spesso pessimisti e si basano su ipotesi che non sono vere per la maggior parte dei problemi di ingegneria. Anche con lo stimatore di errore supremo, è necessario verificare che sia stato implementato correttamente. Sicuramente, se ne hai uno, usa uno stimatore di errori, ma lo stimatore di errore non è una verifica autonoma.
Jed Brown,

19

Non esistono standard di questo tipo, in quanto stime affidabili dell'errore spesso costano molto più dei calcoli approssimativi.

Fondamentalmente ci sono quattro tipi di stime degli errori:

(i) Analisi teoriche che dimostrano che un metodo numerico è numericamente stabile. Questo in realtà non fornisce una barra di errore poiché l'analisi garantisce solo che l'errore commesso non è peggiore di un errore quantificato negli argomenti di input. È sufficiente per la maggior parte dei calcoli scientifici poiché anche gli input sono solo approssimativi, quindi l'errore fatto con un metodo numericamente stabile non è peggio che aver usato un input leggermente diverso (ma sconosciuto). I metodi numerici più apprezzati sono accompagnati da un'analisi numerica stabile, sebbene non si trovi quasi nessuna implementazione che riporta su richiesta il cosiddetto errore arretrato.

(ii) Stime dell'errore asintotico. Questi presuppongono che i prodotti di tutti gli errori (errori di input, errori di arrotondamento o errori di discretizzazione siano le fonti più comuni) possano essere trascurati (discutibile se le funzioni sono molto non lineari) e utilizzano l'analisi della sensibilità per propagare gli errori di input. Insieme a un'analisi della stabilità numerica, questo può anche catturare l'effetto di errori di arrotondamento o errori di discretizzazione. Le barre di errore risultanti sono realizzabili quanto la validità delle ipotesi su cui si basano. Utilizzando strumenti di differenziazione automatica, il costo della stima dell'errore è in genere un fattore 1 o 2 in aggiunta al costo per l'approssimazione. Pertanto, questo tipo di stima dell'errore è abbastanza frequente nella pratica.

[Modifica] Ad esempio, il teorema di Oettli-Prager fornisce stime di errore all'indietro facilmente calcolabili per la soluzione di sistemi lineari. L'analisi di sensibilità dice che questi errori devono essere moltiplicati per la norma dell'inverso della matrice, che può essere stimata usando lo stimatore di Hager (integrato nei moderni stimatori del numero di condizioni).

(iii) Analisi degli errori stocastici: (CESTAC, http://www.sciencedirect.com/science/article/pii/0378475488900705) Ciò avviene sovraccaricando tutte le operazioni con una corrispondente variante stocastica che valuta tre serie di argomenti e successivamente aggiunge un errore di arrotondamento casuale artificiale. i tre risultati finali vengono utilizzati per calcolare una media e una deviazione standard della radice quadrata di (somma dei quadrati delle deviazioni dalla media divisa per 2 = 3-1). Ciò fornisce una stima della precisione abbastanza utile della parte dell'errore di arrotondamento. Ciò non tiene conto dell'errore di discretizzazione, tuttavia, che in genere è l'errore dominante nei calcoli ODE e PDE. Il costo dipende dal linguaggio di programmazione a causa del sovraccarico nell'esecuzione di operazioni sovraccariche. Supponendo (che non è quasi mai il caso) il sovraccarico non comporta penalità di tempo, il costo per il risultato più la stima dell'errore è un fattore 3 rispetto al calcolo della sola approssimazione.

(iv) Analisi degli intervalli: questo fornisce limiti rigorosi per tutte le fonti di errore se eseguiti correttamente, ma tranne in casi semplici richiede molta esperienza (o software che lo incarnano) per farlo in modo che i limiti non sopravvalutino gravemente i veri errori . Un buon software di intervallo è disponibile tra l'altro per l'algebra lineare (ad es. IntLab http://www.ti3.tu-harburg.de/rump/intlab/ ; costa un fattore di circa 6 se la dimensione è grande) e l'ottimizzazione globale (ad es. , COCONUT http://www.mat.univie.ac.at/~coconut/coconut-environment/; potrebbe essere molto più costoso o addirittura essere più economico dell'ottimizzazione globale approssimativa, a seconda delle caratteristiche del problema). Ma molte altre classi di problemi facili da trattare in modo approssimativo approssimativamente (ad esempio, racchiudendo le traiettorie dei grandi pianeti del sistema solare per 10 anni) sono completamente fuori portata per l'attuale generazione di metodi di intervallo.


Grazie. Mi piacerebbe vedere (ii) al lavoro. Puoi fare un esempio in cui gli autori combinano l'analisi della sensibilità e l'analisi della stabilità numerica per determinare le stime di errore globali.
highsciguy,

@highsciguy: vedi la mia modifica a (ii)
Arnold Neumaier il

Grazie. Matrice giacobina inversa?
highsciguy,

@highsciguy: non capisci la tua ultima domanda. L'esempio stava risolvendo un sistema lineare di equazioni, nessuna figura giacobina.
Arnold Neumaier il

1
Ho trascurato lineare. Quindi è chiaro. Ci sono tentativi di generalizzare il teorema di Oettli-Prager a sistemi non lineari?
highsciguy,

13

Una specie di. Esistono limiti teorici di errore che sono stati derivati ​​da analisti numerici che di solito sono sopravvalutati e potrebbero non essere così utili nella pratica, poiché possono comprendere informazioni che sono difficili da ottenere per problemi nella pratica. Un buon esempio potrebbe essere il limite di errori numerici nella soluzione di equazioni ordinarie, che puoi trovare nei libri di Hairer e Wanner. Il libro di Nick Higham, Accuracy and Stability of Numerical Algorithms (potrei essere leggermente fuori tema riguardo al titolo) fornisce anche alcuni limiti di errore su operazioni numeriche comuni e algoritmi di algebra lineare. La letteratura di analisi numerica è piena di tali limiti.

I metodi di analisi degli intervalli sono stati utilizzati anche per calcolare i limiti di errore; questi metodi sono rigorosi e tendono a fornire limiti di errore più forti rispetto ai limiti di errore teorici, ma questi metodi possono ancora sopravvalutare gravemente l'errore in un calcolo numerico. Questi metodi sono stati sfruttati al meglio (per quanto ne so) nell'ottimizzazione globale, ma stanno anche trovando uso nella quantificazione dell'incertezza. Arnold Neumaier ha scritto almeno un libro sui metodi di analisi degli intervalli ed è meglio qualificato per commentare questo argomento in dettaglio. Oltre ai potenziali problemi di sovrastima, i metodi di analisi degli intervalli soffrono della necessità di richiedere un'infrastruttura computazionale aggiuntiva che richiede un retrofit di pacchetti di simulazione numerica di grandi dimensioni esistenti (come PETSc, Trilinos, CLAWPACK / PyClaw, ecc. ) per includere l'aritmetica degli intervalli e la differenziazione automatica (per i metodi basati su Taylor). Da quello che ho visto, non ci sono molti pacchetti aritmetici ad intervallo autorizzato e differenziazione automatica là fuori, sebbene ce ne siano alcuni. Anche allora, a volte, queste librerie hanno funzionalità limitate; è stato difficile trovare una libreria aritmetica ad intervallo autorizzata (LGPL o simile a BSD) con funzionalità simile a BLAS.

Le stime degli errori a posteriori possono essere ottenute più facilmente, ma non sono rigorose. Conosco molto bene queste stime dal lavoro sulle equazioni differenziali ordinarie, ma esistono anche per molti metodi usati per calcolare soluzioni per equazioni differenziali parziali.

Più in generale, metodi per quantificare l'incertezza, come l'uso di espansioni polinomiali del caos, metodi Monte Carlo o altri metodi di campionamento possono essere usati per quantificare l'incertezza nei calcoli a causa delle variazioni dei parametri di input. Questi metodi dovrebbero essere in grado di fornire una sorta di "barra degli errori" euristica a causa delle variazioni dei parametri, ma non daranno limiti rigorosi.

Credo che tu abbia assolutamente ragione quando si tratta di specificare errori numerici: la scienza computazionale dovrebbe essere altrettanto rigorosa nel presentare i suoi risultati come nelle scienze fisiche basate sugli esperimenti. C'è molto lavoro da fare in questo settore (sotto i termini generali "quantificazione dell'incertezza" e "analisi numerica"), e spero che vengano incluse delle barre di errore quando si discuterà della maggior parte dei risultati computazionali ad un certo punto in futuro .


hai un buon riferimento a un articolo di sintesi su queste espansioni polinomiali del caos? Ho visto il termine spuntare regolarmente e vorrei saperne di più su di loro. Grazie.
GertVdE,

2
Dongbin Xiu generalmente scrive articoli accessibili sulle espansioni polinomiali del caos. Ecco uno dei documenti di sintesi più generali che ha scritto: dam.brown.edu/scicomp/media/report_files/BrownSC-2003-07.pdf
Geoff Oxberry

7

Oltre alle altre risposte, ci sono alcuni punti aggiuntivi da considerare.

  1. Gli errori di discretizzazione numerica, o almeno l'ordine degli schemi, possono essere determinati analiticamente. La discussione di questi errori può essere omessa dagli articoli se usano uno schema comunemente noto.
  2. Studi di affinamento della griglia in cui lo stesso problema, in genere qualcosa di semplice, viene eseguito su griglie progressivamente più fini. Questi vengono confrontati con una soluzione esatta, o la soluzione su una griglia ridicolmente fine, per trovare la norma L, in genere L2. La pendenza di questa stima dell'errore fornisce l'ordine di precisione.
  3. Nei problemi in cui sono disponibili diversi schemi numerici ma non sono disponibili perfezionamento della griglia o soluzioni esatte, un altro metodo chiamato Richardson Extrapolation darà limiti ai termini dell'errore. Una buona recensione che descrive questi metodi può essere trovata in questo documento
  4. Infine, ogni giornale stabilisce i propri standard di accettazione. Alcuni sono severi, altri no. Ad esempio, l'AIAA ha definito i suoi standard qui . Altre riviste hanno informazioni simili per gli autori.

Voglio solo commentare il punto 2. Sento che nel risolvere numericamente un problema del mondo reale, è molto più probabile vedere la norma confrontare la differenza tra due perfezionamenti successivi, piuttosto che con "una griglia ridicolmente fine". Se riesci a risolvere la griglia molto fine, perché ti preoccupi di quelli molto più grossolani?
Godric Seer,

Gli studi di affinamento della griglia non sono praticabili su problemi reali in genere. È qui che entra in gioco il punto 3, è molto più facile determinare i limiti di errore modificando l'ordine dello schema piuttosto che perfezionare progressivamente la griglia. Ad esempio, convalidiamo i nostri codici utilizzando un vortice invisibile che è ancora non lineare ma possiamo eseguire soluzioni "esatte" molto precise per verificare l'accuratezza. Ma su un combustore a turbolenza totale, non possiamo praticamente farlo, quindi usiamo schemi diversi.
tpg2114,

Si noti inoltre che perfezionare la griglia e verificare la differenza nella risposta mostra l'indipendenza della griglia, il che è una cosa diversa rispetto al controllo dei limiti di errore. Il perfezionamento della griglia è ancora necessario anche in casi pratici, sebbene il perfezionamento della griglia per qualcosa come Large Eddy Simulation apra un'altra lattina di worm.
tpg2114,

Grazie, avevo erroneamente correlato l'indipendenza della rete con limiti di errore. Immagino di aver sempre supposto che l'indipendenza della rete implicasse un livello qualitativo di garanzia sull'errore di discretizzazione.
Godric Seer,

3
L'indipendenza della griglia implica che una griglia più fine non migliorerà la risposta ma non ti dice quanto sia precisa la tua risposta o quanto la raffinazione della griglia abbia migliorato l'accuratezza.
tpg2114,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.