On Mon, 06 Jun 2005 11:03:11 +0200 "Marie Capoulade" <mcapoulade@hotmail.com> wrote:
Bonjour,
J'ai supprimé toutes les règles de gestion dans ma base de données, il n'y a plus d'erreur par rapport à ca pour le moment dans les simulations. En revanche je n'arrive pas à mener une simulation jusqu'au bout, voici en pièce jointe ma base de donnée (Banyuls4) ainsi que le message d'erreur ci-dessous. Le métier "petit métier" est un métier avec des paramètres pris au hasard.
Bonjour, Je pense que soit le nombre de classes, soit le nombre de zones pour la population a ete modifié et donc que la matrice de changement de classe, n'a pas les bonnes dimensions. Le plus simple est d'aller dans l'interface des saisons, et de sauver la saison. Il faut le faire pour chaque saison de la pop. Mais je ne vois que des 0 dans la matrice, donc a priori elle est fausse. Il y a aussi dans l'equation de reproduction, une erreur. Il ne faut pas utilisé la variable fecondite qui n'existe plus il faut ecrire une jolie equation comme expliqué par Stephanie dans un ancien mail. """ Dans l'equation on dispose de: N: la matrice [classe, zonePop] des effectifs au mois de calcul pop: la population sur lequel on calcule classes: un objet List qui contient toutes les classes de la pop zones: un Objet List qui contient les zones de la pop prepro: la proportion de reproduction pour le mois de calcul mois: le mois de calcul zoneRepro: la list des zones de reproduction result: la matrice qu'il faut remplir pour creer un resultat c qui peut donner : r=ECMASCRIPT(# var eff = 0; // dans cette exemple on parcours la matrice entiere // ce n'est surement pas ce qu'il faut. Il ne faut // sans ne parcourir que les zoneRepro for(var ic=classes.iterator(); ic.hasNext();){ var c = ic.next(); for(var iz=zones.iterator(); iz.hasNext();){ var z = iz.next(); eff += N.getValue(c, z); } } // on met a jour la matrice resultat, qui servira // ensuite. Il ne faut pas oublier de multiplier // par prepro la valeur que l'on affecte a la matrice if(eff < 100){ for(var izr=zoneRepro.iterator(); izr.hasNext();){ var zr = izr.next(); result.setValue(zr, 12 * eff * prepro); } }else{ for(var izr=zoneRepro.iterator(); izr.hasNext();){ var zr = izr.next(); result.setValue(zr, 6 * eff * prepro); } } // on retourne une valeur qui ne sert a rien // puisque result sera utilisé. 0; #); r """ J'ai mis en piece jointe la base corrigée, donc il faut vérifier les matrices de changement d'age et l'equation de reproduction.
APRES CALCUL matrice de rejet 0 sar Sable:null matrice suivi = matriceCatchPerStrategyMet dimensions = [ 1,1,5,5, ] matrice = [ 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0011048098686822644,0.0,0.0,0.0,0.0,0.0011048098686822644,0.0,0.0,0.0,0.0,0.0011048098686822644,0.0, ] linearFactor = [ 25,25,5,1, ]
rollback fin du pas de temps la date:1 CALCULMOIS pop= sar Sable 6 juin 2005 10:57:08 - SEVERE - Erreur lors de l'appelle de la methode: Simul.simul 6 juin 2005 10:57:08 - WARNING - La simulation a échoué fin de simulation Mon Jun 06 10:57:11 CEST 2005: (Memoire libre/Memoire Total = 55006064/124796928)
-- Benjamin -------------------- email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii