# create a function dim = 4 function = ot.SymbolicFunction( ['E', 'F', 'L', 'I'], ['F*L^3/(3.*E*I)']) # create a distribution distribution = ot.Normal( [50., 1.0, 10.0, 5.0], [1.0] * dim, ot.IdentityMatrix(dim)) vect = ot.RandomVector(distribution) composite = ot.CompositeRandomVector(function, vect) event = ot.Event(composite, ot.Less(), -3.0) # create an ADS algorithm n = int(1e4) algo = ot.AdaptiveDirectionalSampling(event) algo.setMaximumOuterSampling(n) algo.setGamma([0.6, 0.4]) algo.run() result = algo.getResult() print(result) # ADS-2+ algo2 = algo algo2.setPartialStratification(True) algo2.run() print('T=', algo2.getTStatistic()) result = algo2.getResult() print(result)
# Root finding algorithm. # %% solver = ot.Brent() rootStrategy = ot.MediumSafe(solver) # %% # Direction sampling algorithm. # %% samplingStrategy = ot.RandomDirection() # %% # Create a simulation algorithm. # %% algo = ot.AdaptiveDirectionalSampling(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( result ) print('Pf=', probability)