.. only:: html
.. note::
:class: sphx-glr-download-link-note
Click :ref:`here ` to download the full example code
.. rst-class:: sphx-glr-example-title
.. _sphx_glr_auto_reliability_sensitivity_reliability_plot_estimate_probability_directional_sampling.py:
Probability estimation: directional simulation
==============================================
In this example we estimate a failure probability with the directional simulation algorithm provided by the `DirectionalSampling` class.
Introduction
------------
The directional simulation algorithm operates in the standard space based on:
1. a *root strategy* to evaluate the nearest failure point along each direction and take the contribution of each direction to the failure event probability into account. The available strategies are:
- `RiskyAndFast`
- `MediumSafe`
- `SafeAndSlow`
2. a *sampling strategy* to choose directions in the standard space. The available strategies are:
- `RandomDirection`
- `OrthogonalDirection`
Let us consider the analytical example of the cantilever beam described :ref:`here `.
.. code-block:: default
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 model from the usecases module :
.. code-block:: default
from openturns.usecases import cantilever_beam as cantilever_beam
cb = cantilever_beam.CantileverBeam()
We load the joint probability distribution of the input parameters :
.. code-block:: default
distribution = cb.distribution
We load the model giving the displacement at the end of the beam :
.. code-block:: default
model = cb.model
We create the event whose probability we want to estimate.
.. code-block:: default
vect = ot.RandomVector(distribution)
G = ot.CompositeRandomVector(model, vect)
event = ot.ThresholdEvent(G, ot.Greater(), 0.30)
Root finding algorithm.
.. code-block:: default
solver = ot.Brent()
rootStrategy = ot.MediumSafe(solver)
Direction sampling algorithm.
.. code-block:: default
samplingStrategy = ot.OrthogonalDirection()
Create a simulation algorithm.
.. code-block:: default
algo = ot.DirectionalSampling(event, rootStrategy, samplingStrategy)
algo.setMaximumCoefficientOfVariation(0.1)
algo.setMaximumOuterSampling(40000)
algo.setConvergenceStrategy(ot.Full())
algo.run()
Retrieve results.
.. code-block:: default
result = algo.getResult()
probability = result.getProbabilityEstimate()
print('Pf=', probability)
.. rst-class:: sphx-glr-script-out
Out:
.. code-block:: none
Pf= 4.0070181504701335e-07
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 0.686 seconds)
.. _sphx_glr_download_auto_reliability_sensitivity_reliability_plot_estimate_probability_directional_sampling.py:
.. only :: html
.. container:: sphx-glr-footer
:class: sphx-glr-footer-example
.. container:: sphx-glr-download sphx-glr-download-python
:download:`Download Python source code: plot_estimate_probability_directional_sampling.py `
.. container:: sphx-glr-download sphx-glr-download-jupyter
:download:`Download Jupyter notebook: plot_estimate_probability_directional_sampling.ipynb `
.. only:: html
.. rst-class:: sphx-glr-signature
`Gallery generated by Sphinx-Gallery `_