diff options
Diffstat (limited to 'src/projet.cpp')
| -rw-r--r-- | src/projet.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/projet.cpp b/src/projet.cpp index 311c5bb..de75fd1 100644 --- a/src/projet.cpp +++ b/src/projet.cpp @@ -48,11 +48,12 @@ vector< vector<double> > exemple1_stratified() { vector< vector<double> > exemple1_rqmc(){ int I = 100; - vector<int> N = {3, 13, 113, 313}; //les N choisis pour que les NI soient égaux aux N de l'exemple 1 stratified_sampling + vector<int> N = {3, 13, 113, 313}; //les N choisis pour que les N*I soient égaux aux N de l'exemple 1 stratified_sampling first f; //comme quasi_gaussian retourne un vecteur, on doit composer avec f pour avoir le double QG()[0] vector< vector<double> > data (4); for(size_t i =0; i<N.size(); i++){ - data[i] = monte_carlo (I, quasi_mean<struct first, sobol> (N[i], 1, f)); + quasi_gaussian<sobol> QG(1); + data[i] = monte_carlo (I, mean(N[i], compose(f, QG))); } cout<<"moyenne"<<"\t\t"<<"sigma"<<"\t\t"<<"taille IC"<<endl; for(int i =0; i<3; i++){ @@ -112,7 +113,7 @@ vector <vector<double> > exemple2_stratified (int d, bool call = true){ } vector< vector<double> > exemple2_rqmc(int d, bool call = true) { - int N= 10000; + int N = 10000; double r = 0.05; double T = 1.0; double S0 = 50; @@ -122,7 +123,8 @@ vector< vector<double> > exemple2_rqmc(int d, bool call = true) { int I=100;//la taille du vrai Monte-Carlo for(int i =0; i<3; i++) { asian_option A(r, T, S0, V, K[i], call); - data[i] = monte_carlo(I, quasi_mean<asian_option, sobol> (N, d, A)); + quasi_gaussian<sobol> QG(d); + data[i] = monte_carlo(I, mean(N, compose(A, QG))); } return data; }; @@ -170,7 +172,7 @@ int main() init_alea(0); cout<<"comparaison stratified sampling/RQMC sur l'example 1\n"<<endl; make_table1(exemple1_stratified(), exemple1_rqmc()); - + vector< vector<double> > data1 = exemple2_stratified(16); vector< vector<double> > data2 = exemple2_rqmc(16); vector< vector<double> > data3 = exemple2_stratified(64); |
