List of uncertainty propagation software

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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

Software[edit]

  • 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
  • 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.
  • 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".
  • 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.
  • ErrorCalc is a scientific calculator app for iPhone or iPad that performs error propagation (Supports Algebraic and RPN modes of entry)
  • FuncDesigner
  • GUMsim is a Monte Carlo simulator and uncertainty estimator for Windows
  • 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 implements a systematic way to analyze an uncertainty problem for single and multiple results. GUM + Monte Carlo. Free restricted educational version available.
  • The Gustavus 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.
  • 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.
  • 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.
  • 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.
  • Metas.UncLib is a C# software library. A MATLAB wrapper exists. 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]
  • MUSE Measurement Uncertainty Simulation and Evaluation using the monte carlo method.
  • 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.[2]
  • OpenTURNS is a C++ and Python framework for probabilistic modelling and uncertainty management developed by the OpenTURNS consortium (Airbus, EDF R&D, IMACS, Phimeca). 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.
  • 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.
  • 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.
  • SCaViS is a free data-analyais program written in Java and supports Python and Groovy.
  • SCRAM is free fault tree and event tree analysis software that employs Monte Carlo simulation for uncertainty analysis in probability expressions.
  • 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.
  • Uncertainties is a potent free calculator and Python software library for transparently performing calculations with uncertainties and correlations.
  • 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).[3]
  • 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.

Comparison[edit]

