.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_reliability_sensitivity/design_of_experiments/plot_design_of_experiments.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_reliability_sensitivity_design_of_experiments_plot_design_of_experiments.py: Various design of experiments ============================= .. GENERATED FROM PYTHON SOURCE LINES 7-8 The goal of this example is to present several design of experiments available in the library. .. GENERATED FROM PYTHON SOURCE LINES 11-13 Distribution ------------ .. GENERATED FROM PYTHON SOURCE LINES 15-20 .. code-block:: Python import openturns as ot import openturns.viewer as otv ot.Log.Show(ot.Log.NONE) .. GENERATED FROM PYTHON SOURCE LINES 21-23 Monte-Carlo sampling in 2D -------------------------- .. GENERATED FROM PYTHON SOURCE LINES 25-30 .. code-block:: Python dim = 2 X = [ot.Uniform()] * dim distribution = ot.JointDistribution(X) bounds = distribution.getRange() .. GENERATED FROM PYTHON SOURCE LINES 31-34 .. code-block:: Python sampleSize = 10 sample = distribution.getSample(sampleSize) .. GENERATED FROM PYTHON SOURCE LINES 35-37 .. code-block:: Python fig = otv.PlotDesign(sample, bounds) .. image-sg:: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_001.png :alt: plot design of experiments :srcset: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 38-39 We see that there a empty zones in the input space. .. GENERATED FROM PYTHON SOURCE LINES 41-43 Monte-Carlo sampling in 3D -------------------------- .. GENERATED FROM PYTHON SOURCE LINES 45-50 .. code-block:: Python dim = 3 X = [ot.Uniform()] * dim distribution = ot.JointDistribution(X) bounds = distribution.getRange() .. GENERATED FROM PYTHON SOURCE LINES 51-54 .. code-block:: Python sampleSize = 10 sample = distribution.getSample(sampleSize) .. GENERATED FROM PYTHON SOURCE LINES 55-58 .. code-block:: Python fig = otv.PlotDesign(sample, bounds) fig.set_size_inches(10, 10) .. image-sg:: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_002.png :alt: plot design of experiments :srcset: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 59-61 Latin Hypercube Sampling ------------------------ .. GENERATED FROM PYTHON SOURCE LINES 63-68 .. code-block:: Python distribution = ot.JointDistribution([ot.Uniform()] * 3) samplesize = 5 experiment = ot.LHSExperiment(distribution, samplesize, False, False) sample = experiment.generate() .. GENERATED FROM PYTHON SOURCE LINES 69-70 In order to see the LHS property, we need to set the bounds. .. GENERATED FROM PYTHON SOURCE LINES 72-74 .. code-block:: Python bounds = distribution.getRange() .. GENERATED FROM PYTHON SOURCE LINES 75-78 .. code-block:: Python fig = otv.PlotDesign(sample, bounds) fig.set_size_inches(10, 10) .. image-sg:: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_003.png :alt: plot design of experiments :srcset: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_003.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 79-81 We see that each column or row exactly contains one single point. This shows that a LHS design of experiments has good 1D projection properties, and, hence, is a good candidate for a space filling design. .. GENERATED FROM PYTHON SOURCE LINES 83-85 Optimized LHS ------------- .. GENERATED FROM PYTHON SOURCE LINES 87-90 .. code-block:: Python distribution = ot.JointDistribution([ot.Uniform()] * 3) samplesize = 10 .. GENERATED FROM PYTHON SOURCE LINES 91-93 .. code-block:: Python bounds = distribution.getRange() .. GENERATED FROM PYTHON SOURCE LINES 94-102 .. code-block:: Python lhs = ot.LHSExperiment(distribution, samplesize) lhs.setAlwaysShuffle(True) # randomized space_filling = ot.SpaceFillingC2() temperatureProfile = ot.GeometricProfile(10.0, 0.95, 1000) algo = ot.SimulatedAnnealingLHS(lhs, space_filling, temperatureProfile) # optimal design sample = algo.generate() .. GENERATED FROM PYTHON SOURCE LINES 103-106 .. code-block:: Python fig = otv.PlotDesign(sample, bounds) fig.set_size_inches(10, 10) .. image-sg:: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_004.png :alt: plot design of experiments :srcset: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_004.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 107-108 We see that this LHS is optimized in the sense that it fills the space more evenly than a non-optimized does in general. .. GENERATED FROM PYTHON SOURCE LINES 110-112 Sobol' low discrepancy sequence ------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 114-118 .. code-block:: Python dim = 2 distribution = ot.JointDistribution([ot.Uniform()] * dim) bounds = distribution.getRange() .. GENERATED FROM PYTHON SOURCE LINES 119-121 .. code-block:: Python sequence = ot.SobolSequence(dim) .. GENERATED FROM PYTHON SOURCE LINES 122-126 .. code-block:: Python samplesize = 2**5 # Sobol' sequences are in base 2 experiment = ot.LowDiscrepancyExperiment(sequence, distribution, samplesize, False) sample = experiment.generate() .. GENERATED FROM PYTHON SOURCE LINES 127-129 .. code-block:: Python samplesize .. rst-class:: sphx-glr-script-out .. code-block:: none 32 .. GENERATED FROM PYTHON SOURCE LINES 130-134 .. code-block:: Python subdivisions = [2**2, 2**1] fig = otv.PlotDesign(sample, bounds, subdivisions) fig.set_size_inches(6, 6) .. image-sg:: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_005.png :alt: plot design of experiments :srcset: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_005.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 135-138 We have elementary intervals in 2 dimensions, each having a volume equal to 1/8. Since there are 32 points, the Sobol' sequence is so that each elementary interval contains exactly 32/8 = 4 points. Notice that each elementary interval is closed on the left (or bottom) and open on the right (or top). .. GENERATED FROM PYTHON SOURCE LINES 140-142 Halton low discrepancy sequence ------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 144-148 .. code-block:: Python dim = 2 distribution = ot.JointDistribution([ot.Uniform()] * dim) bounds = distribution.getRange() .. GENERATED FROM PYTHON SOURCE LINES 149-151 .. code-block:: Python sequence = ot.HaltonSequence(dim) .. GENERATED FROM PYTHON SOURCE LINES 152-153 Halton sequence uses prime numbers 2 and 3 in two dimensions. .. GENERATED FROM PYTHON SOURCE LINES 153-157 .. code-block:: Python samplesize = 2**2 * 3**2 experiment = ot.LowDiscrepancyExperiment(sequence, distribution, samplesize, False) sample = experiment.generate() .. GENERATED FROM PYTHON SOURCE LINES 158-160 .. code-block:: Python samplesize .. rst-class:: sphx-glr-script-out .. code-block:: none 36 .. GENERATED FROM PYTHON SOURCE LINES 161-165 .. code-block:: Python subdivisions = [2**2, 3] fig = otv.PlotDesign(sample, bounds, subdivisions) fig.set_size_inches(6, 6) .. image-sg:: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_006.png :alt: plot design of experiments :srcset: /auto_reliability_sensitivity/design_of_experiments/images/sphx_glr_plot_design_of_experiments_006.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 166-169 We have elementary intervals in 2 dimensions, each having a volume equal to 1/12. Since there are 36 points, the Halton sequence is so that each elementary interval contains exactly 36/12 = 3 points. Notice that each elementary interval is closed on the left (or bottom) and open on the right (or top). .. _sphx_glr_download_auto_reliability_sensitivity_design_of_experiments_plot_design_of_experiments.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_design_of_experiments.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_design_of_experiments.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_design_of_experiments.zip `