Software:List of uncertainty propagation software

From HandWiki
Revision as of 13:25, 9 February 2024 by S.Timg (talk | contribs) (link)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: none

List of uncertainty propagation software used to perform propagation of uncertainty calculations:

Software

  • abacus Desktop calculator (Windows), handles multiple expressions.
  • app::errorcalculator Library and script to process tabular values.
  • ASUE Potent web interface powered by webMathematica to evaluate uncertainty symbolically using GUM. Webpage also allows symbolic uncertainty evaluation via ASUE framework (with reference), which is an extension to GUM framework.
  • Chaospy is an open source numerical Python library for doing UQ using advanced method of Monte Carlo and polynomial approximation, with an emphasis on composability and polynomial chaos expansion. Easy to integrate into existing Python code with libraries that can be directly imported into the user's environment. Packages can be downloaded from the Python Package Index (via pip) or through Conda. Developer version available via GitHub. Can also interface with any third-party software model.
  • Colby College uncertainty calculator Web browser-based. Formula input, then asks for values of variables.
  • Dakota is a comprehensive suite of tools for sampling-based optimization and UQ developed by Sandia National Laboratories.
  • Dempster Shafer with Intervals (DSI) Toolbox is a MATLAB toolbox for verified computing under Dempster–Shafer theory. It provides aggregation rules, fast (non) monotonic function propagation, plots of basic probability assignments, verified fault tree analysis (FTA), and much more.
  • EasyGraph is a graphing package that supports error propagation directly into the error bars.
  • EasyVVUQ is a Python3 library intended to facilitate verification, validation and uncertainty quantification (VVUQ) for a wide variety of simulations. Supports various sensitivity analysis and uncertainty quantification methods as well as different execution methods for simulations (traditional clusters and cloud computing).
  • epc error propagating calculator (epc) is an open source script-based tool that calculates the propagation of errors in variables. To quote the text on the Epc web page "This is done by repeated calculation of the expression using variable-values which are generated using a random number generator whose mean and standard-deviation match the values specified for the variable". Perl Script.
  • Error Propagation Calculator Free cross-platform calculator (macOS, Windows, Linux) written in Python. Essentially a GUI interface for the Python Uncertainties library. Easy to use and install. Handles up to 26 variable and error pairs per computation. Evaluates native python expressions. No prior knowledge of python language is required for use. Windows installer includes python dependencies.
  • ErrorCalc is a scientific calculator app for iPhone or iPad that performs error propagation (Supports Algebraic and RPN modes of entry)
  • FuncDesigner Library and stand-alone (via the Python shell). Involves automatic differentiation, possibly large-scale sparse.
  • Scripting language called 'fussy', similar to C.
  • GUMsim is a Monte Carlo simulator and uncertainty estimator for Windows. Standalone; detailed consequences of a model equation.
  • GUM Tree is a design pattern for propagating measurement uncertainty. An implementation exists in R and add-ons for Excel (real and complex numbers).
  • GUM Tree Calculator is a programmable Windows command-line tool with full support for uncertainty calculations involving real and complex quantities.
  • GUM Workbench uses a graphical user interface to implement a systematic way to analyze an uncertainty problem for single and multiple results. GUM + Monte Carlo. Free restricted educational version available.
  • gum_mc: GUM framework and Monte Carlo method. Standalone.
  • The Gustavus Adolphus propagator is an open source calculator that supports error propagation developed by Thomas Huber.
  • gvar is a Python library for first order uncertainty propagation with correlations. Features transparent handling of arrays, dictionaries and dictionaries of arrays; numerical computation with uncertainty propagation of splines, matrix operations, differential equations, integrals, power series and equations. Not trivial to install on Windows, a compiled binary is provided here.
  • The laffers.net propagator is a web-based tool for propagating errors in data. The tool uses the standard methods for propagation.
  • LNE-MCM is a free software for Windows dedicated to the evaluation of measurement uncertainty using Monte Carlo simulations according to Supplement 1 to the GUM. Moreover, additional features are implemented like the case of multivariate models, sensitivity analysis to provide an uncertainty budget and a goodness-of-fit test for the samples of the output quantities. MATLAB Runtime required.
  • Mathos Core Library Uncertainty package Open source (.NET targeting library).
  • MC-Ed is a native Windows software to perform uncertainty calculations according to the Supplement 1 to the Guide to the expression of uncertainty in measurement using Monte-Carlo method.
  • MCM Alchimia is a standalone sequential & multilingual software for uncertainty estimation. Windows desktop GUM + Monte Carlo. Supports least squares regression and interpolation models.
  • Measurements.jl is a free and open-source error propagation calculator and library. It supports real and complex numbers with uncertainty, arbitrary-precision arithmetic calculations, functional correlation between variables, mathematical and linear algebra operations with matrices and arrays, and numerical integration using Gauss–Kronrod quadrature.
  • MonteCarloMeasurements.jl is a free and open-source, nonlinear error propagation calculator and library that supports arbitrary multivariate distributions, differentiation, linear algebra and arbitrary-precision arithmetic. Propagates uncertainties by means of Monte-Carlo samples.
  • METAS UncLib is a C# software library and command-line calculator. A MATLAB wrapper and a Python wrapper exist. It supports: multivariate uncertainties, complex values, correlations, vector, and matrix algebra.
  • metRology package for R metRology is an R package to support metrological applications. Among other functions for metrology, it includes support for measurement uncertainty evaluation using algebraic and numerical differentiation and Monte Carlo methods.[1] Includes first-order algebraic and numerical differentiation, including finite-difference with specified step size and Kragten's method,[2] as well as Monte Carlo simulation. Evaluation can be applied to R expressions, formulae and functions.
  • MetroloPy, Python tools for dealing with physical quantities: uncertainty propagation and unit conversion. First order and Monte-Carlo propagation of uncertainty; handles relative, absolute, and expanded uncertainties of quantities with units.
  • MUSE Measurement Uncertainty Simulation and Evaluation using the Monte Carlo method. Interprets an XML model description file.
  • MUQ is an MIT developed collection of UQ tools for Markov Chain Monte Carlo sampling, Polynomial Chaos construction, transport maps, and many other operations. It has both C++ and Python interfaces.
  • OpenCOSSAN is a MATLAB toolbox for uncertainty propagation, reliability analysis, model updating, sensitivity and robust design optimization. Allows interacting with 3rd party solvers. Interfaces with HPC through GridEngine and OpenLava.
  • NIST Uncertainty Machine is an uncertainty calculator that uses Gauss' formula and Monte Carlo methods. Users access it through a web browser, but it runs in the R programming language on the server.[3] Complete documentation.
  • OpenTURNS is a C++ and Python framework for probabilistic modelling and uncertainty management developed by the OpenTURNS consortium (Airbus, EDF R&D, IMACS, Phimeca, ONERA). It contains state of the art algorithms for univariate, multivariate and infinite dimensional probabilistic modelling (arithmetic of independent random variables, copulas, Bayesian models, stochastic processes and random fields), Monte Carlo simulation, surrogate modelling (Kriging, functional chaos decomposition, low rank tensor approximation, Karhunen-Loeve decomposition, mixture of experts), rare event estimation (variance reduction, FORM/SORM reliability methods), robust optimization, global sensitivity analysis (ANCOVA, Sobol' indices). It can interact with third-party software through a generic Python interface, which also allows to connect HPC facilities. It provides calibration (including bayesian) methods and a full set of interface to optimization solvers.
  • propagate: an R package that conducts error propagation by first- and second-order Taylor approximation (GUM 2008) and Monte-Carlo simulation (GUM 2008 S1), using full covariance structure.
  • PSUADE is a comprehensive suite of tools for sampling-based UQ (dimension reduction, response surface analysis, uncertainty propagation, sensitivity analysis, numerical optimization, statistical inference, optimization under uncertainty) developed at Lawrence Livermore National Laboratory.
  • QMSys GUM is a potent commercial tool for measurement uncertainty analysis including Monte Carlo simulation for Windows (free restricted educational version available).
  • Risk Calc supports probability bounds analysis, standard fuzzy arithmetic, and classical interval analysis for conducting distribution-free or nonparametric risk analyses. Also handles uncertainty about correlations.
  • SmartUQ is a commercial uncertainty quantification and analytics software package. Capabilities include DOE generation, emulator construction, uncertainty propagation, sensitivity analysis, statistical calibration, and inverse analysis.
  • SOERP implements second-order error propagation as a free Python library. Calculations are carried out naturally in calculator format and correlations are maintained. Automatically calculates all the first and second derivatives of an expression using the free Python package ad.
  • SCaViS is a free data-analysis program written in Java and supports Python and Groovy. Conducts error propagation by first- and second-order Taylor approximation and using a Monte Carlo approach for complex functions.
  • SCRAM is free fault tree and event tree analysis software that employs Monte Carlo simulation for uncertainty analysis in probability expressions.
  • S&T Missouri Uncertainty Calculator: web browser-based. Desk calculator style.
  • twinLab is a commercial probabilistic machine learning platform developed by digiLab. Capabilities include building, testing and deploying machine learning models or surrogates with uncertainty quantification estimates. Current version focuses on (deep) Gaussian Processes, Neural Networks and Random Forests. Software provides automatic model selection.
  • The Uncertainty Calculator is a JavaScript browser-based calculator that performs error propagation calculations.
  • Uncertainty Calculator runs JavaScript in the browser. Simple version: uses Crank Three Times to provide numerical answers. Fancy version: uses Monte Carlo to provide additional information including graphs of probability density and cumulative probability. Warns users of potential issues that other methods don't warn about. Handles correlations that arise during multi-step calculations. Numerous interactive pushbutton demos.
  • uncertainty calculator, Wilfrid Laurier University: web browser-based. Desk calculator style.
  • Uncertainties is a potent free calculator and Python software library for transparently performing calculations with uncertainties and correlations. Also handles matrices with uncertainties. Automatically calculates all the derivatives of an expression.
  • UncertRadio: Software for calculation of characteristic limits according to ISO 11929 (covering parts 1-3) for radioactivity measurements; besides the characteristic limits (decision threshold, detection limit and limits of the coverage interval) the software provides the Monte Carlo method for uncertainty determination. UncertRadio evaluations can be processed from within an Excel application.
  • Mathos Laboratory Uncertainty Calculator This is a web interface for uncertainty calculations.
  • UQLab is a software framework for uncertainty quantification developed at ETH Zurich. It is a general-purpose software running in MATLAB which contains state-of-the-art methods for Monte Carlo simulation, dependence modelling (copula theory), surrogate modelling (polynomial chaos expansions, Kriging (a.k.a. Gaussian process modelling), low-rank tensor approximations, global sensitivity analysis (ANOVA, Sobol’ indices, distribution-based indices), rare event simulation (a.k.a. reliability methods).[4]
  • UQpy is an open-source Python toolbox and development environment for uncertainty quantification developed by the Shields Uncertainty Research Group (SURG) at Johns Hopkins University. It consists of a set of modules for various capabilities in forward and inverse UQ ranging from sampling methods for uncertainty propagation to reliability analysis, surrogate model construction, and Bayesian inference. Of particular note is that it is designed to interface with any Python model or third-party software model through the RunModel module. Packages can be downloaded from the Python Package Index (via pip) or through Conda. Developer version available via GitHub.
  • UncertaintyWrapper is a free and open source software Python package that propagates uncertainty using 1st order linear combinations. Covariance is also propagated. It approximates sensitivity with finite central differences. UncertaintyWrapper wraps any Python code even C extensions. It is vetted against Uncertainties, ALGOPY, Numdifftools and SymPy.
  • UQTk is a set of tools for forward and inverse uncertainty quantification on computational models. The functionality can be accessed through C++, command line apps, or Python. The uncertainty quantification approaches in UQTk rely extensively on Polynomial Chaos methods for representing random variables.

Comparison

Name License Programming language Handles correlations? Cross-platform? Calculator? Complex numbers calculation? VISA data acquisition possible ? Library?
Abacus Free C, Win32 Yes No Yes No No
ASUE Free Mathematica No Yes Yes No No
App::ErrorCalculator GNU GPL Perl No Yes Library
Chaospy MIT Python Yes Yes Yes No Library
Colby College Uncertainty Calculator Unknown JavaScript Yes Yes Yes No No
Dempster Shafer with Intervals (DSI) Toolbox Free for private and academic use MATLAB No Yes Library
EasyVVUQ GNU LGPL Python Yes Yes No No Library
Experimental Data Analyst (EDA) Proprietary Mathematica Yes No Yes Library
EPC: error-propagating calculator GNU GPL Perl Yes Yes Yes No
ErrorCalc iPhone/iPad calculator app Proprietary Unknown No No Yes No No
Error Propagation Calculator Free Python Yes Yes Yes No No
FuncDesigner BSD Python No Yes Yes Library
fussy Free but copyrighted C Yes No Yes Yes No
GUM_MC GNU GPL Lazarus Yes Yes Yes No
GUMsim Proprietary Object Pascal (Delphi) Yes No Yes No No
GUM Tree Calculator (GTC) Proprietary, freeware single-user, nontransferable Python Yes No Yes Yes No No
GUM Workbench Proprietary Object Pascal (Delphi) Yes Yes No No
Gustavus Adolphus error propagation calculator GNU GPL Unknown No No Yes No No
gvar GNU GPL Python Yes Yes Yes No No Library
laffers.net error propagation calculator Creative Commons JavaScript No Yes Yes No No
LNE-MCM Free MATLAB Yes No Yes No No
MCM Alchimia Free Object Pascal (Delphi) Yes No Yes No No No
Measurement Software Toolkit Proprietary, freeware noncommercial use R, Excel plug-in Yes Yes Yes Library
Measurements.jl MIT Julia Yes Yes Yes Yes Yes Library
MonteCarloMeasurements.jl MIT Julia Yes Yes Yes Yes Yes Library
metRology package for R Free, GPL R Yes Yes Yes No Library
MetroloPy GNU GPL Python Yes Yes Yes Yes Library
MUSE Proprietary, freeware noncommercial use C++ Yes Yes No No
METAS UncLib Proprietary freeware, no redistribution C#, MATLAB wrapper and Python wrapper Yes Yes Yes Yes No but you can use NI VISA for example. Library
NIST Uncertainty Machine public domain R Yes Yes Yes Yes No
UncertRadio Free Fortran-2008 with GTK-Fortran-GUI; Win64 Yes Yes No No
Number::WithError GNU GPL Perl No No Yes Library
Uncertainty Calculator; Wilfrid Laurier University Unknown JavaScript No Yes Yes No No
propagate GNU GPL R Yes Yes No Yes Library
Risk Calc Proprietary C++ Yes Yes No
SCaViS GNU GPL Java, Python Yes Yes Yes Yes
soerp BSD Python Yes Yes Yes Yes Library
S&T Missouri Uncertainty Calculator Unknown JavaScript No Yes Yes No No
Uncertainty Calculator Free for non-commercial use JavaScript Yes Yes Yes Yes No
QMSys GUM Proprietary Unknown Yes No No
MC-Ed Free Object Pascal (Delphi) No No Yes No No
OpenCOSSAN GNU GPL MATLAB Yes Yes No Yes Library
OpenTURNS GNU LGPL C++, Python Yes Yes No Yes Library
SmartUQ Proprietary C++ Yes Yes No No
uncertainties BSD Python Yes Yes Yes No Yes Library
UQLab[4] BSD scientific modules. Free for academic use MATLAB Yes Yes Yes No Library
UQpy MIT Python Yes Yes Yes Library
UncertaintyWrapper BSD Python Yes Yes Yes Yes Library
MCM Alchimia Unknown Yes No

See also

References

  1. Ellison, Stephen L. R. (2017). "metRology: Support for Metrological Applications". https://CRAN.R-project.org/package=metRology. 
  2. Kragten, J. (1994). "Calculating standard deviations and confidence intervals with a universally applicable spreadsheet technique". Analyst 119 (10): 2161–2166. doi:10.1039/AN9941902161. 
  3. Lafarge, T. and Possolo, A (2015). "The NIST Uncertainty Machine". NCSLI Measure Journal of Measurement Science 10 (3): 20–27. doi:10.1080/19315775.2015.11721732. 
  4. 4.0 4.1 Marelli, S. and Sudret, B., UQLab: A framework for uncertainty quantification in Matlab, Proc. 2nd Int. Conf. on Vulnerability, Risk Analysis and Management (ICVRAM2014), Liverpool, United Kingdom, 2014