Note
Click here to download the full example code
Create mixed deterministic and probabilistic designs of experimentsΒΆ
In this example we build a mixed deterministic and probabilistic design of experiments in which levels are defined from the probabilistic distribution of the input random vector. More precisely, we show how to create an Axial design of experiments whose points are updated so that they match the mean and variance of the distribution.
The example here is an axial design of experiments where levels are proportional to the standard deviation of each component of the random input vector, and centered on the mean vector of the random input vector.
from __future__ import print_function
import openturns as ot
import math as m
import openturns.viewer as viewer
from matplotlib import pylab as plt
ot.Log.Show(ot.Log.NONE)
Define the underlying random vector.
dim = 2
R = ot.CorrelationMatrix(dim)
distribution = ot.Normal([2.0, 3.0], [0.5, 2.0], R)
rv = ot.RandomVector(distribution)
Define the structure of the design of experiments.
levels = [1.0, 2.0, 3.0]
experiment = ot.Axial(dim, levels)
sample = experiment.generate()
Scale the design proportionnally to the standard deviation of each component.
covariance = rv.getCovariance()
scaling = [m.sqrt(covariance[i, i]) for i in range(dim)]
print('scaling=', scaling)
sample *= scaling
Out:
scaling= [0.5, 2.0]
Center the design around the mean point of the distribution.
center = rv.getMean()
print('center=', center)
sample += center
Out:
center= [2,3]
Draw the design as well as the distribution iso-values.
graph = distribution.drawPDF()
doe = ot.Cloud(sample)
doe.setColor('red')
doe.setLegend('design')
graph.add(doe)
view = viewer.View(graph)
plt.show()
Total running time of the script: ( 0 minutes 0.184 seconds)