Bonjour,
J'ai quelques soucis dans l'écriture d'une telle méthode. En effet,
Ce modèle prédateur-proie définit: H [n] comme le nombre de lièvres et L [n], le nombre de lynx au temps n
Le modèle de Lotka-Volterra est définie par la formule suivante:
H [n + 1] =H [n] * (1 + a1 - a2 * L [n])
L [n + 1] = L [n] * (1 - b1 + b2 * H [n])
Le nombre initial de lièvres est preyPred[0] et celui de lynx est preyPred[1]
a et b sont 2 tableaux tels que a[0]=a1, a[1]=a2; b[0]=b1 et b[1]=b2.
n est la période à laquelle nous voulons prédire l'avenir des lièvres et des lynxs
Le problème peut-être résolu avec une boucle while ou for
La méthode doit retourner le tableau "preyPred", d'une manière à ce qu'il contienne:
(H [n]) dans preyPred [0] et (L [n]) dans preyPred [1].
Voici mon code, il ne fonctionne pas, pourriez vous me dire ce qui ne va pas? Merci d'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 public class PredateurProie { private static double a1; private static double a2; private static double b1; private static double b2; static double[] preyPredLV(double[] preyPred, double[] a, double[] b, int n){ double H[]={preyPred[0]}; double L[]={preyPred[1]}; a[0]=a1; a[1]=a2; b[0]=b1; b[1]=b2; // while(n>=0){ H[n+1]=H[n] * (1 + a1 - a2*L[n]); L[n+1]=L[n] * (1 + b1 + b2*H[n]); //} return preyPred; } public static void main(String[] args) { double [] preyP={300,20}; int n=100; double [] a= {0.1, 0.01}; double [] b= {0.01, 0.00002}; double[] p= preyPredLV(preyP,a,b,n); System.out.println(p); } }
Partager