Metodo ODE ottimale per un numero fisso di valutazioni RHS


14

In pratica, l'autonomia di risolvere numericamente un IVP

X˙(t)=f(t,X(t)) per t[t0,t1]
X(t0)=X0
è spesso dominato dalla durata della valutazione del lato destro (RHS). Supponiamo quindi che tutte le altre operazioni siano istantanee (cioè senza costi di calcolo). Se il tempo di esecuzione complessivo per risolvere l'IVP è limitato, ciò equivale a limitare il numero di valutazioni diad alcuni.f N NffNN

Siamo interessati solo al valore finale X(t1) .

Sto cercando risultati teorici e pratici che mi aiutino a scegliere il miglior metodo ODE in tale contesto.

Se, ad esempio, allora potremmo risolvere l'IVP usando due passi espliciti di Eulero di larghezza ( t 1 - t 0 ) / 2 o un passo di larghezza t 1 - t 0 usando il metodo del punto medio. Non mi è subito chiaro quale sia preferibile. Per N più grandi , si può ovviamente pensare anche a metodi multi-step, schemi iterati di Runge-Kutta, ecc.N=2(t1-t0)/2t1-t0N

Quello che sto cercando sono risultati simili a quelli che esistono, ad esempio, per le regole di quadratura: possiamo scegliere pesi { w i } e punti associati { x i } in modo tale che la regola di quadratura n i = 1 w i g ( x i ) è esatto per tutti i polinomi g tale che d e g ( g ) 2 n - 1 .n{wio}{Xio}Σio=1nwiog(Xio)gdeg(g)2n-1

Quindi sto cercando limiti superiori o inferiori sull'accuratezza globale dei metodi ODE, dato un numero limitato di valutazioni consentite dell'RHS . Va bene se i limiti valgono solo per alcune classi di RHS o pongono ulteriori vincoli sulla soluzione x (proprio come il risultato per la regola di quadratura che vale solo per i polinomi fino a un certo grado).fX

MODIFICA: Alcune informazioni di base: si tratta di applicazioni in tempo reale difficili, ovvero il risultato deve essere disponibile prima di una scadenza nota. Da qui il limite al numero di valutazioni RHS N come fattore di costo dominante. In genere i nostri problemi sono rigidi e relativamente piccoli.X(t1)N

EDIT2: Sfortunatamente non ho i requisiti di temporizzazione precisi, ma è lecito ritenere che sarà piuttosto piccolo (sicuramente <100, probabilmente più vicino a 10). Dato il requisito in tempo reale, dobbiamo trovare un compromesso tra l'accuratezza dei modelli (con modelli migliori che portano a tempi di esecuzione più lunghi dell'RHS e quindi a una N inferiore ) e l'accuratezza del metodo ODE (con metodi migliori che richiedono un livello superiore valori di N ).NNN


La consueta corrispondenza dei metodi a passo fisso di Runge-Kutta con i metodi di Newton-Cotes si applica al caso del metodo RK applicato all'IVP ; ad esempio, applicare il classico metodo del quarto ordine a quell'IVP equivale a eseguire la regola di Simpson su f ( x ) . y'=f(X)f(X)
JM,

@JM: ne sono consapevole. Intendevo usare le regole di quadratura come esempio per caratterizzare l'accuratezza di un metodo numerico per un certo insieme di input quando il numero di valutazioni delle funzioni è limitato. A parte questo, sono interessato a "veri" ODE, ovvero quelli che non si riducono all'integrazione standard.
Florian Brucker,

1
Questo sta diventando più interessante. Ora il numero da solo non significa nulla. Ciò che potrebbe essere utile è conoscere λ N / T , dove T è la lunghezza dell'intervallo di integrazione e λ è la costante di Lipschitz di f rispetto a x . Questo ci dirà quanto sia grave il problema. Supponendo che sia rigido, un probabile candidato è il metodo BDF del 2 ° ordine. NλN/TTλfX
David Ketcheson,

@DavidKetcheson: sono più interessato all'approccio generale per la scelta di un metodo adatto per un determinato problema piuttosto che al metodo ottimale per un problema specifico. Abbiamo un numero maggiore di modelli che variano notevolmente in termini di rigidità e requisiti di tempistica.
Florian Brucker,

Dici che è molto costoso da valutare. Sai calcolare un giacobino? Che dire di qualche approssimazione che può correggere la rigidità principale? Non sei in buona forma se il tuo problema è molto rigido e non hai modo di correggerlo. f
Jed Brown,

