La definizione di sistema ODE rigido


17

Considera un IVP per il sistema ODE , . Più comunemente questo problema è considerato rigido quando la matrice Jacobi ha entrambi autovalori con parte reale negativa molto grande e autovalori con parte reale negativa molto piccola (considero solo la stabile Astuccio).y ( x 0 ) = y 0 fy'=f(X,y)y(X0)=y0fy(X0,y0)

D'altra parte, nel caso di una sola equazione, ad esempio l'equazione di Prothero-Robinson , viene chiamato rigido quando .λ - 1y'=λy+g'+λgλ«-1

Quindi ci sono due domande:

  1. Perché piccoli autovalori sono inclusi nella definizione di rigidità per i sistemi ODE? Credo che la presenza di sole parti reali negative molto grandi sia abbastanza per far sì che il sistema sia rigido, perché questo ci fa usare piccoli timestep per metodi espliciti.

  2. Sì, so che i problemi rigidi più comuni (ad es. Derivanti da PDE parabolici) hanno autovalori sia grandi che piccoli. Quindi la seconda domanda: esiste un buon esempio naturale di grande sistema rigido senza autovalori molto piccoli (o in alternativa con un rapporto lieve )?λmax/λmin


OK, modifichiamo la domanda. Considera due sistemi ODE lineari bidimensionali: il primo con autovalori {-1000000, -0.00000001} e il secondo con {-1000000, -999999}. Quanto a me, entrambi sono rigidi. Ma se consideriamo la definizione del rapporto di rigidezza, il secondo sistema non lo è. La domanda principale: perché viene considerato del tutto il rapporto di rigidità?

E la seconda parte della domanda è ancora importante, parafrasandola: sto cercando un sistema ODE grande "naturale" con grandi autovalori negativi e un rapporto di rigidità lieve (non maggiore di, diciamo, 100).


2
Benvenuto su scicomp.se. Le tue domande hanno una risposta completa su wikipedia: en.m.wikipedia.org/wiki/Stiff_equation
David Ketcheson,

Penso che tra il commento di @DavidKetcheson e le varie fonti che ho citato, vedrai che il rapporto di rigidità è solo una linea guida. Non è perfetto; ecco perché non è nella definizione. Capita di essere una caratteristica di molti, ma non tutti, sistemi rigidi. E per quanto riguarda la seconda parte, penso che sarà difficile trovarlo a meno che non abbia una struttura speciale o si presenti in un'applicazione. Ti ho dato un esempio di tale applicazione in cui il rapporto di rigidità non è sempre grande, e ti incoraggio a guardare il libro di Hairer e Wanner.
Geoff Oxberry,

1
@ David: Non posso essere d'accordo con te. Prendiamo ad esempio il problema unidimensionale y '= - 50 (y-cos x). L '"autovalore" è -50. Non è possibile risolvere questo problema con Euler esplicito con dimensioni maggiori di 2/50. Se sostituiamo -50 con -50000 la restrizione sul timestep diventa 2/50000. Quali "unità" possiamo scegliere qui per superare questa barriera?
Faleichik,

2
@faleichik La parte del tuo esempio corregge la scala temporale del "collettore lento" (che è probabilmente la scala temporale a cui sei interessato, sebbene sia concepibile che tu sia interessato a scale temporali molto più brevi). Non credo sia possibile definire la rigidità senza scegliere una scala temporale osservativa (forse implicitamente affermando le proprietà che si desidera conservare per tempi più lunghi). Il rapporto di rigidezza quantifica solo la separazione della scala tra la scala dei tempi più veloce e quella più lenta del sistema autonomo . cosX
Jed Brown,

1
C'è una nuova, migliore risposta a questa domanda in questo documento .
David Ketcheson,

Risposte:


10

La rigidità comporta una certa separazione delle scale. In generale, se sei interessato alla fase della modalità più veloce nel sistema, devi risolverla e il sistema non è rigido. Ma spesso ti interessano le dinamiche a lungo termine di una "varietà lenta" piuttosto che la velocità precisa con cui una soluzione dalla varietà lenta si avvicina ad essa.

Le reazioni chimiche e i flussi di reazione sono esempi comuni di sistemi rigidi. L' oscillatore van der Pol è un problema di riferimento comune per gli integratori ODE che ha un parametro di rigidezza regolabile.

