[MATLAB] Fonction fminsearch
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

[MATLAB] Fonction fminsearch



  1. #1
    invite7f8439b1

    [MATLAB] Fonction fminsearch


    ------

    Bonsoir,

    J'aurais besoin de vos lumières concernant la fonction fminsearch de MATLAB.
    J'ai une fonction J(a,x,y) à minimiser selon a avec x et y donnés (mais qui reste des paramètres que je peux faire varier suivant le cas étudié).
    J'utilise donc la fonction fminsearch de la manière suivante:
    fminsearch(@J,X0,options,x,y)

    Quand je remplace xs et ys par leurs valeurs (par exemple: fminsearch(@J,X0,options,1,2)) et que je rentre ça dans la fenêtre de commande j'obtiens bien mon a optimal. Cependant je voudrais tracer dans un repère (x,y,z) mes a optimaux en fonction de x et y.
    J'écris donc une macro:

    X = 1:0.1:10;
    Y = 1:0.1:10;
    plot3(X,Y,fminsearch(@J,8,OPTI MSET('Tolx',1e-10,'TolFun',1e-10),X,Y,0.5),'b')


    Mais quand j'exécute la macro cela ne fonctionne pas et j'obtiens le message d'erreur suivant:

    ??? Subscripted assignment dimension mismatch.

    Error in ==> fminsearch at 205
    fv(:,1) = funfcn(x,varargin{:});

    Error in ==> Plot at 4
    plot3(X,Y,fminsearch(@J,8,OPTI MSET('Tolx',1e-10,'TolFun',1e-10),X,Y,0.5),'b');



    Auriez vous une idée ?

    Merci d'avance et bonne soirée/nuit.

    -----

  2. #2
    invite7f8439b1

    Re : [MATLAB] Fonction fminsearch

    Correction, ma macro c'est:
    X = 1:0.1:10;
    Y = 1:0.1:10;
    plot3(X,Y,fminsearch(@J,8,OPTI MSET('Tolx',1e-10,'TolFun',1e-10),X,Y,0.5),'b')

    Et je remplace x et y par leurs valeurs, pas xs et ys.
    De plus J dépend aussi d'un paramètre que j'ai oublié de mentionner car il vaut toujours 0.5.
    J'ai également fait quelques fautes... J'aurais dû écrire ce message moins vite et moins tardivement. (On ne peut pas éditer le premier message sur FS ?)

  3. #3
    invite7f8439b1

    Re : [MATLAB] Fonction fminsearch

    J'ai finalement réussi à trouver.
    Pour ceux qui veulent la solution (en faisant varier seulement y pour l'exemple):

    figure(1)
    for i=1:0.1:10
    a = fminsearch(@J,8,OPTIMSET('Tolx ',1e-10,'TolFun',1e-10),4,i,0.5);
    hold on
    plot(i,a,'r')
    xlabel('y');
    ylabel('a');
    hold off
    end;


    Par contre j'ai maintenant un autre problème, je me suis rendu compte en traçant mes résultats qu'il fallait une condition à la recherche de minima et qu'il fallait donc que j'utilise la fonction fmincon. Malgré la lecture de la doc je ne parviens pas à comprendre comment coder ma condition.
    Je veux minimiser la fonction J(a,x,y) selon a avec la condition suivante:



    Où B(a) est une fonction non linéaire de a.
    Comme ma condition dépend du résultat à trouver ET doit être valable pour tout x réel je ne parviens pas à l'incorporer à fmincon.

    Pourriez vous m'aider ?
    Merci d'avance

Discussions similaires

  1. fonction quad de matlab
    Par invite8a011b82 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 30/06/2011, 08h44
  2. Comment insérer une fonction Matlab dans les paramètres d'entrée d'une autre fonction ??
    Par inviteac36b108 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 04/01/2010, 07h16
  3. Matlab et sa fonction subplot
    Par invite45591d4a dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 29/07/2007, 11h50
  4. [Matlab] Fonction Filter
    Par inviteaf2e78df dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 07/04/2006, 10h46
  5. matlab:fonction séries
    Par invitef5b0e516 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 03/07/2005, 18h15