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 :

processus de Poisson


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 93
    Points : 55
    Points
    55
    Par défaut processus de Poisson
    Bonjour,

    J'ai un petit souci pour coder un processus de Poisson sur Matlab...

    En première étape, j'ai essayé de générer une variable aléatoire d'un processus de Poisson ( J) de paramètre (lamda*T).

    En deuxième étape, j'ai essayé de simuler les amplitudes des sauts à partir d'une distribution lognormal de paramètre mu et de variance sigma^2.

    Mon code sur Matlab était le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    % Simulation loi de poisson d'intensite  lambda*T  
    J=poissrnd(lambda*T);
    % simulation du vecteur Ksi (lognormal) 
    for i=1:J
     n = mu + sigma*randn(1);
     Ksi(i) = exp(n);
    end
    En fait, ce code ne me donne pas des bons résultats ! Pourriez-vous m'aider s'il vous plait ?

    Merci d'avance

  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 830
    Points
    14 830
    Par défaut
    Je n'y connnais pas grand-chose en Poisson mais d'un point de vue uniquement programmation il me semble qu'il y a un souci là :
    En effet l'aide dit que J est un vecteur de même taille que lambda*T de nombres aléatoires choisis dans la distribution de Poisson de paramètre lambda*T.

    Donc tu fais une boucle qui commence à 1 et s'arrête à ???? (dans ton cas à la partie entière du premier élément de J)

    Pour le reste :
    • Peux-tu donner tes variables d'entrée (lambda, T, mu et sigma) que l'on puisse tester pour t'aider ?
    • Peux-tu développer en quoi les résultats ne sont pas "bons" ? (risque : s'il s'agit d'un problème de maths ce n'est peut-être pas le bon endroit pour poster)
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 93
    Points : 55
    Points
    55
    Par défaut
    Merci "caro95470" pour ta réponse.

    Mes variables sont les suivantes : lambda = 0.11, T=5, mu= -0.12, sigma= 0.2

    Avec ces données J prend un de ces valeurs entiers 0, 1, 2.

    Pour définir la loi de poisson il faut avoir l’intensité des sauts (lambda), le nombre des sauts et l’amplitude des sauts. Dans notre cas, J est le nombre des sauts qui interviennent sur la période [0,T], Ksi (i) est l’amplitude du ième saut. Ces amplitudes suivent une distribution lognormale de paramètres mu et sigma^2.

    A partir de mes résultats en finance, je pourrai vérifier si le code sur Matlab marche très bien ou non. Dans un cadre de simulations Monte Carlo on pourra limiter les résultats dans un intervalle de confiance malgré les variables aléatoires générées par la commande « poissrnd » ou « randn ».
    Ce n’est pas un problème de mathématique ou de finance. J’ai toutes les données et il me reste à programmer sur Matlab (ce qui me bloque )

    Merci pour toute intervention d’aide afin de résoudre ce problème.

  4. #4
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Citation Envoyé par Eric06
    En fait, ce code ne me donne pas des bons résultats ! Pourriez-vous m'aider s'il vous plait ?
    Comme a dit Caro:
    Citation Envoyé par caro95470
    Peux-tu développer en quoi les résultats ne sont pas "bons" ?
    Après avoir lu ton deuxième message, il me semble que le code que t'as fais est correcte.
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 93
    Points : 55
    Points
    55
    Par défaut
    Si le produit lambda*T est trop petit (exp. lambda = 0.11 et T = 1), j'aurais parfois une valeur de J=0.

    Avec cette valeur nulle de J, mon code sur Matlab ne marche plus !!

    Que dois-je faire ?!

    Merci d'avance

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 53 160
    Points
    53 160
    Par défaut
    C'est logique... si J=0 alors la boucle FOR-END sur i ne s'incrémente jamais (i=1 jusqu'à 0)
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 93
    Points : 55
    Points
    55
    Par défaut
    Ce que j'ai remarqué ! de plus je ne pourrai pas mettre mon compteur i=0:J

    y a t-il une solution ?

    Merci

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 53 160
    Points
    53 160
    Par défaut
    Pourquoi ne pas faire quelquechose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    % Simulation loi de poisson d'intensite  lambda*T  
    J=poissrnd(lambda*T);
    % simulation du vecteur Ksi (lognormal) 
    if J~=0
       for i=1:J
        n = mu + sigma*randn(1);
        Ksi(i) = exp(n);
       end
    else
       <autre chose>
    end
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 93
    Points : 55
    Points
    55
    Par défaut
    Merci "Dutmatlab", c'est parfait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Processus de poisson avec un intervalle
    Par pitchu dans le forum R
    Réponses: 4
    Dernier message: 12/10/2014, 14h34
  2. Processus de Poisson spatio-temporel
    Par Naneba dans le forum R
    Réponses: 0
    Dernier message: 06/05/2014, 02h21
  3. Processus de Poisson
    Par kbiche dans le forum Mathématiques
    Réponses: 2
    Dernier message: 04/02/2011, 19h36
  4. Processus de Poisson
    Par scarabee10 dans le forum MATLAB
    Réponses: 5
    Dernier message: 28/05/2009, 07h45
  5. Réponses: 2
    Dernier message: 04/10/2002, 10h13

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