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 :

Programme d'une fonction matlab


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 61
    Par défaut Programme d'une fonction matlab
    bonjour,
    en effet je suis un débutant en programmation MATLAB,

    et j'ai voulu executer ce programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    A=[-1 -2 -2 ;1 2 2];
    b=[0;72];
    x0=[10;10;10];
    function f=myfun(x)
    f=-x(1)*x(2)*x(3);
    [x,fval]=fmincon(@myfun,x0,A,b)
    mais MATLAB me donne ce message
    A function declaration cannot appear within a script M-file.
    est ce que quelqu'un peut m'aider

  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
    Cela signifie que tu n'as pas le droit de définir de fonction dans un script.

    Le programme tu l'as lancé en ligne de commande ou écrit dans un fichier ?

    Pourquoi as-tu mis en plein milieu ?
    Que cherches-tu à faire ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 61
    Par défaut
    en fait,ce que je cherche c'est d'utiliser la fonction"fmincon",qui permet de chercher le minimum d'une fonction multivariable avec des contraintes,de A àZ.
    en commencant de la declaration de la fonction jusqu'à la solution.

    la fonction que je veux minimiser c'est :

    f(x)=-x1*x2*x3

    et les contraintes:

    -x1-2x2-2x3<= 0

    x1+2x2+2x3<= 72

  4. #4
    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
    Il faut donc définir ta fonction myfun dans une fonction à part entière en l'enregistrant dans un fichier qui s'appelle myfun.
    Et ton script ressemblera à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    A=[-1 -2 -2 ;1 2 2];
    b=[0;72];
    x0=[10;10;10];
    [x,fval]=fmincon(@myfun,x0,A,b)

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 61
    Par défaut
    comme tu m'a dis,j'ai crée un fichier à part je l'ai nomé myfun.m où j'ai mis le programme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    function f=myfun(x);
    f=-x(1)*x(2)*x(3);
    et dans l'ancien,j'ai gardé que ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    A=[-1 -2 -2 ;1 2 2];
    b=[0;72];
    x0=[10;10;10];
    [x,fval]=fmincon(@myfun,x0,A,b)
    et voilà l'erreur qu'il me donne:
    On line 4 ==> [x,fval]=fmincon(@myfun,x0,A,b)

  6. #6
    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
    Ce n'est pas le message d'erreur en entier...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appeler une fonction matlab dans un programme C++
    Par samiaarch dans le forum C++
    Réponses: 1
    Dernier message: 15/10/2012, 22h22
  2. Problème ginput dans une fonction matlab
    Par matt67 dans le forum MATLAB
    Réponses: 12
    Dernier message: 05/06/2007, 15h24
  3. [intfilt] Convertir une fonction MATLAB en language C
    Par sandball22 dans le forum MATLAB
    Réponses: 10
    Dernier message: 10/04/2007, 16h06
  4. Exécution d'une fonction Matlab à partir de C++
    Par wassimb dans le forum MATLAB
    Réponses: 1
    Dernier message: 15/03/2007, 13h00
  5. Programmation d'une fonction dans Rn
    Par simone.51 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 12/11/2004, 11h30

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