Matlab Algorithme Nelder-Mead
Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

Matlab Algorithme Nelder-Mead



  1. #1
    zaskzask

    Matlab Algorithme Nelder-Mead


    ------

    Bonjour à tous,

    J'essaye en fait de trouver numériquement le minimum de la fonction ave la méthode de Nelder-Mead.
    Je me base sur l'article de wikipedia http://en.wikipedia.org/wiki/Nelder%E2%80%93Mead_method et adapte pour le cas à 2 variables.
    J'ai nommé mes points:
    i)B (best) pour le sommet du triangle qui a la plus petite valeur quand évalué en f
    ii)G (good)
    iii)W (worst)

    Dans matlab (je connais mal, du coup je dois avoir écrit beaucoup de choses bizarres).

    J'ai défini dans un fichier f.m ma fonction
    -------------------
    function [z]=f(x,y)
    z=x.^2-4.*x+y.^2-y-x.^y;
    end
    ------------------
    Puis dans le fichier Nelder.m j'ai implémenter mon programme, mais il ne trouve pas le minimum. En effet, un calcul explicite montre qu'il se trouverait en (9/3,2) et f(9/3,2)=-7 mais quand je cherche avec mon programme il trouve -l'infini comme minimum et je n'arrive pas à mettre le doigts sur mon erreur. Quelqu'un pourrait t'il m'aider?

    fichier Nelder.m
    ---------------------
    clear all
    clc
    B=[1.2,0];
    G=[0,0.8];
    W=[0,0];
    counter=0;
    while counter<20
    V=[B;G;W];
    Y=[f(B(1),B(2)),f(G(1),G(2)),f(W( 1),W(2))];
    [O I]=sort(Y);
    B=V(I(1),1:2);
    G=V(I(2),1:2);
    W=V(I(3),1:2);

    M=0.5*(G+B);
    R=M+(M-W);
    if f(R(1),R(2))<f(G(1),G(2))
    if f(R(1),R(2))<f(B(1),B(2))
    E=M+2*(M-W);
    if f(E(1),E(2))<f(B(1),B(2))
    W=E;
    else
    W=R;
    end
    else
    W=R;
    end
    else
    C=0.5*(M+W);
    if f(C(1),C(2))<f(W(1),W(2))
    W=C;
    else
    C1=0.5*(W+M);
    C2=0.5*(M+R);
    if f(C1(1),C1(2))<f(C2(1),C2(2))
    W=C1;
    else
    W=C2;
    end
    end
    end
    counter=counter+1
    end
    -------------------------------

    -----
    Dernière modification par zaskzask ; 17/06/2014 à 12h03.

Discussions similaires

  1. Maximisation de fonction, et algorithme de Nelder-Mean
    Par diego45 dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 08/08/2013, 07h27
  2. Algorithme de Nelder-Mead
    Par VauRDeC dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 07/06/2011, 14h30
  3. Algorithme Matlab
    Par james_83 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 12/04/2010, 08h17
  4. Programmer Nelder Mead sur le logiciel R
    Par inviteaf3fd5c5 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 19/04/2008, 00h45
  5. Matrice et algorithme Matlab
    Par invited028b400 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 14/01/2008, 13h53