Risposte:


7

Penso che un riferimento chiave per rispondere alla tua domanda sia questo articolo di Hosea e Shampine . Ora fornirò alcuni retroscena.

In generale, la dimensione del gradino che è possibile utilizzare durante l'integrazione numerica di un IVP può essere limitata da stabilità o precisione. Se si desidera scegliere il miglior risolutore in termini di stabilità, è necessario considerare la regione di stabilità assoluta . Per un metodo one-step questo è

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

Qui è la funzione di stabilità del metodo; vedere ad esempio il testo di Hairer et. al. Una condizione necessaria per la stabilità è che λ h S dove λ varia sopra gli autovalori del jacobiano di f e h è la dimensione del gradino. Questa non è sempre una condizione sufficiente per problemi non lineari, ma di solito è una buona regola empirica e viene utilizzata nella pratica.P(z)λhSλfh

Per un ampio trattamento del problema di trovare metodi (espliciti) che consentano passi di grandi dimensioni stabili, vedere questo mio documento sui polinomi di stabilità e questo sull'ottimizzazione dei metodi di Runge-Kutta per simulazioni di fluidi comprimibili .

La stabilità è la preoccupazione rilevante se scopri che la dimensione del gradino più grande stabile ti dà già sufficiente precisione. D'altra parte, la dimensione del gradino potrebbe invece essere limitata dai requisiti di precisione. Ciò che viene in genere eseguito è il controllo degli errori locali. La soluzione viene calcolata utilizzando due metodi e la loro differenza viene utilizzata come stima dell'errore in quella meno accurata. La dimensione del gradino viene scelta in modo adattivo per raggiungere il più vicino possibile la tolleranza prescritta.

Due misure teoriche sono fondamentali per prevedere l'efficienza dell'accuratezza. Il primo è l' ordine di accuratezza del metodo, che descrive la velocità con cui l'errore si avvicina allo zero quando si riduce la dimensione del passo. Il secondo è l' indice di efficienza dell'accuratezza (vedi il documento di Osea e Shampine collegati nella prima frase sopra) che tiene conto delle costanti che compaiono nei termini di errore e consente il confronto tra metodi dello stesso ordine.

Precisione ed efficienza di stabilità di una vasta gamma di metodi possono essere calcolati in modo semplice e automatizzato usando NodePy (disclaimer: NodePy è sviluppato da me).


Grazie. Il documento di Hosea e Shampine è davvero molto interessante. Conosci risultati simili per problemi rigidi? Sono consapevole che di solito si usano metodi impliciti per quelli, ma questi non hanno alcun limite a priori al numero di valutazioni RHS, quindi sono di scarsa utilità nel mio caso.
Florian Brucker,

Non conosco nulla di simile per problemi rigidi, ma sospetto che qualcosa esista. Come dici tu, la domanda è più sottile quando si usano metodi impliciti. Un approccio potrebbe essere quello di utilizzare i metodi Rosenbrock, che gestiscono bene i problemi rigidi ma hanno un numero fisso di valutazioni RHS.
David Ketcheson,

6

Non ci sono molti risultati in questa direzione perché è più difficile che fissare semplicemente l'accuratezza, poiché le considerazioni sulla stabilità possono spesso richiedere di scegliere intervalli di tempo più piccoli del necessario per l'accuratezza desiderata. Quindi i risultati sono divisi tra i casi rigidi e non rigidi. Nel primo caso i requisiti delle fasi temporali e delle valutazioni RHS non sono generalmente regolati dalla precisione e nel secondo caso lo sono.

Mi concentrerò su metodi espliciti, dal momento che il caso implicito è molto meno ovvio di quante valutazioni RHS dovrete usare .. ciò dipende interamente da come decidete di risolvere il sistema risultante.

Per sistemi non rigidi:

Esistono limiti di fase per i metodi espliciti di Runge-Kutta per i quali si dice quante fasi (valutazioni RHS) sono necessarie per raggiungere un certo ordine di accuratezza. Dopo il quarto ordine il numero di stadi supera l'ordine di precisione e la disparità continua a crescere. Il grande libro ODE di Butcher: http://books.google.com/books/about/Numerical_Methods_for_Ordinary_Different.html?id=opd2NkBmMxsC

fa un buon lavoro spiegando alcune di queste prove di "non esistenza".

