Examples

  • Define uncertain values

import uncertain as uc

# Uncertain value between 3 and 8 and a normal distribution with
# mean=5 and standard deviation=1.
a = uc.UncertainValue(5, 3, 8, 'normal', [5, 1])

# Uncertain value with a uniform distribution between 0.1 and 4
b = uc.UncertainValue(1, 0.1, 4)

# Uncertain value from measured data points
c = uc.from_data([1, 2, 3, 4, 5])
  • Perform mathematical calculations

d = -b+2*a**(b/3)
  • Display properties and plot results in density plots or cumulative density plots

print(c.describe(),
"\n\nThe standard deviation of b is "+str(b.std),
"\n\nThe probability of /c/ being between 2 and 6 is " +
str(probability_in_interval(c, [2, 6])))

a.plot_distribution(title="Uncertain numbers", label="a")
b.plot_distribution(label="b", alpha=0.5)
d.plot_distribution(label="d", alpha=0.5)

d.plot_distribution(plot_type='cdf', new_figure=True)

Output:

This variable is an uncertain value. It has the following properties:

    - Nominal value: 2.4199518933533937

    - Mean: 5.1973349566661415
    - Median: 3.8063419262133795
    - Variance: 13.086116036143682
    - Standard deviation: 3.6174737091157527
    - Skewness: 1.5519941650511524

    - Lower bound: -1.9254016053940988
    - Percentile 5: 2.0248565203431506
    - Q1: 2.432100693608657
    - Q3: 6.832833238201248
    - Percentile 95: 12.808458201483177
    - Upper bound: 31.899999999999995

    - Probability distribution type: custom
    - Number of samples: 100000


The standard deviation of b is 1.1245368594834484

The probability of /c/ being between 2 and 6 is 0.67164
_images/density_plot.png _images/cdf_plot.png