diff options
| author | Bertrand <bertrand.horel@gmail.com> | 2016-04-21 13:13:25 +0200 |
|---|---|---|
| committer | Bertrand <bertrand.horel@gmail.com> | 2016-04-21 13:13:25 +0200 |
| commit | 07aa7631a8128f66c1e132ce30000bb506c683ea (patch) | |
| tree | a7fcb7662d0f8639ac30e9c1af05098fdf6353b8 /src | |
| parent | 778a4f66c76a02a2c800e0d4bb8b05a03b14497f (diff) | |
| download | projet_C++-07aa7631a8128f66c1e132ce30000bb506c683ea.tar.gz | |
modif exemple2_rqmc
Diffstat (limited to 'src')
| -rw-r--r-- | src/projet.cpp | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/projet.cpp b/src/projet.cpp index 241ab0b..16aca2b 100644 --- a/src/projet.cpp +++ b/src/projet.cpp @@ -112,25 +112,25 @@ std::vector<double> normalize (std::vector<double> mu) { return data; } -void exemple2_rqmc(int d) { - asian_option A(0.05, 1.0, 50.0, 0.1, 45,true); +vector< vector<double> > exemple2_rqmc(int d) { int N= 10000; - - std::vector<double> result(3); - result = monte_carlo(100, quasi_mean<asian_option, sobol> (N, d, A)); + double r = 0.05; + double T = 1.0; + double S0 = 50; + double V = 0.1; + vector< vector<double> > data(3); + vector<double> K = {45, 50, 55}; for(int i =0; i<3; i++){ - std::cout<<result[i]<<std::endl; - } - - std::vector<double> result2(3); - result2 = monte_carlo(100, quasi_mean<asian_option, halton> (N, d, A)); + asian_option A(r, T, S0, V, K[i], true); + data[i] = monte_carlo(100, quasi_mean<asian_option, sobol> (N, d, A));} for(int i =0; i<3; i++){ - std::cout<<result2[i]<<std::endl; + std::cout<<data[i][0]<<std::endl; } + return data; }; int make_table1(vector< vector<double> > data1, vector< vector<double> > data2) { - std::fstream fs("doc/table.tex", std::fstream::out);; + std::fstream fs("doc/table.tex", std::fstream::out); fs<<R"(\begin{tabular}{|r|rr|rr|c|})"<<std::endl; fs<<R"(\hline)"<<endl; fs<<"N"<<" & "<<R"($\mu_{strat}$)"<<" & "<<R"($\mu_{rqmc}$)"<<" & "<<R"($\textrm{IC}_{strat}$)"<<" & "<<R"($\textrm{IC}_{rqmc}$)"<<" & "<< R"($\textrm{IC}_{strat}/\textrm{IC}_{rqmc}$)"<<R"(\\ \hline)"<<std::endl; @@ -144,6 +144,7 @@ int make_table1(vector< vector<double> > data1, vector< vector<double> > data2) return 0; } + int main() { init_alea(2); @@ -153,7 +154,7 @@ int main() //~ cout<<"Randomised quasi Monte-Carlo sur l'exemple 1 de la normale"<<endl; //~ vector< vector<double> > data2 = exemple1_rqmc(); //~ make_table1(data1, data2); - + exemple2_rqmc(16); exemple2_stratified(16); return 0; |
