Bonjour
je voudrais créer un mouvement brownien, qui possède un grand nombre de points, supérieur à 10^7.
J'ai fait le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 vector<double> brownien; for(long i=1;i<pow(10,7.0);i++){ a=brownien[i-1]+pow((double)i/res,0.5)*norm_dist.operator()<boost::lagged_fibonacci19937>(engine); brownien.push_back(a); }
mais dès qu'on passe à 10^8, le programme sature.
Ensuite, je me suis dit qu'on va créer un autre vecteur, à la suite du premier, comme ceci:
mais bien sur cela plante, le nombre maximal de pointeurs à été atteint. Alors je ne vois pas du tout comment résoudre le pb. J'aimerais bien passer à 10^9 points, pour faire des calculs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 vector<double> brownien2; brownien2.push_back(brownien[pow(10,7.0)-1]+pow((double)(pow(10,7.0))/res,0.5)*norm_dist.operator()<boost::lagged_fibonacci19937>(engine)); for(long i=pow(10,7.0)+1;i<pow(10,8.0);i++){ a=norm_dist.operator()<boost::lagged_fibonacci19937>(engine); brownien2.push_back(a); }
merci
Partager