Un oceano è un altro esempio che può essere utile visualizzare. Gli tsunami (onde di gravità superficiale) viaggiano alla velocità di un aeroplano e producono una struttura d'onda complessa, ma si dissipano su lunghe scale temporali e sono per lo più irrilevanti per le dinamiche a lungo termine dell'oceano. I vortici, o viceversa, viaggiano circa 100 volte più lentamente a velocità abbastanza pedonali, ma causano la miscelazione e il trasporto di temperatura, salinità e traccianti biogeochimici rilevanti. Ma la stessa fisica che propaga un'onda di gravità superficiale supporta anche un vortice (una struttura di quasi equilibrio), quindi la velocità vorticosa, il percorso sotto Coriolis e la velocità di dissipazione dipendono dalla velocità dell'onda di gravità. Ciò rappresenta un'opportunità per uno schema di integrazione temporale progettato per sistemi rigidi per scavalcare la scala temporale dell'onda di gravità e risolvere solo le scale temporali dinamiche pertinenti. VedereMousseau, Knoll e Reisner (2002) per la discussione di questo problema con un confronto tra schemi di integrazione temporale a tempo pieno e impliciti.

Correlati: quando si dovrebbero usare metodi impliciti nell'integrazione di PDE iperbolici?

Si noti che i processi diffusivi sono generalmente considerati rigidi perché la scala temporale più veloce nel sistema discreto dipende dalla mesh, ridimensionando con , ma la scala temporale della fisica pertinente è indipendente dalla mesh. In effetti, le scale temporali più veloci per una data mesh rappresentano il rilassamento spaziale locale per la varietà più lenta su cui si evolvono le scale spaziali più lunghe, quindi i metodi impliciti possono essere molto precisi anche nelle norme forti nonostante non risolvano le scale più veloci.(ΔX)2


10

Parte 1

Piccoli autovalori non sono inclusi nella definizione di rigidità per i sistemi ODE (problema del valore iniziale). Non esiste una definizione soddisfacente di rigidità che io conosca, ma le migliori definizioni che ho incontrato sono:

Se un metodo numerico con una regione finita di assoluta stabilità, applicato a un sistema con qualsiasi condizione iniziale, è costretto a usare in un certo intervallo di integrazione una lunghezza del gradino eccessivamente piccola rispetto alla scorrevolezza della soluzione esatta in quell'intervallo , quindi si dice che il sistema è rigido in quell'intervallo. (Lambert, JD (1992), Metodi numerici per i sistemi differenziali ordinari , New York: Wiley.)

Un IVP [problema del valore iniziale] è rigido in qualche intervallo se la dimensione del gradino necessaria per mantenere la stabilità del metodo Euler in avanti è molto più piccola della dimensione del gradino richiesta per rappresentare accuratamente la soluzione. (Ascher, UM e Petzold, LP (1998), Metodi informatici per equazioni differenziali ordinarie ed equazioni algebriche differenziali , Filadelfia: SIAM.)[0,B]

Le equazioni rigide sono equazioni in cui alcuni metodi impliciti, in particolare BDF, funzionano meglio, di solito tremendamente meglio di quelli espliciti. (CF Curtiss & JO Hirschfelder (1952): integrazione di equazioni rigide. PNAS, vol. 38, pagg. 235-243)

L'articolo di Wikipedia sulle equazioni rigide continua attribuendo le seguenti "affermazioni" a Lambert:

  1. Un sistema a coefficienti costanti lineari è rigido se tutti i suoi autovalori hanno una parte reale negativa e il rapporto di rigidità è grande.

  2. La rigidità si verifica quando i requisiti di stabilità, anziché quelli di precisione, limitano la lunghezza del passo. [Si noti che questa "osservazione" è essenzialmente la definizione di Ascher e Petzold.]

  3. La rigidità si verifica quando alcuni componenti della soluzione decadono molto più rapidamente di altri.

Ognuna di queste osservazioni ha controesempi (sebbene sia vero che non potrei produrne uno dalla cima della mia testa).

Parte 2

Probabilmente il miglior esempio che potrei trovare sarebbe quello di integrare qualsiasi tipo di grande sistema di reazione alla combustione nella cinetica chimica in condizioni che provocano l'accensione. Il sistema di equazioni sarà rigido fino all'accensione, quindi non sarà più rigido perché il sistema ha superato un transitorio iniziale. Il rapporto tra autovalore più grande e più piccolo non dovrebbe essere elevato se non attorno all'evento di accensione, sebbene tali sistemi tendano a confondere integratori rigidi a meno che non si impostino tolleranze di integrazione eccessivamente rigide.

Il libro di Hairer e Wanner fornisce anche molti altri esempi nella sua prima sezione (Parte IV, sezione 1) che illustrano molti altri esempi di equazioni rigide. (Wanner, G., Hairer, E., Risoluzione delle equazioni differenziali ordinarie II: Problemi rigidi e algebrici differenziali (2002), Springer.)

Infine, vale la pena sottolineare l'osservazione di CW Gear:

