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 :

Recherche de minima globaux


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Recherche de minima globaux
    Bonjour, j'essaye d'écrire un algorithme utilisant impérativement la fonction fminbnd capable de déterminer le minimum global d'une fonction f(x). J'ai réussi à en écrire un qui fonctionne, mais pas pour des fonctions vraiment tordues... Si quelqu'un a un algorithme utilisant fminbnd et fonctionnant pour n'importe quelle fonction, alors je lui en serai reconnaissant jusqu'à ma fin!!
    Merci

  2. #2
    Expert éminent sénior
    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
    Points : 14 828
    Points
    14 828
    Par défaut
    Peux-tu nous montrer ce que tu as déjà fait ?
    Quelles sont les fonctions "tordues" (en quoi sont-elles tordues ?) qui occasionnent un dysfonctionnement de ton algorithme ?
    Et quel dysfonctionnement : erreur MATLAB ou résultats erronés ?
    Est-ce vraiment un problème de MATLAB ou plus vraisemblablement d'algorithmique d'ailleurs ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    c'est plus un probleme d'algorithme en fait. Mon programme trouve les minimas clobaux a condition que la fonction soit globalement décroissante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    function [xinf, fval, iter, nbf] = minglobal5(fonc1D, xmin, xmax, eps)
     
    % Recherche du minimum global d'une fonction à l'aide de la fonction
    % fminbdn de MATLAB.
    %
    % xinf est l'abscisse du minimum.
    % fval est la valeur du minimum.
    % iter est le nombre d'itérations nécessaires pour obtenir le minimum.
    % nbf est le nombre d'appels à la fonction nécessaires pour obtenir le
    % minimum.
    %
    %  fonc1D est le nom de la fonction à minimiser.
    %  xmin est la borne inférieure du domaine de définition de x.
    %  xmax est la borne supérieure du domaine de définition de x.
    %  eps est la précision souhaitée.
     
    iter = 0;   % initialisation du compteur d'itérations
    nbf = 0;    % initialisation du compteur d'appel à la fonction
     
    % recherche d'un premier minimum
    [x1,fval1,exitflag,output] = fminbnd(fonc1D,xmin,xmax,optimset('TolX',eps));
    iter = iter + output.iterations ;
    nbf = nbf + output.funcCount ;
     
    % recherche d'un deuxième minimum
    [x,fval2,exitflag,ouput] = fminbnd(fonc1D,x1,xmax,optimset('TolX',eps));
    iter = iter + output.iterations;
    nbf = nbf + output.funcCount ;
     
    if (fval1 > fval2)
     
        while (fval1 > fval2)
            fval1 = fval2;
            xdeb = x;
            [x,fval2,exitflag,output] = fminbnd(fonc1D,xdeb,xmax,optimset('TolX',eps));
            iter = iter + output.iterations;
            nbf = nbf + output.funcCount ;
        end
        xinf = xdeb;
    else
        xinf = x1;
    end
    fval = fval1;



    mais s'il se trouve que la fonction remonte forme un minimum local puis redescend alors si mon minimum global est situé après cette remontée, il n'est pas detecté.

Discussions similaires

  1. Recherche de minimas locaux
    Par babar63 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 13/05/2009, 15h04
  2. recherche des algorythmes pour images 2d
    Par exxos dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 24/05/2002, 14h46
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 23h18
  4. [PRO*C] Recherche information
    Par Anonymous dans le forum Interfaces de programmation
    Réponses: 2
    Dernier message: 04/04/2002, 18h53
  5. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 13h09

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