1 pièce(s) jointe(s)
Méthode Prédateur - Proie
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:
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);
}
} |