2009-03-08 5 views
7

bearbeitet, dass die Worte „unsicher“ und „Unsicherheit“ sind ziemlich allgegenwärtig, es ist schwer zu Google „Unsicherheit Arithmetik“ und alles sofort hilfreich bekommen. So kann jemand eine gute Bibliothek von Routinen legt nahe, in fast jede Programmier-/Skriptsprache, der Umgang mit unsicheren Werten implementiert, gemäß dieser Beschreibung:Eine gute Unsicherheit (Intervall) arithmetische Bibliothek? Bei</p> <p>

Verwenden Unsicherheit Arithmetik auf Rekordwert, die Annäherungen sind, für die es ist eine gemessene Toleranz. Dies ist der Fall, wenn wir uns über einen Wert unsicher sind, aber wissen, welche oberen und unteren Grenzen er haben kann, ausgedrückt als ± Wert.

Antwort

1

Es ist nicht eine Bibliothek, aber Ihre Frage erinnerte mich an einem Beispiel in „Expert F #“, die probabilistische Workflows beschreibt:

statt Schreiben von Ausdrücken zu berechnen, sagen wir, ganzen Zahlen, wir Ausdrücke statt schreiben das berechnen Verteilungen von ganzen Zahlen. Diese Fallstudie basiert auf einem Papier von Ramsey und Pfeffer aus dem Jahr 2002.

Sie können den Auszug on google books lesen.

1

ich wahrscheinlich darüber gehen würde durch die Deklaration einer Klasse mit Methoden und Eigenschaften wie (psuedocode) genannt UncertainValue,:

class UncertainValue 
{ 
    private double upperbound; 
    private double lowerbound; 
    private double nominalvalue; 
    private double certainty; 
    ... 
    UncertainValue add(UncertainValue value); 
    UncertainValue multiply(UncertainValue factor); 
} 

Ich weiß, dies nicht Ihre Frage in Bezug beantwortet eine Pre finden -Bibliothek, Entschuldigung.

3

Werfen Sie einen Blick auf die Java-Klasse Error Propagation von Thomas Flanagan. Der Ansatz, den er verwendet, ist am besten geeignet, um Ungewissheit ohne übermäßige Probleme zu handhaben.

4

Wenn Sie nach einem error propagation Modul suchen (dies unterscheidet sich von interval arithmetic, aber die Fehlerfortpflanzung ist, was man gemeinhin von den Wissenschaftlern verwendet wird), würde ich vorschlagen, dass Sie einen Blick auf meine uncertainties Python-Modul haben. Es behandelt die Fehler/Ungewissheits-Propagierung auf transparente Weise und behandelt, im Gegensatz zu vielen Implementierungen, Korrelationen zwischen Variablen richtig.

3

als Referenz, wie es wahrscheinlich viel zu spät für Sie, ich würde BIAS/Profil vorschlagen: http://www.ti3.tuhh.de/keil/profil/index_e.html

+0

In diesem Fall ist es nie zu spät – bugmagnet

+0

gut dann! seine Eigenschaften in Ihrem Fall, die ich als Benutzer sehe, wäre, dass BIAS eine C-Bibliothek mit einigen C++ - Funktionen von Profil ist; es berücksichtigt Computer numerischen Fehler; wenn Ihre Fehler zentriert sind, direkter Zugriff auf den Nennwert; Vektor von Intervallen für mehrdimensionale Analysen; vollständige Arithmetik eingeschlossen (übliche Operationen mit dem Spin der Intervallarithmetik auf Intervallen, Vektoren, Matrizen); Endlich einfach mit den ersten Seiten von Kapitel 3 der Dokumentation zu beginnen: ein paar Warnungen/Informationen und Tabellen aller Operationen für jeden Typ. – luneart