Bonjour à tous,
Voilà, j'essaye de fabriquer un programme qui va étudier le comportement d'un modèle en faisant varier différents paramètres de ce modèle: epsilon et kappa. En gros, je vais faire varier epsilon de 0 à 0.5 par pas de 0.001, et kappa de 2 à 500 avec des pas aléatoires de moyenne 1 (pour différentes raisons, je ne veux pas que kappa prenne des valeurs trop régulières).
Le programme est le suivant, j'ai enlevé tout ce qui concerne le modèle, parce que c'est la promenade dans l'espace de phase qui pose problème:
Pour moi, ce programme devrait me donner toutes les paires possibles de epsilon et kappa, avec un 0 après. Mais quand je lance ça sur mon pc, les kappa commencent par augmenter comme il faut, mais ensuite, ils diminuent et deviennent négatifs. Je ne comprends pas du tout, mon programme semble juste, non ?Code:#include <iostream> #include <math.h> #include <time.h> #include <stdlib.h> #include <fstream> using namespace std; int main () { int tmax=10000; int k, t; double result; double epsilon; double kappa; ofstream myfile; myfile.open ("data1.csv"); epsilon = 0; while (epsilon < 0.5) { kappa = 2+rand()/(double)(RAND_MAX); while (kappa <= 500) { result = 0; cout << epsilon << "," << kappa << "," << result << endl; kappa = kappa +2*rand()/(double)(RAND_MAX); }; epsilon = epsilon + 0.001; }; };
Toute aide est bienvenue, même pour optimiser le programme. Accessoirement, je suis novice c++.
A+
Ising
-----