Name Creator License Programming language Handles correlations? Cross-platform? Calculator? Complex numbers calculation? VISA data acquisition possible ? Library? Remarks
ASUE TC-32 - Fault Tolerant Measurement Systems Free Mathematica No Yes Yes No 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 the GUM uncertainty propagation framework. N/A
Error Propagation Calculator R. Paul Nobrega Free Python Yes Yes Yes No Desktop calculator (Windows, macOS, Linux), 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.
Abacus Mischa Megens Free C, Win32 Yes No Yes No Desktop calculator (Windows), handles multiple expressions
App::ErrorCalculator Steffen Müller GNU GPL Perl No Yes Library and script to process tabular values
Colby College Uncertainty Calculator T. W. Shattuck Unknown JavaScript Yes Yes Yes No Web browser-based. Formula input, then asks for values of variables.
Dempster Shafer with Intervals (DSI) Toolbox Gabor Rebner Free for private and academic use MATLAB No Yes Verified computation of basic probability assignments and fault tree analysis under Dempster–Shafer theory. Fast evaluation of (non) monotonic system functions and aggregation rules.
Experimental Data Analyst (EDA) David Harrison Proprietary Mathematica Yes No Yes Library N/A
EPC: error-propagating calculator Dan Kelley GNU GPL Perl Yes Yes Yes Perl Script. Monte Carlo evaluation of an expression.
ErrorCalc iPhone/iPad calculator app Thomas Huber Proprietary Unknown No No Yes No Scientific calculator app for iPhone or iPad that performs error propagation (Algebraic and RPN Entry modes) N/A
FuncDesigner Dmitrey BSD Python No Yes Yes Library and stand-alone (via the Python shell). Involves automatic differentiation, possibly large-scale sparse
fussy S. Bhatnagar Free but copyrighted C Yes No Yes Yes Scripting language called 'fussy', similar to C.
GUM Workbench Metrodata GmbH Proprietary Object Pascal (Delphi) Yes Yes No Standalone. Detailed consequences of a model equation. GUM + Monte Carlo. Free restricted educational version available.
GUM_MC Jean-Marie Biansan GNU GPL Lazarus Yes Yes Yes No Standalone. Gum framework and Monte Carlo method.
GUMsim QuoData GmbH Proprietary Object Pascal (Delphi) Yes No Yes No Standalone; detailed consequences of a model equation
GUM Tree Calculator (GTC) Industrial Research Ltd Proprietary, freeware single-user, nontransferable Python Yes No Yes Yes No No A programmable command-line calculator for Windows. Suitable for calculations involving real and complex quantities. Programmable in Python. An IDE with syntax highlighting and on-line help is included.
Gustavus Adolphus error propagation calculator Thomas Huber GNU GPL Unknown No No Yes No Executable only. Desk calculator style (with no expression parentheses). N/A
gvar G. Peter Lepage GNU GPL Python Yes Yes Yes No No Library Not trivial to install on Windows, a compiled binary is provided here.
laffers.net error propagation calculator Richard Laffers Creative Commons JavaScript No Yes Yes No Web browser-based, desk calculator style N/A
LNE-MCM LNE Free MATLAB Yes No Yes No Standalone. MATLAB Runtime required. Monte Carlo method, Supplement 1 to the GUM. Sensitivity analysis, Multivariate models, Goodness-of-fit test.
Measurement Software Toolkit Industrial Research Ltd Proprietary, freeware noncommercial use R, Excel plug-in Yes Yes Yes Library and plug-in
Measurements.jl Mosè Giordano MIT Julia Yes Yes Yes Yes Supports real and complex numbers with uncertainty, arbitrary-precision calculations, functional correlation between variables, mathematical and linear algebra operations with matrices and arrays, and numerical integration.
metRology package for R S. Ellison Free, GPL R Yes Yes Yes No Includes first-order algebraic and numerical differentiation, including finite-difference with specified step size and Kragten's method,[4] as well as Monte Carlo simulation. Evaluation can be applied to R expressions, formulae and functions.
MUSE Measurement Uncertainty Research Group, ETH Zürich Proprietary, freeware noncommercial use C++ Yes Yes No Standalone. Monte-Carlo sampling. Interprets an XML model description file.
Metas.UncLib Michael Wollensack, METAS Proprietary freeware, no redistribution C#, MATLAB wrapper Yes No Yes Yes Library, and command-line calculator, via MATLAB
NIST Uncertainty Machine Thomas Lafarge, Antonio Possolo, National Institute of Standards and Technology public domain R Yes Yes Yes Yes Uses Gauss' method and Monte Carlo. Web interface to a server-side R language calculator. Complete documentation.
Number::WithError Steffen Müller GNU GPL Perl No No Yes Library
Uncertainty Calculator; Wilfrid Laurier University Terry Sturtevant Unknown JavaScript No Yes Yes No Web browser-based. Desk calculator style.
propagate Andrej-Nikolai Spiess GNU GPL R Yes Yes No Yes 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.
Risk Calc Scott Ferson Proprietary C++ Yes Yes Probabilistic and interval uncertainty. Also handles uncertainty about correlations.
SCaViS JWork.ORG GNU GPL Java, Python Yes Yes Yes Yes Standalone. Conducts error propagation by first- and second-order Taylor approximation and using a Monte Carlo approach for complex functions. N/A
soerp Abraham Lee BSD Python Yes Yes Yes Yes Free Python library and command-line calculator. Fully transparent second-order calculations with correlations. Automatically calculates all the first and second derivatives of an expression using the free Python package ad
S&T Missouri Uncertainty Calculator Gary L. Bertrand Unknown JavaScript No Yes Yes No Web browser-based. Desk calculator style.
Uncertainty Calculator John Denker Free for non-commercial use JavaScript Yes Yes Yes Yes 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.
QMSys GUM Qualisyst Ltd. Proprietary Unknown Yes No Standalone. Linear/nonlinear models, Monte Carlo method. (free restricted educational version available)
MC-Ed Florian Platel (MetGen) Free Object Pascal (Delphi) No No Yes No Desktop calculator (Win32 native application). Monte-Carlo simulations. N/A
OpenCOSSAN Institute of Risk and Uncertainty, University of Liverpool GNU GPL MATLAB Yes Yes No Yes Provides an object-oriented programming interface to advanced algorithms and solution sequences.
OpenTURNS Airbus, EDF R&D, IMACS, Phimeca GNU LGPL C++, Python Yes Yes No Yes State of the art advanced probabilistic modelling (copulas, Bayesian models, stochastic processes, random fields), state of the art algorithms, Windows-Linux-macOS, C++ and Python APIs
SmartUQ SmartUQ LLC Proprietary C++ Yes Yes No No Standalone application for Windows & Linux. MATLAB and Python APIs
uncertainties Eric O. Lebigot (EOL) BSD Python Yes Yes Yes Yes Library or stand-alone command-line calculator (via the Python shell). Fully transparent, analytic calculations with correlations. Also handles matrices with uncertainties. Automatically calculates all the derivatives of an expression
UQLab[3] ETH Zürich, Chair of Risk, Safety and Uncertainty Quantification BSD scientific modules. Free for academic use MATLAB Yes Yes Yes No General purpose software including copula modeling, surrogate models (polynomial chaos expansions, Kriging (a.k.a. Gaussian process modeling), low-rank tensor approximations), global sensitivity analysis (Sobol’ indices), rare event simulation (FORM/SORM, importance sampling, subset simulation). Easy to link with third party codes, fast learning curve.
UncertaintyWrapper Mark Mikofski BSD Python Yes Yes Yes Yes Python decorators to wrap any method including C extensions. Propagates 1st order uncertainties using finite central difference approximation of Jacobian matrix. Sensitivity also propagated. Any number of arguments and return values. Calculates multiple observations simultaneously. Validated with Uncertainties, ALGOPY, Numdifftools and SymPy.
MCM Alchimia Unknown Yes No

See also[edit]

References[edit]

  1. ^ Ellison, Stephen L. R. (2017). "metRology: Support for Metrological Applications". CRAN (R programming language). Retrieved 2018-02-20.
  2. ^ Lafarge, T. and Possolo, A (2015). "The NIST Uncertainty Machine". NCSLI Measure Journal of Measurement Science. 10 (3): 20–27.
  3. ^ a b 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
  4. ^ Kragten, J. (1994). "Calculating standard deviations and confidence intervals with a universally applicable spreadsheet technique". Analyst. 119 (10): 2161–2166. doi:10.1039/AN9941902161.