From 8555e2eb4f4f64336bf84e9ad1175a2e2b3e8fa2 Mon Sep 17 00:00:00 2001 From: Liana RAMIANDRISOA Date: Wed, 4 May 2022 16:28:29 +0200 Subject: [PATCH] =?utf8?q?D=C3=A9coupage=20manuel=20en=20"s=C3=A9quence=20?= =?utf8?q?de=20calculs"=20=C3=A0=20discuter?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ReacteurNumerique_UQ/CasJouet_cath_OT.py | 33 +++++++++++++++++------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/ReacteurNumerique_UQ/CasJouet_cath_OT.py b/ReacteurNumerique_UQ/CasJouet_cath_OT.py index 398928c2..d92bc01e 100644 --- a/ReacteurNumerique_UQ/CasJouet_cath_OT.py +++ b/ReacteurNumerique_UQ/CasJouet_cath_OT.py @@ -1,6 +1,7 @@ #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') @@ -39,6 +40,7 @@ if __name__ == '__main__': #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 @@ -79,19 +81,30 @@ if __name__ == '__main__': 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) + -- 2.39.2