1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| // First model
// Temperature data example
matrix<double> mTemp (3, 3);
for (unsigned i = 0; i < mTemp.size1 (); ++ i)
for (unsigned j = 0; j < mTemp.size2 (); ++ j)
mTemp (i, j) = 3 * i + j;
// First node created
FunctionLinear lin1(0, 3.2);
KaryTree node1(lin1);
// Prior definition for parameter a
Uniform p1(0,100);
PriorFunctionForAModelParameter dt2 (p1, "a");
KaryTree node2 (dt2);
node1.AddAChild (node2);
// Prior definition for parameter b
Uniform p2 (0,100);
PriorFunctionForAModelParameter dt3 (p2, "b");
KaryTree node3 (dt3);
node1.AddAChild (node3);
BayesianModel model1 (node1);
pairDataAndModel tempModel (mTemp, model1);
// Second model
// Pluviometry
matrix<double> mRain (3, 3);
for (unsigned i = 0; i < mRain.size1 (); ++ i)
for (unsigned j = 0; j < mRain.size2 (); ++ j)
mRain (i, j) = 2 * i + j;
// First node created
FunctionLinear lin2(0, 3.2) ;
KaryTree node1_2(lin2) ;
// Prior definition for parameter a
Uniform p1_2(0,100) ;
PriorFunctionForAModelParameter dt2_2(p1_2, "a") ;
KaryTree node2_2(dt2_2) ;
node1_2.AddAChild(node2_2) ;
// Prior definition for parameter b
Uniform p2_2(0,100) ;
PriorFunctionForAModelParameter dt3_2(p2_2, "b") ;
KaryTree node3_2(dt3_2) ;
node1_2.AddAChild(node3_2) ;
BayesianModel model2(node1_2) ;
pairDataAndModel RainModel (mRain, model2) ;
//Reduction dimension method
std::vector<double> w {1.0, 2.0};
WeightedArithmeticMean wMean(w);
KaryTree wnode1 (wMean);
Uniform wp1 (0, 10);
PriorFunctionForAModelParameter wdt1 (wp1, "w1");
KaryTree wnode2 (wdt1);
wnode1.AddAChild (wnode2);
Uniform wp2 (0,10);
PriorFunctionForAModelParameter wdt2 (wp2, "w2");
KaryTree wnode3 (wdt2);
wnode1.AddAChild (wnode3);
BayesianModel reducModel(wnode1) ;
// Submodels
EnvDataNameAndModel modelMap = {{"temperature", tempModel}, {"pluviometry", RainModel} } ;
// Environmental model
BayesianEnvironmentalModel envModel (reducModel, modelMap); |