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 :

Algorithme gradient à pas fixe


Sujet :

MATLAB

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 1
    Par défaut Algorithme gradient à pas fixe
    Bonjour, dans le cadre d'un projet j'ai a minimiser les fonctions suivantes que j'ai stocké dans dans fichier .m
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    f1.m
    function val = f1( x )
    %Fonction f1 fonciton f1 des la Parite2
    %   Detailed explanation goes here
    val=2*(x(1)+x(2)-2)^2 +(x(1)-x(2))^2;
     
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    f2.m
    function val = f2( x,y )
    %Funciotn f2 Fonction f2 de la P2
    %   Detailed explanation goes here
    val=100*(y-x^2)^2 + (1-x)^2;
     
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    f3.m
    function val = f3( x,y )
    %Function f3 Summary of this function goes here
    %   Detailed explanation goes here
    val=0.5*x^2+x*cos(y);
     
    end
    Donc pour minimiser ses fonction, j'utilise la méthode du gradient à pas fixe que j'ai coder:
    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
     
    function [Xmin,Xi] = AlgoGradPasFixe(gradf,X0,h,eps,N)
    %Algorithme pas fixe du gradient
    %   f est la fonciton de deux variables dont on cherche le minimum
    %X0 est le point de départ vecteur colonne de deux dimensions
    %h le pas petit ms h>0
    %eps est le critère d'arrêt
    %Xi sont les X intermédiaires qu'on traverse
    %gradf est le gradient de f coder dans un fichier gradf.m
    %pour la norme on uttlise la norme euclidienne donner par norm(X,2)
    %N est l nombre maximum d'itérations
    k=1;
    Xi(:,k)=X0; 
    normXi=norm(X0,2);
     
    while normXi>eps && k <= N
       dk=-gradf(Xi(:,k));
       Xi(:,k+1)=Xi(:,k) + h.*dk;
       k=k+1;
       normXi=norm(gradf(Xi(:,k)),2);
    end
    if (k<N)
        b=size(Xi);
        Xmin=Xi(:,b(2));
    else
        error('Pas de minimum ou augmenter le nombre diteration');
     
    end
    Mon problème , c'est que l'algorithme fonctionne parfaitement avec les fonction f1 et f3 mais pas avec la fonction f2, quelqu'un saurait-il qu'est ce qui ne va pas?

  2. #2
    Membre actif
    Homme Profil pro
    Thésard
    Inscrit en
    Mars 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Thésard
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2013
    Messages : 54
    Par défaut
    Salut,

    Je pense qu'il nous manque ton fichier gradf.m pour le coup...
    Je vois que dans f1.m ta variable x est un vecteur avec deux points alors que dans tes fonction f2 et f3 tu utilises deux variables distinctes pour décrire les coordonnées de ton point. Es-tu sûr de ne pas t'être emmêlé dans tes variables ?

    Pareil, je vois que tu as quelques typo dans tes commentaires, je pense que tu as probablement codé un poil trop rapidement et ça risque de sentir l'erreur d'étourderie dans gradf.m

    Tiens nous au jus...

    Betaplus

Discussions similaires

  1. méthode du gradient à pas fixe
    Par sihamnet dans le forum C
    Réponses: 1
    Dernier message: 28/01/2013, 10h16
  2. Méthode gradient pas fixe
    Par thuglife dans le forum MATLAB
    Réponses: 2
    Dernier message: 28/03/2009, 15h37
  3. JTextPane => Police a pas fixe
    Par JamesP dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 14/05/2007, 17h39
  4. Police à pas fixe
    Par macmonac dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 19/10/2006, 00h59
  5. [FLASH MX2004] Problème image qui restent pas fixe
    Par °°° Zen-Spirit °°° dans le forum Flash
    Réponses: 4
    Dernier message: 14/06/2006, 21h16

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