From 22358d075a89d44dbe8ef901a0a42d2c3f8e285a Mon Sep 17 00:00:00 2001 From: Bertrand Date: Sat, 6 Feb 2016 19:32:06 +0000 Subject: encapsulage du stratified sampling --- stratified_sampling.cpp | 130 +++++++++++++----------------------------------- 1 file changed, 35 insertions(+), 95 deletions(-) (limited to 'stratified_sampling.cpp') diff --git a/stratified_sampling.cpp b/stratified_sampling.cpp index 8f408cc..c03d447 100644 --- a/stratified_sampling.cpp +++ b/stratified_sampling.cpp @@ -1,31 +1,6 @@ -#include -#include -#include -#include "rtnorm.hpp" -#include -#include - -#include +#include "stratified_sampling.hpp" #include - -//--génération quantiles-- -std::vector quantile_norm(int n, double sigma){ - std::vector q(n); - for (int i=0; i q; - q = quantile_norm(n, sigma); - std::pair p; - p = rtnorm (gen, q[i], q[i+1], mu, sigma); - return p.first; - } +#include std::pair mean_var( std::vector r){ std::pair p; @@ -39,75 +14,40 @@ std::pair mean_var( std::vector r){ return p; } //actualisation du nombre de tirages à faire par strates -std::vector update_sampling (std::vector p, - std::vector sigma, int Nk) { - int I = p.size(); - std::vector M(I, 1); // notre vecteur final à retourner - std::vector m(I, 0); //le vecteur des m_i idéals - - if (sigma.empty()) { - for (int i=0; i q; - q = quantile_norm(10, 1); - - - std::pair p; - std::pair mv; - //number of classes - int I = 10; - //number of samples - int N = 10000; - std::vector r(N); - double a; - for (int i=0; i +void stratified_sampling::update(int Nk) { + int I = p.size(); + //reinitialistation du vecteur M du nombre de tirages par strates + if (M.empty()) { + M.resize(I,1); + } + else { + for(int i=0; i k; - std::vector z = {(double)1/3,(double)1/3,(double)1/3}; - std::vector sigma = {0.1, 0.4, 0.3}; - k = update_sampling(z, sigma, 10000); - for (int j=0; j m(I, 0); //le vecteur des m_i idéals - + if (sigma.empty()) { + for (int i=0; i