diff options
Diffstat (limited to 'rqmc.cpp')
| -rw-r--r-- | rqmc.cpp | 40 |
1 files changed, 33 insertions, 7 deletions
@@ -1,14 +1,40 @@ #include "low_discrepancy.hpp" #include <vector> +#include <gsl/gsl_cdf.h> +#include "var_alea.hpp" + + +double frac_part(double x){ + return x - floor(x); +} + +double mean_rqmc(int N, double X) { + sobol s(1); + double sum = 0; + for(int i=0; i<N; i++){ + sum +=gsl_cdf_gaussian_Pinv (frac_part(X+s()[0]), 1); + } + return sum/N; +} int main() { - sobol s(3); - std::vector<double> q; - std::vector<double> a; - q = s(); - a = s(); - for(int i=0; i<3; i++){ - std::cout<<a[i]<<std::endl; + init_alea(0); + int I=100; + int N= 10000; + uniform U; + double m = 0; + double s = 0; + double temp; + + for(int i=0;i<I;i++){ + temp = mean_rqmc(N,U()); + m+=temp; + s+=temp*temp; } + m = m/N; + s = s/N - m*m; + + std::cout<<"espérance "<<m<<" taille de l'IC "<<sqrt(s)*1.64/10<<std::endl; + return 0; } |
