Die Definition eines steifen ODE-Systems

17

Betrachten Sie ein IVP für das ODE-System , y ( x 0 ) = y 0 . Am häufigsten wird dieses Problem als steif angesehen, wenn die Jacobi-Matrix f isty=f(x,y)y(x0)=y0hatsowohlEigenwerte mit sehr großem negativen Realteil als auch Eigenwerte mit sehr kleinem negativen Realteil (ich betrachte nur den stabilen Fall).fy(x0,y0)

Auf der anderen Seite, im Fall von nur einer Gleichung, beispielsweise Prothero-Robinson Gleichung ist steif aufgerufen , wenn λ « - 1 .y=λy+g+λgλ1

Es gibt also zwei Fragen:

  1. Warum sind kleine Eigenwerte in der Definition der Steifigkeit für ODE-Systeme enthalten? Ich glaube, dass das Vorhandensein nur sehr großer negativer Realteile ausreicht, um das System zu versteifen, da wir dadurch kleine Zeitschritte für explizite Methoden verwenden.

  2. λmax/λmin


OK, ändern wir die Frage. Betrachten Sie zwei zweidimensionale lineare ODE-Systeme: erstens mit den Eigenwerten {-1000000, -0.00000001} und zweitens mit {-1000000, -999999}. Was mich betrifft, sind beide steif. Wenn wir jedoch die Definition des Steifigkeitsverhältnisses berücksichtigen, ist dies beim zweiten System nicht der Fall. Die Hauptfrage: Warum wird das Steifigkeitsverhältnis überhaupt berücksichtigt?

Und der zweite Teil der Frage ist immer noch wichtig, lassen Sie es uns umschreiben: Ich suche ein "natürliches" großes ODE-System mit großen negativen Eigenwerten und einem milden Steifigkeitsverhältnis (nicht größer als beispielsweise 100).

Faleichik
quelle
2
Willkommen bei scicomp.se. Ihre Fragen werden auf Wikipedia gründlich beantwortet: en.m.wikipedia.org/wiki/Stiff_equation
David Ketcheson
Ich denke, zwischen dem Kommentar von @DavidKetcheson und den verschiedenen Quellen, die ich zitierte, werden Sie sehen, dass das Steifigkeitsverhältnis nur eine Richtlinie ist. Es ist nicht perfekt; Deshalb ist es nicht in der Definition. Es ist ein Merkmal vieler, aber nicht aller steifer Systeme. Und für den zweiten Teil, denke ich, werden Sie es schwer finden, es sei denn, es hat eine spezielle Struktur oder entsteht in einer Anwendung. Ich habe Ihnen ein Beispiel für eine solche Anwendung gegeben, bei der das Steifigkeitsverhältnis nicht immer groß ist, und ich empfehle Ihnen, sich das Buch von Hairer und Wanner anzusehen.
Geoff Oxberry
1
@ David: Ich kann dir nicht zustimmen. Nehmen wir zum Beispiel das eindimensionale Problem y '= - 50 (y-cos x). Der "Eigenwert" ist -50. Man kann dieses Problem nicht mit explizitem Euler mit Schrittweiten größer als 2/50 lösen. Wenn wir -50 durch -50000 ersetzen, wird die Beschränkung des Zeitschritts 2/50000. Welche "Einheiten" können wir hier wählen, um diese Barriere zu überwinden?
Faleichik
2
@faleichik Der Teil Ihres Beispiels legt die Zeitskala der "langsamen Mannigfaltigkeit" fest (die wahrscheinlich die Zeitskala ist, an der Sie interessiert sind, obwohl es denkbar ist, dass Sie an viel kürzeren Zeitskalen interessiert sind). Ich glaube nicht, dass es möglich ist, Steifheit zu definieren, ohne eine Beobachtungszeitskala zu wählen (möglicherweise implizit, indem Eigenschaften angegeben werden, die Sie über längere Zeiträume beibehalten möchten). Das Steifigkeitsverhältnis quantifiziert nur die Skalentrennung zwischen der schnellsten und der langsamsten Zeitskala des autonomen Systems. cosx
Jed Brown
1
Auf diese Frage gibt es in diesem Artikel eine neue, bessere Antwort .
David Ketcheson

