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 :

Utilisation de la toolbox d'optimisation


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Utilisation de la toolbox d'optimisation
    Bonjour,

    Je suis depuis un long moment bloquée sur un souci de programmation dans Matlab.

    Je cherche a obtenir les paramètres x(1), x(2) et x(3) d'une fonction de la forme :

    y(i) = x(1).*exp (((a(i)-x(2)).^2)./x(3).^2)

    Sachant que la valeur de y évolue avec celle de a (un vecteur que je connais). J'utilise pour cela une boucle for.

    La valeurs des paramètres x dépendent d'autres valeurs qui évoluent à chaque nouvelle valeur de a.

    De plus le modele repose sur une l'integration d'une équation contenant y dans la formule principale et dans les bornes d'integrations. Cette équation est tres grande mais je pourrais la simplifier ainsi :
    Soit f l'équation à intégrer : f (i) = f(y(i))
    Soit nc la borne supérieure d'integration : nc(i) = nc(y(i))
    Soit ns la borne inferieure d'integration, dépendant du nc de l'iteration precédente : ns (i) = ns (nc(i-1))

    N(i) = quad ( f, nc, ns )

    L'objectif du probleme est d'obtenir les valeurs x(1), x(2) et x(3) tel que sum(N) = 1e6 (soit un chiffre connu). Je suis en mesure d'imposer des intervalles dans lesquels se situent les differents x.

    Je souhaitais utiliser des fonctions Matlab tels que fminimax, ou fmincon. Mais je n'y arrive pas puisque l'ensemble de mes equations dépendent de a(i). Je ne peux donc pas faire des ''function'' et les fonctions d'optimisation ne marche pas en cumulant le a(i) et l'integration. Pour le moment j'utilise une boucle pour tester divers valeurs de x(1), x(2) et x(3). Mais le calcul est tres tres long et je dois me restreindre a des intervals tres petits.

    Je mets en piece jointe l'ensemble une description du probleme avec les equations.

    D'avance un grand merci a celui ou celle qui sera en mesure de me débloquer.

    Helene
    Images attachées Images attachées

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Est-ce que tu as essayé d'utiliser les anonymous functions?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Oui justement je ne fonctionne qu'avec les fonctions anonymes.
    Effectivement avec je peux utiliser sans souci une boucle for avec ma fonction.

    Mais pour utiliser des fonctions d'optimisation, il me semble que seules les variables a optimiser doivent etre mises dans @(--).

    Le probleme c'est que je dois integrer cette fonction par rapport a une autre variable, pour utiliser ensuite un ''quad()''.

    Je ne suis pas capable du coup de définir mes variables à optimiser comme des inconnus.

    Est-ce que l'on peut utiliser un quad(f,n_min,n_max) avec une fonction anonyme du type f = @(n, x)..... ?

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Oups... avec un peu de recherche... J ai trouvee la reponse à ma question precedente. Oui c est tout a fait possible.

    Mais mon probleme est loin d etre resolu....

Discussions similaires

  1. utilisation de robotics toolbox
    Par sajaya dans le forum MATLAB
    Réponses: 0
    Dernier message: 23/10/2012, 23h59
  2. Utilisation de la toolbox gatool
    Par amalis2011 dans le forum MATLAB
    Réponses: 10
    Dernier message: 04/05/2011, 21h42
  3. Utilisation de la toolbox fuzzy logic
    Par aizen dans le forum Simulink
    Réponses: 0
    Dernier message: 11/05/2009, 15h55
  4. utilisation de la toolbox SOM
    Par tsaint dans le forum MATLAB
    Réponses: 4
    Dernier message: 01/12/2008, 10h48

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