Sebbene sia comune parlare di "equazioni differenziali rigide", un'equazione di per sé non è rigida, un particolare problema di valore iniziale per tale equazione può essere rigido, in alcune regioni, ma le dimensioni di queste regioni dipendono dai valori iniziali e dal valore tolleranza d'errore. (CW Gear (1982): Rilevazione e trattamento automatici di equazioni differenziali ordinarie oscillatorie e / o rigide. In: Integrazione numerica di equazioni differenziali, Appunti delle lezioni in matematica., Vol. 968, pagg. 190-206.)


Caro Geoff, grazie per la tolleranza :-) Volevo mantenere la mia domanda semplice, ma alla fine mi è venuto in mente di essere inesperto. In realtà conosco tutte queste definizioni, ma.
Faleichik,

1. Piccoli autovalori agiscono implicitamente nella definizione del rapporto di rigidità: è grande quando il demoninatore è piccolo. 2. Nel caso lineare unidimensionale il rapporto di rigidezza è sempre uno, anche per le equazioni rigide. 3. Hai qualche riferimento per il problema di cinetica chimica che hai suggerito? E 4. Proverò a chiarire la domanda nei commenti.
Faleichik,

2
Puoi trovare i meccanismi chimici nel formato CHEMKIN qui . I problemi sono abbastanza grandi da rendere necessari i file di input e le equazioni vengono impostate automaticamente usando un pacchetto di chimica. Suggerisco di usare i file di input insieme al pacchetto di chimica Cantera e alla suite di solutori ODE / DAE SUNDIALS , entrambi open source. È quindi possibile risolvere tali problemi in C ++ o MATLAB.
Geoff Oxberry,

Personalmente prendo la frase di Curtiss-Hirschfelder come mia definizione operativa di rigidità; se RK esplicito o Adams impiegano troppo tempo per risolvere il problema, è probabile che sia rigido.
JM,

2

In effetti Jed Brown ha chiarito la domanda per me. Quello che sto facendo ora è solo mettere le sue parole nel contesto.

  1. Entrambi i sistemi ODE lineari 2d dall'alto sono rigidi (cioè difficili da risolvere con metodi espliciti) su intervalli di tempo relativamente grandi (ad es. [0,1]).

  2. I sistemi lineari con un elevato rapporto di rigidità possono essere considerati "più rigidi" perché molto probabilmente è necessario integrarli su un ampio intervallo di tempo. Ciò è dovuto ai componenti lenti corrispondenti agli autovalori più piccoli: la soluzione tende lentamente allo stato stazionario e questo stato stazionario è di solito importante da raggiungere.

  3. D'altra parte, l'integrazione di sistemi con un piccolo rapporto di rigidità su grandi intervalli non è interessante: in questo caso lo stato stazionario viene raggiunto molto velocemente e possiamo solo estrapolarlo.

Grazie a tutti per questa discussione!


1

La magnitudine assoluta degli autovalori (in un problema lineare e autonomo) da sola non ha alcun significato; è un artefatto delle unità in cui scegli di esprimere il problema.

La catena di commenti sta andando fuori controllo, quindi sto facendo di questo una risposta. Non ho intenzione di rispondere all'intera domanda; come ho detto, vedi Wikipedia o le altre risposte qui. Sto solo rispondendo a quel che dice

Considera due sistemi ODE lineari bidimensionali: il primo con autovalori {-1000000, -0.00000001} e il secondo con {-1000000, -999999}. Quanto a me, entrambi sono rigidi. Ma se consideriamo la definizione del rapporto di rigidezza, il secondo sistema non lo è. La domanda principale: perché viene considerato del tutto il rapporto di rigidità?

Ok, consideriamo un esempio del secondo caso:

y1'(t)=-1000000y1(t)
y2'(t)=-999999y2(t)

t*=1000000t

y1'(t*)=-y1(t*)
y2'(t*)=-0.999999y2(t*)

Nota 1: ho scelto un sistema diagonale per renderlo del tutto ovvio, ma se lo provi con un altro sistema con quegli autovalori, vedrai lo stesso effetto, poiché moltiplicare una matrice per una costante moltiplica i suoi autovalori per la stessa costante.

|λ|»1


David, non hai considerato l'intervallo di integrazione. Lascia che sia [0,1] nel primo caso. Supponendo esplicite limitazioni di stabilità di Eulero, il passo massimo consentito è di 2/1000000. Quindi dobbiamo fare almeno 500000 passi. Quando si ridimensiona il tempo, la dimensione massima dei passaggi aumenta a 2, ma l'intero intervallo di integrazione diventa 1 000 000 e eseguiamo nuovamente il minimo di 500 000 passaggi.
Faleichik,

@faleichik Sì, ora ce l'hai. La rigidità non ha a che fare con l'entità assoluta degli autovalori, ma con la loro dimensione relativa alla scala temporale di interesse, come notato sopra da Jed.
David Ketcheson,
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.