#module load openturns/1.14.0 (à charger avant)
import sys, os
import openturns as ot
+import numpy as np
#import matplotlib.pyplot as plt
sys.path.insert(0, 'cathWrap2')
#Définition du vecteur d'entrée à partir des arguments en ligne de commande
#P = 13 200 000 Pa & T = 300°C (rappel)
+ #
#E = [float(sys.argv[1]),float(sys.argv[2])]
#Evaluation avec openturns
fct_ot_def = ot.MemoizeFunction(fct_ot_def)#facultatif, pour consultation historique
random_S = ot.CompositeRandomVector(fct_ot_def,random_loi_E)
- #Obtention d'une sortie échantillonnée
- ech_S = random_S.getSample(2)
- mc_1_S = ech_S.computeMean()
- mc_2_S = ech_S.computeStandardDeviation()
-
- #Obtention d'une sortie de type Taylor/Cumul quadratique
+ #1-Obtention d'une sortie de type Taylor/Cumul quadratique
taylor_S = ot.TaylorExpansionMoments(random_S)
taylor_1_S = taylor_S.getMeanFirstOrder()
taylor_2_S = taylor_S.getCovariance()
-
+ print("Taylor (cumul quadratique) : ")
+ print("moyenne = ", taylor_1_S)
+ print("variance = ", taylor_2_S)
+
+ #2-Obtention d'une sortie de type Monte-Carlo
+ # entrées échantillonnées (préparant la distribution sur les entrées)
+ nb_noeuds_mc = 3
+ taille_size_mc = 11
+ array_S_mc = np.array([[0]])
+ for i in range(nb_noeuds_mc):
+ experiment = ot.MonteCarloExperiment(loi_E,taille_size_mc)
+ sample_E = experiment.generate()
+ sample_S_mc = fct_ot_def(sample_E)
+ array_S_mc = np.concatenate((array_S_mc,np.array(sample_S_mc)), axis = 0)
+ ech_S_mc = ot.Sample(array_S_mc[1::])
+ print("Monte-Carlo : ")
+ print("moyenne Monte-Carlo = ",ech_S_mc.computeMean())
+ print("variance Monte-Carlo = ",ech_S_mc.computeVariance())
+
#Obtention d'une sortie dépassement de seuil avec Monte-Carlo
#non retenue dans les fonctionnalités prioritaires
- #print("tirages aléatoires de S = ", ech_S)
- print("moyenne = ",mc_1_S," ou", taylor_1_S)
- print("variance = ",mc_2_S," ou", taylor_2_S)
+