# %% # We create the distributions associated to the input random variables : X1 = ot.Exponential(1.5) X2 = ot.Normal(4.0, 1.0) # %% # We define an offset `a0` : a0 = 2.0 # %% # We create the `weights` : weight = [5.0, 1.0] # %% # We create the affine combination :math:`Y` : distribution = ot.RandomMixture([X1, X2], weight, a0) print(distribution) # %% # We get its mean : mean = distribution.getMean()[0] print("Mean : %.3f" % mean) # %% # its variance : variance = distribution.getCovariance()[0, 0] print("Variance : %.3f" % variance) # %% # the 90% quantile : quantile = distribution.computeQuantile(0.9)[0]
distribution = ot.Histogram([-1.0, 0.5, 1.0, 2.0], [0.45, 0.4, 0.15]) elif ot.LogNormal().__class__.__name__ == 'KernelMixture': kernel = ot.Uniform() sample = ot.Normal().getSample(5) bandwith = [1.0] distribution = ot.KernelMixture(kernel, bandwith, sample) elif ot.LogNormal().__class__.__name__ == 'MaximumDistribution': coll = [ot.Uniform(2.5, 3.5), ot.LogUniform(1.0, 1.2), ot.Triangular(2.0, 3.0, 4.0)] distribution = ot.MaximumDistribution(coll) elif ot.LogNormal().__class__.__name__ == 'Multinomial': distribution = ot.Multinomial(5, [0.2]) elif ot.LogNormal().__class__.__name__ == 'RandomMixture': coll = [ot.Triangular(0.0, 1.0, 5.0), ot.Uniform(-2.0, 2.0)] weights = [0.8, 0.2] cst = 3.0 distribution = ot.RandomMixture(coll, weights, cst) elif ot.LogNormal().__class__.__name__ == 'TruncatedDistribution': distribution = ot.TruncatedDistribution(ot.Normal(2.0, 1.5), 1.0, 4.0) elif ot.LogNormal().__class__.__name__ == 'UserDefined': distribution = ot.UserDefined([[0.0], [1.0], [2.0]], [0.2, 0.7, 0.1]) elif ot.LogNormal().__class__.__name__ == 'ZipfMandelbrot': distribution = ot.ZipfMandelbrot(10, 2.5, 0.3) else: distribution = ot.LogNormal() dimension = distribution.getDimension() title = str(distribution)[:100].split('\n')[0] if dimension == 1: distribution.setDescription(['$x$']) pdf_graph = distribution.drawPDF() cdf_graph = distribution.drawCDF() fig = plt.figure(figsize=(10, 4))
# Create a collection of test-cases and the associated references numberOfTests = 3 testCases = list() references = list() testCases.append([ot.Uniform(-1.0, 3.0)] * 2) references.append(ot.Triangular(-2.0, 2.0, 6.0)) testCases.append([ot.Normal(), ot.Normal(1.0, 2.0), ot.Normal(-2.0, 2.0)]) references.append(ot.Normal(-1.0, 3.0)) testCases.append([ot.Exponential()] * 3) references.append(ot.Gamma(3.0, 1.0, 0.0)) print("testCases=", testCases) print("references=", references) for testIndex in range(len(testCases)): # Instanciate one distribution object distribution = ot.RandomMixture(testCases[testIndex]) distribution.setBlockMin(5) distribution.setBlockMax(20) distributionReference = references[testIndex] print("Distribution ", repr(distribution)) print("Distribution ", distribution) # Is this distribution elliptical ? print("Elliptical = ", distribution.isElliptical()) # Is this distribution continuous ? print("Continuous = ", distribution.isContinuous()) # Test for realization of distribution oneRealization = distribution.getRealization() print("oneRealization=", oneRealization)