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 :

estimation de densité par une noyau gaussien


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Par défaut estimation de densité par une noyau gaussien
    Bonjour,
    j'ai un petit souci en fait je voudrai estimer une densité d'un vecteur de loi normal en utilisant le noyau gaussien j'ai utiliser se programme mais cela ne marche pas
    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
     
     
    % // nc est le nombre de classes dans l'histogramme 
    % // n la taille de l'échantillon
    % // h le pas de l'ordre de n^(-1/5)
     
    function []= estim_gaussien(nc,n,hn)
      nc=100;
      n=1000;
      hn=1/(1000^(1/5));
     
     % // gaussiennes centrées réduites de variance 1
     
     x=randn(n,1);
     
      hist(x,nc) 
     
    %   // estimation de la densité de la loi de E par la méthode des noyaux,
     
      C=[min(x)-1:1/n:max(x)+1];
       %//tracé de la vraie densité
      f =  exp(-C.^2/2)/sqrt(2*pi);
      plot(C,f)
     
      for i=1:length(C)
        B(i)=1/(n*hn)*sum((exp(((C(i)-x)/hn).^2)/2)*(1/sqrt(2*pi)));
      end 
      hold on 
      plot(C,B,'r')
     
     
    end
    merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Pourrais-tu nous dire ce qui ne marche pas? Erreur MATLAB (laquelle), mauvais résultat (qu'attends-tu)?

    Bonne journée,
    Duf

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Il faut modifier le début de ton code pour gérer les argument optionnels :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function estim_gaussien(nc,n,hn)
    
    if nargin == 0
      nc=100;
      n=1000;
      hn=1/(1000^(1/5));
    end
    NARGIN donne le nombre d'argument passé en entrée de ta fonction.

    Ou alors supprimer la déclaration de ces trois variables dans la fonction ESTIM_GAUSSIEN et les mettre dans l'appel de la fonction (par exemple dans le Command Window) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nc=100; n=1000; hn=1/(1000^(1/5)); estim_gaussien(nc,n,hn)

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 9
    Par défaut
    Si tu as la toolbox "Statistics", je crois que la fonction ksdensity le fait (Bon d'accord il faut avoir la toolbox).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Par défaut
    bonjour,

    oui j'ai la toolbox statics,
    j'ai essayé avec la fonction ksdensity mais je n'ai pas compris comment cela marche car elle me renvoi l'allure de la densité. et moi se que je veut c'est l'approximation de le densité par le noyau gaussien.

Discussions similaires

  1. [Débutant] Estimation d'une densité par méthode du noyau
    Par solidushadow dans le forum MATLAB
    Réponses: 1
    Dernier message: 13/05/2014, 18h43
  2. Noyau d'OS prouvé sans erreur par une équipe de recherche
    Par millie dans le forum Algorithmes et structures de données
    Réponses: 30
    Dernier message: 25/08/2009, 01h04
  3. Appel d'une fonction en C par un noyau en asm (link)
    Par julson dans le forum Programmation d'OS
    Réponses: 7
    Dernier message: 22/03/2005, 15h14
  4. Envoyer un TPoint par une connection Socket ????
    Par jeldorak dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/11/2002, 19h41

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