Note
Click here to download the full example code
Use a randomized QMC algorithmΒΆ
In this example we are going to estimate a failure probability on the cantilever beam.
from __future__ import print_function
import openturns as ot
import openturns.viewer as viewer
from matplotlib import pylab as plt
ot.Log.Show(ot.Log.NONE)
We load the data class containing the probabilistic modeling of the beam.
from openturns.usecases import cantilever_beam as cantilever_beam
cb = cantilever_beam.CantileverBeam()
We load the joint probability distribution of the input parameters :
distribution = cb.distribution
We load the model as well,
model = cb.model
We create the event whose probability we want to estimate.
vect = ot.RandomVector(distribution)
G = ot.CompositeRandomVector(model, vect)
event = ot.ThresholdEvent(G, ot.Greater(), 0.3)
Define the low discrepancy sequence.
sequence = ot.SobolSequence()
Create a simulation algorithm.
experiment = ot.LowDiscrepancyExperiment(sequence, 1)
experiment.setRandomize(True)
algo = ot.ProbabilitySimulationAlgorithm(event, experiment)
algo.setMaximumCoefficientOfVariation(0.05)
algo.setMaximumOuterSampling(int(1e5))
algo.run()
Retrieve results.
result = algo.getResult()
probability = result.getProbabilityEstimate()
print('Pf=', probability)
Out:
Pf= 0.0
Total running time of the script: ( 0 minutes 1.361 seconds)