aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/projet.cpp27
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;