Antworten:

10

Bei der Steifheit sind die Schuppen etwas voneinander getrennt. Wenn Sie an der Phase des schnellsten Modus im System interessiert sind, müssen Sie diese im Allgemeinen beheben, und das System ist nicht steif. Aber Sie interessieren sich häufig eher für die Langzeitdynamik einer "langsamen Mannigfaltigkeit" als für die genaue Geschwindigkeit, mit der sich eine Lösung von der langsamen Mannigfaltigkeit nähert.

Chemische Reaktionen und Reaktionsabläufe sind gängige Beispiele für steife Systeme. Der Van-der-Pol-Oszillator ist ein häufig auftretendes Benchmark-Problem für ODE-Integratoren, das einen einstellbaren Steifheitsparameter aufweist.

Ein Ozean ist ein weiteres Beispiel, das vielleicht hilfreich ist, um es sich vorzustellen. Tsunamis (Oberflächengravitationswellen) bewegen sich mit der Geschwindigkeit eines Flugzeugs und erzeugen eine komplexe Wellenstruktur, die sich jedoch über lange Zeiträume auflösen und für die langfristige Dynamik des Ozeans zumeist unerheblich sind. Wirbel oder die andere Seite bewegen sich ungefähr 100-mal langsamer bei ziemlich hohen Geschwindigkeiten, verursachen jedoch relevante Misch- und Transporttemperaturen, Salzgehalte und biogeochemische Tracer. Dieselbe Physik, die eine Oberflächenschwerkraftwelle ausbreitet, unterstützt auch einen Wirbel (eine Quasi-Gleichgewichtsstruktur), sodass Wirbelgeschwindigkeit, Pfad unter Coriolis und Dissipationsrate von der Geschwindigkeit der Schwerkraftwelle abhängen. Dies bietet die Möglichkeit für ein Zeitintegrationsschema, das für steife Systeme entwickelt wurde, um die Zeitskala der Gravitationswelle zu überschreiten und nur die relevanten dynamischen Zeitskalen aufzulösen. SehenMousseau, Knoll und Reisner (2002) diskutierten dieses Problem anhand eines Vergleichs von Aufteilungs- und vollständig impliziten Zeitintegrationsschemata.

Verwandte: Wann sollten implizite Methoden bei der Integration von hyperbolischen PDEs verwendet werden?

Beachten Sie, dass diffusive Prozesse normalerweise als steif angesehen werden, da die schnellste Zeitskala im diskreten System netzabhängig ist und mit skaliert , die Zeitskala der relevanten Physik jedoch netzunabhängig ist. Tatsächlich stellen die schnellsten Zeitskalen für ein gegebenes Netz eine räumlich lokale Relaxation gegenüber der langsameren Mannigfaltigkeit dar, auf der sich längere räumliche Skalen entwickeln, sodass implizite Methoden selbst in strengen Normen sehr genau sein können, obwohl die schnellsten Skalen nicht aufgelöst werden.(Δx)2

Jed Brown
quelle
10

Teil 1

Kleine Eigenwerte sind nicht in der Definition der Steifigkeit für ODE (AWP) Systeme enthalten. Es gibt keine zufriedenstellende Definition von Steifheit, die ich kenne, aber die besten Definitionen, auf die ich gestoßen bin, sind:

Wenn eine numerische Methode mit einem endlichen Bereich absoluter Stabilität, die auf ein System mit Anfangsbedingungen angewendet wird, gezwungen ist, in einem bestimmten Integrationsintervall eine Schrittlänge zu verwenden, die im Verhältnis zur Glätte der exakten Lösung in diesem Intervall zu klein ist Dann soll das System in diesem Intervall steif sein. (Lambert, JD (1992), Numerical Methods for Ordinary Differential Systems , New York: Wiley.)

