Thanks Regis!! I made a lousy mistake :( I will be sure to contribute more.
Cheers, Doug On Fri, Oct 7, 2016 at 12:00 PM, regis lebrun < [email protected]> wrote: > If you sample a 4-D Normal distribution, you get a 4-D sample ;-)! If you > replace sample1 = myDistribution.getSample(10) by output.getSample(10), > then you get all the zeros you want. > > A++ > > Régis LEBRUN > > > > >________________________________ > > De : Douglas Long <[email protected]> > >À : regis lebrun <[email protected]> > >Cc : "[email protected]" <[email protected]> > >Envoyé le : Vendredi 7 octobre 2016 19h10 > >Objet : Re: [ot-users] Python Function > > > > > > > >Thanks for your response. > > > > > >here is the modified code. In theory if Y = 0 this code should return > zero for each dimension in the sample, but for some reason it is returning > numbers <> 0 > >import openturns as ot > > > > > >def a_function(X): > >return [(X[0] + X[1] +X[2] + X[3]) * Y] > > > >if __name__ == "__main__": > >ot.RandomGenerator.SetSeed(0) > >Y = 0 > > > >myFunction = ot.PythonFunction(4,1, a_function) > >myDistribution = ot.Normal([50.0, 1.0, 10.0, 5.0], [1.0]*4, > ot.IdentityMatrix(4)) > > > >vect = ot.RandomVector(myDistribution) > >output = ot.RandomVector(myFunction, vect) > > > >sample1 = myDistribution.getSample(10) > >print(sample1) > > > > > >On Fri, Oct 7, 2016 at 11:02 AM, regis lebrun <regis_anne.lebrun_dutfoy@ > yahoo.fr> wrote: > > > >Hi, > >> > >> > >>I don't understand your construction: the formula defining your Python > function does not involve Y, so what is the meaning of a_function(Y=cov)? > What you can do: > >>+ make the formula defining a_function depends on Y > >>+ be sure that Y is defined before to call. A simplified version of your > example could be: > >> > >> > >>def a_function(X): > >>return [Y * X[0]] > >> > >>f = PythonFunction(1, 1, a_function) > >>Y = 0.5 > >>print f([1.0]) > >> > >>For more complexe situations, you may have a look at the > OpenTURNSPythonFunction class here: > >>http://openturns.github.io/ user_manual/_generated/ openturns. > OpenTURNSPythonFunction.html? highlight=openturnspython# openturns. > OpenTURNSPythonFunction > >> > >>You can also define a first function of dimension d+1, one of the input > being Y, then construct a parametric function based on this first function > to fix the value of Y, see the following constructor: > >>NumericalMathFunction( function, indices, referencePoint, > parametersSet=True) > >> > >>here: > >> > >>http://openturns.github.io/ user_manual/_generated/ openturns. > NumericalMathFunction.html? highlight= numericalmathfunction > >>Best regards, > >> > >>Régis LEBRUN > >> > >>>_____________________________ ___ > >>> De : Douglas Long <[email protected]> > >>>À : [email protected] > >>>Envoyé le : Vendredi 7 octobre 2016 18h42 > >>>Objet : [ot-users] Python Function > >> > >>> > >>> > >>> > >>>Hi Folks, > >>> > >>> > >>>anyone know how to submit constants or coefficients into a python > function. > >>>example. I am trying to submit the coefficient as Y below. > >>> > >>> > >>>I have tried other methods as well with a composite, composed > distribution, and several others. any help would be appreciated > >>> > >>> > >>>import openturns as ot > >>> > >>> > >>>def a_function(X): > >>>return [(X[0] + X[1] +X[2] + X[3]) * X[4]] > >>> > >>>if __name__ == "__main__": > >>>ot.RandomGenerator.SetSeed(0) > >>>cov = 0.0017 > >>> > >>>myFunction = ot.PythonFunction(5,1, a_function(Y=cov)) > >>>myDistribution = ot.Normal([50.0, 1.0, 10.0, 5.0], [1.0]*4, > ot.IdentityMatrix(4)) > >>> > >>>vect = ot.RandomVector( myDistribution) > >>> > >>>output = ot.RandomVector(myFunction, vect) > >>> > >>>sample1 = myDistribution.getSample(10) > >>>print(sample1) > >>>_____________________________ __________________ > >>>OpenTURNS users mailing list > >>>[email protected] > >>>http://openturns.org/mailman/ listinfo/users > >>> > >>> > >>> > >> > > > > > > > >-- > > > >Douglas Long > >[email protected] > > > >_______________________________________________ > >OpenTURNS users mailing list > >[email protected] > >http://openturns.org/mailman/listinfo/users > > > > > > > -- Douglas Long [email protected]
_______________________________________________ OpenTURNS users mailing list [email protected] http://openturns.org/mailman/listinfo/users