Il tuo esempio di regola di quadratura porta a un metodo di tipo a più fasi come Adams-bashforth, o a quelli che ora sono chiamati metodi di correzione differita spettrale. Per adams-bashforth hai bisogno solo di una valutazione RHS per fase, ma poiché le regioni di stabilità sono così piccole in generale per questi metodi, in genere finisci per fare la stessa quantità di lavoro in termini di valutazioni RHS di un metodo Runge-Kutta con lo stesso ordine.

Ecco un documento sulla correzione differita spettrale:

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

Non sono sicuro di come questi metodi di integrazione si comportino con metodi espliciti standard, spesso richiedono molta più memoria per salvare gli stati della soluzione in nodi di quadratura e quindi non li ho mai usati da solo.

Per sistemi rigidi:

ci sono time stepper "ottimizzati", ma i risultati teorici precisi su quanto possano essere buoni sono purtroppo limitati ad alcuni casi semplici (e anche quelli si sono rivelati un lavoro banale). I tre risultati standard indicano che per i metodi Runge-Kutta con stadi : l'asse reale più negativo che può includere nella sua regione di stabilità è un intervallo di lunghezza 2 S 2 , l'asse più immaginario che può contenere è un intervallo di lunghezza S - 1 , e il cerchio più grande tangente all'asse immaginario che può contenere ha raggio S (anche tutti questi si escludono a vicenda).S2S2S1S


2
Può succedere che l'uso di un metodo a passi variabili (o anche di ordine variabile) sia più efficiente che attenersi ostinatamente a un metodo a passi fissi. Ad esempio, si potrebbe prendere in considerazione l'uso di un metodo estrapolativo come Bulirsch-Stoer: fare alcune valutazioni in alcuni passaggi e quindi costruire (apparentemente) stime più accurate dai risultati di tali passaggi.
JM,

Vero. È un dato di fatto che molti dei metodi ottimali sono in qualche modo equivalenti a una versione a step variabile di un altro time stepper. Runge-Kutta-Chebshev per esempio può essere visto come Eulero in avanti applicato con i passi temporali variabili che sono punti di Chebyshev.
Reid.Atcheson,

@JM: esattamente. Ma c'è un modo per giudicare l'accuratezza di questi approcci rispetto al numero di valutazioni RHS, a parte gli esperimenti numerici (che sarebbero molto coinvolti, dato l'elevato numero di possibili approcci)?
Florian Brucker,

@Florian, non in generale. Hai sentito delle equazioni di Lorenz, presumo?
JM

1
@JM: Sì :) Ecco perché ho citato l'esempio di quadratura, in cui l'accuratezza viene misurata rispetto a un sottoinsieme (polinomi) dello spazio problema originale. Sarei felice di risultati che funzionano solo per un certo sottoinsieme di problemi.
Florian Brucker,

3

1014f(x)

Ci sono ovviamente delle eccezioni (sistemi molto grandi, sistemi molto rigidi) ma un sentimento comune nella comunità è che la questione della progettazione di solutori ODE per sistemi "standard" è risolta. Di conseguenza, penso che la domanda che poni non sia molto interessante: si rivolge a un componente del design del risolutore ODE che non ha più importanza. Questo può anche spiegare la mancanza di letteratura sull'argomento.


+1. Ogni volta che qualcuno chiede efficienti risolutori ODE, presumo solo che siano interessati a enormi sistemi di ODE provenienti da semi-discretizzazioni PDE o grandi problemi di n-body.
David Ketcheson,

Potete per favore spiegare come ciò si collega alla mia domanda? Non vedo la connessione, dal momento che sono interessato al caso in cui la valutazione f(x)non è gratuita ma piuttosto così costosa che il numero di valutazioni è limitato.
Florian Brucker,

@DavidKetcheson: questo non è il caso qui. È piuttosto che abbiamo requisiti di temporizzazione molto rigidi (hard real-time) su hardware debole (dispositivi integrati). I sistemi ODE stessi sono relativamente piccoli.
Florian Brucker,

NNNN

NNN<1000

1

O(dim3)O(dim2)

Quindi il primo punto è assicurarsi che il tuo RHS sia davvero più costoso dell'algebra lineare sottostante.

Il secondo punto: è noto dalla letteratura che i risolutori basati su metodi "costosi" (ovvero metodi RK espliciti) a volte eseguono più velocemente di quelli "più economici" (metodi multistep espliciti).

Riassumendo, penso che non si debba considerare solo il conteggio delle valutazioni RHS.


N
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.