[0,b]

Steife Gleichungen sind Gleichungen, bei denen bestimmte implizite Methoden, insbesondere BDF, eine bessere, in der Regel erheblich bessere Leistung erbringen als explizite. (CF Curtiss & JO Hirschfelder (1952): Integration steifer Gleichungen. PNAS, Bd. 38, S. 235-243)

Der Wikipedia-Artikel über steife Gleichungen schreibt Lambert die folgenden "Aussagen" zu:

  1. Ein lineares Konstantkoeffizientensystem ist steif, wenn alle seine Eigenwerte einen negativen Realteil haben und das Steifigkeitsverhältnis groß ist.

  2. Steifheit tritt auf, wenn Stabilitätsanforderungen anstelle von Genauigkeitsanforderungen die Schrittlänge einschränken. [Beachten Sie, dass diese "Beobachtung" im Wesentlichen die Definition von Ascher und Petzold ist.]

  3. Steifheit tritt auf, wenn einige Komponenten der Lösung viel schneller zerfallen als andere.

Jede dieser Beobachtungen hat Gegenbeispiele (obwohl ich zugegebenermaßen kein Gegenbeispiel auf den Kopf stellen konnte).

Teil 2

Das wahrscheinlich beste Beispiel, das ich finden könnte, wäre die Integration eines großen Verbrennungsreaktionssystems in die chemische Kinetik unter Bedingungen, die zur Zündung führen. Das Gleichungssystem ist bis zur Zündung steif und dann nicht mehr steif, da das System einen anfänglichen Übergang durchlaufen hat. Das Verhältnis von größtem zu kleinstem Eigenwert sollte mit Ausnahme des Zündereignisses nicht groß sein, obwohl solche Systeme dazu neigen, steife Integratoren zu verwirren, es sei denn, Sie legen äußerst strenge Integrationstoleranzen fest.

Das Buch von Hairer und Wanner enthält im ersten Abschnitt (Teil IV, Abschnitt 1) ​​noch einige andere Beispiele, die viele andere Beispiele für steife Gleichungen veranschaulichen. (Wanner, G., Hairer, E., Lösung gewöhnlicher Differentialgleichungen II: Steife und Differential-Algebraische Probleme (2002), Springer.)

Abschließend sei auf die Beobachtung von CW Gear hingewiesen:

Obwohl es üblich ist, von "steifen Differentialgleichungen" zu sprechen, ist eine Gleichung an sich nicht steif, ein spezielles Anfangswertproblem für diese Gleichung kann in einigen Regionen steif sein, aber die Größen dieser Regionen hängen von den Anfangswerten und den Werten ab Fehlertoleranz. (CW Gear (1982): Automatische Erkennung und Behandlung von oszillatorischen und / oder steifen gewöhnlichen Differentialgleichungen. In: Numerische Integration von Differentialgleichungen, Lecture Notes in Math., Vol. 968, S. 190-206.)

Geoff Oxberry
quelle
Lieber Geoff, danke für die Toleranz :-) Ich wollte meine Frage einfach halten, kam aber irgendwann als unerfahren heraus. Tatsächlich kenne ich alle diese Definitionen, aber.
Faleichik
1. Kleine Eigenwerte wirken implizit in der Definition des Steifigkeitsverhältnisses: Es ist groß, wenn der Demoninator klein ist. 2. Für eindimensionale lineare Fälle ist das Steifigkeitsverhältnis immer eins, auch für steife Gleichungen. 3. Haben Sie eine Referenz für das von Ihnen vorgeschlagene Problem der chemischen Kinetik? Und 4. Ich werde versuchen, die Frage in den Kommentaren zu klären.
Faleichik
2
Sie können chemische Mechanismen in CHEMKIN Format finden Sie hier . Die Probleme sind groß genug, dass Eingabedateien erforderlich sind, und die Gleichungen werden mithilfe eines Chemiepakets automatisch erstellt. Ich schlage vor, die Eingabedateien in Verbindung mit dem Chemiepaket Cantera und der ODE / DAE- Lösungssuite SUNDIALS zu verwenden , die beide Open Source sind. Sie können solche Probleme dann in C ++ oder MATLAB lösen.
Geoff Oxberry
Ich persönlich nehme den Curtiss-Hirschfelder-Satz als meine Arbeitsdefinition von Steifheit; Wenn explizite RK oder Adams zu lange brauchen, um Ihr Problem zu lösen, ist es wahrscheinlich steif.
JM
2

Tatsächlich hat Jed Brown die Frage für mich geklärt. Was ich jetzt mache, ist nur seine Worte in den Kontext zu stellen.

  1. Beide linearen 2D-ODE-Systeme von oben sind in relativ großen Zeitintervallen (z. B. [0,1]) steif (dh mit expliziten Methoden schwer zu lösen).

  2. Die linearen Systeme mit großem Steifigkeitsverhältnis können als "steifer" angesehen werden, da sie höchstwahrscheinlich in einem großen Zeitintervall integriert werden müssen. Dies ist auf langsame Komponenten zurückzuführen, die den kleinsten Eigenwerten entsprechen: Die Lösung tendiert langsam zum stationären Zustand, und es ist normalerweise wichtig, diesen stationären Zustand zu erreichen.

  3. Andererseits ist die Integration von Systemen mit kleinem Steifigkeitsverhältnis in großen Intervallen nicht von Interesse: In diesem Fall wird der stationäre Zustand sehr schnell erreicht und wir können ihn einfach extrapolieren.

Vielen Dank an alle für dieses Gespräch!

Faleichik
quelle
1

Die absolute Größe der Eigenwerte (in einem linearen, autonomen Problem) allein hat überhaupt keine Bedeutung; Es ist ein Artefakt der Einheiten, in denen Sie das Problem ausdrücken möchten.

Die Kommentarkette gerät außer Kontrolle, daher mache ich dies zu einer Antwort. Ich werde die ganze Frage nicht beantworten. Wie gesagt, siehe Wikipedia oder die anderen Antworten hier. Ich beantworte nur das, was sagt

Betrachten Sie zwei zweidimensionale lineare ODE-Systeme: erstens mit den Eigenwerten {-1000000, -0.00000001} und zweitens mit {-1000000, -999999}. Was mich betrifft, sind beide steif. Wenn wir jedoch die Definition des Steifigkeitsverhältnisses berücksichtigen, ist dies beim zweiten System nicht der Fall. Die Hauptfrage: Warum wird das Steifigkeitsverhältnis überhaupt berücksichtigt?

Okay, lassen Sie uns ein Beispiel für den zweiten Fall betrachten:

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

t=1000000t

y1(t)=y1(t)
y2(t)=0.999999y2(t)

Anmerkung 1: Ich habe ein diagonales System gewählt, um es völlig offensichtlich zu machen. Wenn Sie es jedoch mit einem anderen System mit diesen Eigenwerten versuchen, werden Sie den gleichen Effekt feststellen, da das Multiplizieren einer Matrix mit einer Konstanten deren Eigenwerte mit derselben Konstante multipliziert.

|λ|1

David Ketcheson
quelle
David, Sie haben das Integrationsintervall nicht berücksichtigt. Sei es im ersten Fall [0,1]. Unter der Annahme expliziter Stabilitätsbeschränkungen von Euler beträgt der maximal zulässige Schritt 2/1000000. Wir müssen also mindestens 500 000 Schritte machen. Wenn Sie die Zeit skalieren, erhöht sich die maximale Schrittweite auf 2, aber das gesamte Integrationsintervall wird zu 1 000 000, und wir treffen erneut das Minimum von 500 000 Schritten.
Faleichik
@faleichik Ja, jetzt hast du es. Die Steifheit hat nicht mit der absoluten Größe der Eigenwerte zu tun, sondern mit ihrer Größe im Verhältnis zu Ihrer interessierenden Zeitskala, wie Jed oben bemerkt hat.
David Ketcheson