aboutsummaryrefslogtreecommitdiffstats
path: root/rqmc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rqmc.cpp')
-rw-r--r--rqmc.cpp40
1 files changed, 33 insertions, 7 deletions
diff --git a/rqmc.cpp b/rqmc.cpp
index 40fd8ad..e8b98fc 100644
--- a/rqmc.cpp
+++ b/rqmc.cpp
@@ -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;
}