IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Instabilité de mon code MATLAB ?


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Instabilité de mon code MATLAB ?
    Bonjour à tous,

    J'ai un problème avec l'algorithme suivant :

    Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

    Pendant le calcul, les vecteurs ont les valeurs suivantes :

    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
    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,
    Noëlie

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Points : 692
    Points
    692
    Par défaut
    Bonjour Noëlie.
    Tu donnes fitness comme étant un tableau de rang 1 de dimension 4. Or l'appel :
    montre qu'il s'agit d'un tableau de rang 2 de dimension 4x?. Il y aurait un débordement.

Discussions similaires

  1. Mon code n'est pas interprété !
    Par korriganez dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2006, 16h46
  2. [Exécutable]puis je creer un executable a partir de mon code ?
    Par youpileouf dans le forum Général Java
    Réponses: 3
    Dernier message: 17/06/2005, 10h15
  3. Optimiser mon code ASP/HTML
    Par ahage4x4 dans le forum ASP
    Réponses: 7
    Dernier message: 30/05/2005, 11h29
  4. Réponses: 1
    Dernier message: 21/02/2005, 13h40
  5. [langage] algo de bissection dans mon code
    Par killy dans le forum Langage
    Réponses: 5
    Dernier message: 19/01/2004, 19h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo