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 :

Matlab optimisation fmincon


Sujet :

MATLAB

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1
    Par défaut Matlab optimisation fmincon
    Bonjour à tous,
    Je suis nouveau sur ce forum et sur matlab aussi

    Mon problème consiste à trouver le polynôme y(x) qui minimise une intégrale en f(y(x)).dx entre bornes connues. j'ai donc écrit dans une macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function out=obj(x,A)
    
    aux=sqrt(1+polyval(polyder(A,x),x).^2);
    out=aux./(sqrt(20*(1-polyval(A,x)))+0.001);
    pour définir ma fonction f(y(x)). A est la matrice des coef du polynôme y

    Ensuite dans une autre macro j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function t=temps(A)
    
    x=0:0.01:1;
    t=quad(@(x) obj(x,A),0,1);
    pour calculer mon intégrale.
    et enfin dans le programme principal j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Aeq=zeros(2,4);
    
    Aeq(1,4)=1;
    for i=1:1:4;
        Aeq(2,i)=1;
    end;
        
    beq=[1 0]';
    
    
    [A,t]=fmincon(temps,zeros(4,1),[],[],Aeq,beq)
    où Aeq et beq permettent de définir ma contrainte d'optimisation (y(x) doit passer par 2 points imposés).

    Quand j'essaie de lancer fmincon dans matlab, il me demande de définir A. Or A est ma variable et je ne sais pas comment lui faire comprendre
    Si quelqu'un a la patience de m'expliquer le problème, je l'en remercie d'avance !

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Bonjour,

    ce qui est précisé dans la doc de fmincon :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    fun :
     
    The function to be minimized. fun is a function that accepts a vector x and returns a scalar f, the objective function evaluated at x. fun can be specified as a function handle for an M-file function
    x = fmincon(@myfun,x0,A,b)
     
     
    where myfun is a MATLAB function such as
    function f = myfun(x)
    f = ...            % Compute function value at x
    Donc dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [A,t]=fmincon(@temps,zeros(4,1),[],[],Aeq,beq)
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

Discussions similaires

  1. [Débutant] Matlab Optimisation Publicité
    Par sabkarl dans le forum MATLAB
    Réponses: 0
    Dernier message: 29/11/2011, 22h52
  2. Optimiser en non linéaire (fmincon)
    Par Klinnmas dans le forum MATLAB
    Réponses: 1
    Dernier message: 25/06/2009, 16h57
  3. Comment optimiser le calcul du gradient d'une image dans matlab
    Par MPEG4 dans le forum Traitement d'images
    Réponses: 19
    Dernier message: 28/04/2009, 18h36
  4. Matlab et optimisation linéaire
    Par Mouhsine2009 dans le forum MATLAB
    Réponses: 7
    Dernier message: 05/01/2009, 14h40
  5. Optimisation globale sous MATLAB
    Par ENSAM-ALAMI dans le forum MATLAB
    Réponses: 3
    Dernier message: 06/04/2008, 14h35

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