# %% 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() # %%
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]: