Bonjour,
J'ai un modèle mathématique qui décrit l'évolution du trafic des véhicules dans un réseau routier.
J'ai essayé d le testé pour le cas d'une seule route, mais il me donne toujours 0 .
En fait j'ai développé un petit module en java qui traduit ce modèle
Le module est composé de deux classes : classe configuration.java et classe Traitement.java
Je veux connaître ou elle est l'erreur .
ci-joint l'article contenant les détails du modèle. (jain1994.pdf)
Voilà les classes :
calsse Configuration.java
classe Traitement.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 package mgcc.classes; public class Configuration { public static final double LAMPDA = 0.055555556; public static final double L = 400; public static double N =2; public static double k = 0.1375; public static double vitesse = 100; }
Je vous remercie pour vos réponses en avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 package mgcc.classes; public class Traitement { static double lampda = Configuration.LAMPDA; static double l = Configuration.L; static double k = Configuration.k; static double n = Configuration.N; static double a = Configuration.vitesse; static double ro = (calculCapacite()*l*lampda)/a; static double c; public static void main(String[] args){ System.out.println("debut"); System.out.println(calculP0()); System.out.println("------------------"); /*System.out.println("E"+calculE()); System.out.println("TM"+ tempMoyenne());*/ System.out.println(calculCapacite()); System.out.println("ro = " + ro ); System.out.println("Fin"); } public static double calculCapacite(){ c = l*n*k; return c; } public static double calculP0(){ double p = 1; double c = calculCapacite(); for (int i = 1; i<=c ; i++){ p = p + part(i); } System.out.println("P0"+p); return 1/p; } public static double part(int i){ double c = calculCapacite(); double numerateur = Math.pow((c*lampda*l)/a, i); System.out.println(numerateur); double denominateur = 1; for(int j = 1;j <= i; j++){ denominateur = denominateur*(j*((c+1-j)/c)); } return numerateur/denominateur; } public static double calculPn(double n){ double c = calculCapacite(); double numerateur = Math.pow((lampda*l)/a, n); double denominateur = 1; for(int j = 1;j <= n; j++){ denominateur *= (j*((c+1-j)/c)); } //System.out.println("Pn"+(numerateur/denominateur)*calculP0()); return (numerateur/denominateur)*calculP0(); } public static double calculE(){ double c = calculCapacite(); double e = 0; for(int n=0;n<=c;n++ ){ e += n*calculPn(n); } return e; } public static double tempMoyenne(){ double c = calculCapacite(); double e = calculE(); double tm = e/(lampda*(1- calculPn(c))); return tm; } }
Partager