#include #include #include #include #include "stratified_sampling.hpp" #include #include #include "opti.hpp" #include "option.hpp" using namespace std; void exemple1_stratified() { vector q = quantile_norm(10, 1); vector p(10, 0.1); vector rvar; rvar.push_back(gaussian_truncated(GSL_NEGINF, q[0])); for (int i=1; i<10; i++){ rvar.push_back(gaussian_truncated(q[i-1], q[i])); }; stratified_sampling S(p,rvar); S.draw(100); double x = 1.64*S.estimator().second; cout<<"l'estimateur de la moyenne est :"< mu(d); mu = argmax(0.05, 1.0, 50, 0.1, 45, d); double norm_mu = 0; std::vector u(d); for(int i=0; i q = quantile_norm(100, 1); vector p(100, 0.01); asian_option A(0.05, 1.0, 50, 0.1, d, 45); exponential_tilt G(mu, A); typedef compose_t, multi_gaussian_truncated> tilted_option; std::vector X; X.push_back(compose(G, multi_gaussian_truncated(GSL_NEGINF,q[0], u))); for(int i=1; i<100; i++) { X.push_back(compose(G, multi_gaussian_truncated(q[i-1],q[i], u))); } for(int i=0; i<100; i=i+10){ std::cout< S(p, X); S.draw(1000); cout<<"l'estimateur de la moyenne est :"< result(3); result = monte_carlo(100, quasi_mean (N, d, A)); for(int i =0; i<3; i++){ std::cout< result2(3); result2 = monte_carlo(100, quasi_mean (N, d, A)); for(int i =0; i<3; i++){ std::cout<)> f = [](std::vector x){return x[0];}; std::vector result(3); result = monte_carlo (100, quasi_mean (N, 1, f)); for(int i =0; i<3; i++){ std::cout<