2009-03-08 3 views
7

modifiéUne bonne bibliothèque arithmétique d'incertitude (intervalle)?

Étant donné que les mots « incertain » et « incertitude » sont assez omniprésents, il est difficile de Google « l'arithmétique d'incertitude » et d'obtenir quoi que ce soit immédiatement utile. Ainsi, quelqu'un peut-il suggérer une bonne bibliothèque de routines, dans presque tous les programmes/langage de script, qui met en œuvre la gestion des valeurs incertaines, selon cette description:

Utilisez l'arithmétique d'incertitude pour enregistrer les valeurs qui sont des approximations, pour lesquelles il est une tolérance mesurée. C'est quand nous ne sommes pas sûrs d'une valeur, mais connaissons les limites supérieures et inférieures qu'elle peut avoir, exprimées comme une valeur ±.

Répondre

1

Ce n'est pas une bibliothèque, mais votre question m'a rappelé un exemple dans « Expert F # » qui décrit les flux de travail probabilistes:

au lieu des expressions d'écriture pour calculer, par exemple, des entiers, nous écrivons à la place des expressions qui calcule les distributions d'entiers. Cette étude de cas est basée sur un article de Ramsey et Pfeffer de 2002.

Vous pouvez lire l'extrait on google books.

1

je serais probablement aller à ce sujet en déclarant une classe appelée UncertainValue, avec des méthodes et des propriétés telles que (psuedocode):

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

Je sais que cela ne répond pas à votre question en termes de trouver un pré bibliothèque faite, désolé.

3

Jetez un oeil à la classe Java Error Propagation de Thomas Flanagan. L'approche qu'il utilise est la plus excellente pour gérer l'incertitude sans problème excessif.

4

Si vous êtes à la recherche d'un module error propagation (ce qui est différent de interval arithmetic, mais la propagation d'erreur est ce qui est communément utilisé par les scientifiques), je vous suggère de jeter un oeil à mon uncertainties le module Python. Il gère la propagation des erreurs/incertitudes de manière transparente et, contrairement à de nombreuses implémentations, gère correctement les corrélations entre les variables.

3

pour référence, comme il est probablement trop tard pour vous, je vous suggère de BIAS/Profil: http://www.ti3.tuhh.de/keil/profil/index_e.html

+0

Dans ce cas, il n'est jamais trop tard – bugmagnet

+0

bon alors! ses caractéristiques dans votre cas que je vois en tant qu'utilisateur serait que BIAS est une bibliothèque C, avec des fonctionnalités C++ de Profil; il tient compte des erreurs numériques informatiques; si vos erreurs sont centrées, accédez directement à la valeur nominale; vecteur d'intervalles pour les analyses multidimensionnelles; arithmétique complète incluse (opérations habituelles avec le spin de l'arithmétique d'intervalle sur les intervalles, les vecteurs, les matrices); enfin facile à utiliser en utilisant les premières pages du chapitre 3 de la documentation: quelques avertissements/informations, et des tableaux de toutes les opérations pour chaque type. – luneart