Skip to main content

Transparent calculations with uncertainties on the quantities involved (aka "error propagation") ; calculation of derivatives

Project description

uncertainties allows calculation such as (0.2 +- 0.01)**2 = 0.04 +- 0.004 to be performed transparently.

Correlations between expressions are correctly taken into account (x-x is exactly zero, for instance).

Basic examples:

# Mathematical operations:
x = uncertainties.Number_with_uncert((0.20, 0.01))  # x = 0.20+-0.01
x = uncertainties.Number_with_uncert("0.20(1)")  # Other representation
print x**2  # Prints "0.04+-0.004"
print math.sin(x**2)  # Prints "0.0399...+-0.00399..."

# Access to the value at the origin, and to the uncertainty:
y = x**2
print y  # Prints "0.04+-0.004"
print y.origin_value  # Prints "0.04"
print y.std_dev()  # Prints "0.004..."

print y.derivatives[x]  # Partial derivative: prints "2"

print y - x*x  # Exactly zero: correlations taken into account

Almost all mathematical operations are supported, including most functions from the standard math module and functions from the third-party numpy module (fast operations on arrays and matrices). There is no restriction on the complexity of the expressions, or on the number of variables involved.

Another possible use of this module is the calculation of partial derivatives of mathematical functions.

More examples and additional information can be obtained with pydoc uncertainties after installation.

Please send feature requests, bug reports, or compliments to the author.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uncertainties-1.0.4.tar.gz (21.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page