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

MATLAB Discussion :

algorithmes génétiques et optimisation


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Par défaut algorithmes génétiques et optimisation
    Bonjour,

    Je cherche à implémenter une fonction objective pour un problème d'optimisation. Pour résumer je cherche à minimiser un paramètre qui comprend des variables calculées par un autre programme et réinsérées dans Matlab. Seulement j'ai un problème lors de la définition de la fonction : je veux minimiser une fonction qui est un simple paramètre (erreur par rapport à une valeur de consigne). J'ai donc un problème lors de la définition de la fonction dans un fichier obj.m séparé car je ne trouve pas le moyen de faire comprendre à Matlab que la fonction est une fonction (temporairement) constante. En effet on est obligé de définir une fonction pour l'utilisation du module optimisation. Ma variable "erreur" existe dans un autre fichier .m et je voudrais faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    function f= obj(x) % ou bien f=obj()
    f=erreur;
    Çane marche pas en faisant f(erreur).

    Seulement comme ce n'est pas prévu pour une telle utilisation la variable erreur est inconnue par la fonction, ce qui fait que je ne peux pas la définir. Est-ce que quelqu'un peut m'aider?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Je ne suis pas sure de tout comprendre de la problématique mais pourquoi ne passes-tu pas la variable "erreur" en paramètre de ta fonction obj (f étant la variable de sortie) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function f=obj(x)
    f=x;
    Puis pour l'appel, erreur étant connue à ce moment-là :

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Par défaut
    ok merci, mais en fait pour l'optimisation tu dois définir une fonction à minimiser, et dans mon cas c'est pas une fonction du style f(x)=x(1)^2-x(2), mais des paramètres externes. Effectivement c'est vrai que mon problème n'est pas clair mais j'ai beaucoup de peine à le simplifier...

    En fait j'aimerais minimiser un paramètre erreur qui est "mesuré" à chaque fois dans un programme de simulation par élément finis (femm) commandé depuis matlab. Ce paramètre devient une variable matlab et ensuite le but est d'agir sur un autre paramètre pour minimiser l'erreur. C'est mieux?

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/09/2011, 15h47
  2. Optimisation par algorithme génétique
    Par k.emna dans le forum Mathématiques
    Réponses: 9
    Dernier message: 15/04/2011, 13h28
  3. optimisation de la logique floue par les algorithmes génétiques
    Par mimi_14 dans le forum Intelligence artificielle
    Réponses: 5
    Dernier message: 15/12/2010, 13h15
  4. Réponses: 1
    Dernier message: 06/06/2010, 10h33
  5. Optimisation en utilisant les algorithmes génétiques
    Par nourette dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 30/03/2010, 12h18

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