In der Numerik ist es sehr wichtig, instabile Schemata zu identifizieren und ihre Stabilität zu verbessern. Wie identifiziere ich instabile Gleitkommaberechnungen?
Ich arbeite an einer sehr komplexen Simulation, bei der viele numerische Schemata zusammenarbeiten, und suche nach einer Methode, um ihre Schwachstellen zu identifizieren. Ich arbeite an einem physikalischen Modell mit Differentialgleichungen. Eine Vogelperspektive des Gesamtprozesses ist:
(Preliminary Schritt) Sammle physikalischen Beobachtungen P .
Bestimmen Sie die Anfangsparameter der Simulation. Dies verwendet einen Optimierungsalgorithmus, bei dem wir in einem Parameterraum nach Parametern C suchen, sodass eine Fehlerfunktion E (F (C), P) minimiert wird, wobei F eine abgeleitete Größe der Parameter ist.
Stecken Sie C in die Simulationsmaschine. Dies ist ein Euler-Schema der EDV, sodass wir zu jedem Zeitpunkt die Terme berechnen, die die Dynamik antreiben (jede von ihnen ist eine komplexe Funktion, die möglicherweise Instabilität unterliegt), und das Euler-Schema mit diesen dynamischen Terms versorgen, um die nächste zu berechnen Zustand. Dies geht zu Tausenden von Zeitpunkten weiter.
Am Ende der Simulation berechnen wir eine Funktion Proof (S) des Endzustand S und vergleichen , um einige Mengen erforderlich (P) aus den beobachteten Mengen abgeleitet. Dies ist kein formaler Nachweis des Ergebnisses, sondern eine Plausibilitätsprüfung.
Außerdem sehe ich einen Turm komplexer Operationen (Berechnung dynamischer Terme innerhalb des Euler-Schemas, innerhalb des Beweises ). Und möchte "schlechte Teile" erkennen und beheben.
Ich spekuliere, dass die Verwendung einer Softwareimplementierung von Gleitkommazahlen mit reduzierter Genauigkeit die Instabilität numerischer Schemata vergrößern und somit den Vergleich zwischen verschiedenen Implementierungen erleichtern würde. Ist dies eine übliche Technik, um diese Frage zu untersuchen? Ist es möglich, eine virtuelle Maschine wie Bochs zu verwenden, um dies zu erreichen, ohne das Programm zu ändern?
Um die Stabilitätsfrage angemessen zu behandeln, ist es manchmal akzeptabel, auf die typischen Eingaben der numerischen Prozedur abzustimmen, so dass sie für diese Eingaben gut und für andere gültige, aber unwahrscheinliche Eingaben möglicherweise weniger gut geeignet sind. Eine Probe von typischen Eingänge gegeben, ist es möglich, schnüffeln sie einige Zwischenergebnisse und bereiten ein statistisches Profil. Ist dies eine übliche Technik, um Stabilitätsprobleme zu untersuchen? Ist eine virtuelle Maschine dafür nützlich?