Instabilité de mon code MATLAB ?
Bonjour à tous,
J'ai un problème avec l'algorithme suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11
| vitesse=rand(4,1);
inertie=0.8;
essaim=4;
% Calcul des nouvelles vitesses de chaque particule :
for i=1:1:essaim
c1=rand(1);
c2=1-c1;
vitesse(i,1)=inertie*vitesse(i,1)
vitesse(i,1)=vitesse(i,1)+c1*(best_perso(i,1)-fitness(i,iteration+1))
vitesse(i,1)=vitesse(i,1)+c2*(best_voisinage(i,1)-fitness(i,iteration+1))
end |
Au moment où i=2, lors de l'application de la dernière formule, le vecteur entier est réinitialisé à 0. La formule n'est pas appliquée uniquement à la deuxième composante du vecteur vitesse ! :cry:
Pendant le calcul, les vecteurs ont les valeurs suivantes :
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
| best_perso =
1.0e+009 *
1.6850
1.7000
1.6951
1.6931
fitness =
1.0e+009 *
0.0000 1.6850
0.0000 1.7000
0.0000 1.6951
0.0000 1.6931
best_voisinage =
1.0e+009 *
1.6850
1.6850
1.6931
1.6850 |
Une idée de l'erreur qui peut réinitialiser l'intégralité de mon vecteur vitesse à 0 ?
Merci beaucoup pour votre aide, :P
Noëlie :mouarf: