Esempio n. 1
0
# %%
solver = ot.Brent()
rootStrategy = ot.MediumSafe(solver)

# %%
# Direction sampling algorithm.

# %%
samplingStrategy = ot.OrthogonalDirection()

# %%
# Create a simulation algorithm.

# %%
algo = ot.DirectionalSampling(event, rootStrategy, samplingStrategy)
algo.setMaximumCoefficientOfVariation(0.1)
algo.setMaximumOuterSampling(40000)
algo.setConvergenceStrategy(ot.Full())
algo.run()

# %%
# Retrieve results.

# %%
result = algo.getResult()
probability = result.getProbabilityEstimate()
print('Pf=', probability)

# %%
# We can observe the convergence history with the `drawProbabilityConvergence`
print('Pf =', probabilityFORM)

# %%
graph = resultFORM.drawImportanceFactors()
view = viewer.View(graph)

# %%
# Using Directional sampling
# --------------------------

# %%
# Resolution options:
cv = 0.05
NbSim = 10000

algoDS = ot.DirectionalSampling(myEvent)
algoDS.setMaximumOuterSampling(NbSim)
algoDS.setBlockSize(1)
algoDS.setMaximumCoefficientOfVariation(cv)

# %%
# For statistics about the algorithm
initialNumberOfCall = limitStateFunction.getEvaluationCallsNumber()

# %%
# Perform the analysis.

# %%
algoDS.run()

# %%
Esempio n. 3
0
root_strategy.setSolver(
    ot.Brent())  # Alternatives : ot.Bisection(), ot.Secant(), ot.Brent()

# In[38]:

sampling_strategy = ot.RandomDirection(
)  # Alternatives : ot.RandomDirection(), ot.OrthogonalDirection()
sampling_strategy.setDimension(X_distribution.getDimension())

# In[39]:

ot.RandomGenerator.SetSeed(0)

# In[40]:

DS_algorithm = ot.DirectionalSampling(event)
DS_algorithm.setMaximumCoefficientOfVariation(.1)
DS_algorithm.setMaximumOuterSampling(10000)
DS_algorithm.setBlockSize(1)
DS_algorithm.setRootStrategy(root_strategy)
DS_algorithm.setSamplingStrategy(sampling_strategy)
DS_algorithm.run()
DS_result = DS_algorithm.getResult()

# In[41]:

print("Probability estimate:     %.3e" % DS_result.getProbabilityEstimate())
print("Coefficient of variation: %.2f" % DS_result.getCoefficientOfVariation())
print("Number of evaluations:    %d" % g.getInputHistory().getSize())

# In[42]: