From 61360cfad94f08b304a1a51af2e4f0de49c3b370 Mon Sep 17 00:00:00 2001 From: Bertrand Date: Thu, 21 Apr 2016 16:40:04 +0200 Subject: la table des put --- src/projet.cpp | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/projet.cpp b/src/projet.cpp index fb86414..7f6544a 100644 --- a/src/projet.cpp +++ b/src/projet.cpp @@ -76,7 +76,7 @@ std::vector normalize (std::vector mu) { } -vector > exemple2_stratified (int d){ +vector > exemple2_stratified (int d, bool call = true){ vector K = {45, 50, 55}; vector N = {100000, 400000, 500000}; int I = 100; //le nombre de strates @@ -91,7 +91,7 @@ vector > exemple2_stratified (int d){ for (size_t i=0; i < K.size(); i++){ vector mu = argmax(r, T, S0, V, K[i], d); std::vector u = normalize(mu); - asian_option A(r, T, S0, V, K[i], true); + asian_option A(r, T, S0, V, K[i], call); exponential_tilt G(mu, A); std::vector X; X.push_back(compose(G, multi_gaussian_truncated(GSL_NEGINF, q[0], u))); @@ -111,7 +111,7 @@ vector > exemple2_stratified (int d){ return data; } -vector< vector > exemple2_rqmc(int d) { +vector< vector > exemple2_rqmc(int d, bool call = true) { int N= 10000; double r = 0.05; double T = 1.0; @@ -121,7 +121,7 @@ vector< vector > exemple2_rqmc(int d) { vector K = {45, 50, 55}; 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], true); + asian_option A(r, T, S0, V, K[i], call); data[i] = monte_carlo(I, quasi_mean (N, d, A)); } return data; @@ -142,8 +142,8 @@ int make_table1(vector< vector > data1, vector< vector > data2) return 0; } -int make_table2(vector< vector > data1, vector< vector > data2, vector< vector > data3, vector< vector > data4) { - std::fstream fs("doc/table2.tex", std::fstream::out); +int make_table2(vector< vector > data1, vector< vector > data2, vector< vector > data3, vector< vector > data4, string table_name) { + std::fstream fs("doc/" + table_name, std::fstream::out); fs< > data1, vector< vector > data2, int N = 1000000; for (int i=0; i< 3; i++) { double ic_strat = 1.95996*sqrt(data1[i][2]/(double) N); - fs<<"16"<<" & "<< (int) (data1[i][0]) <<"&"<< data1[i][1] <<" & "< > data2 = exemple1_rqmc(); //~ make_table1(data1, data2); - + vector< vector > data1 = exemple2_stratified(16); vector< vector > data2 = exemple2_rqmc(16); vector< vector > data3 = exemple2_stratified(64); vector< vector > data4 = exemple2_rqmc(64); - make_table2(data1, data2, data3, data4); + make_table2(data1, data2, data3, data4, "table2.tex"); + vector< vector > data5 = exemple2_stratified(16, false); + vector< vector > data6 = exemple2_rqmc(16, false); + vector< vector > data7 = exemple2_stratified(64, false); + vector< vector > data8 = exemple2_rqmc(64,false); + make_table2(data5, data6, data7, data8, "table3.tex"); + return 0; -- cgit v1.2.3-70-g09d2