Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2006
    Messages : 93
    Points : 22
    Points
    22

    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 :
    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 Confirmé Sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : Kiribati

    Informations forums :
    Inscription : mars 2007
    Messages : 9 458
    Points : 15 146
    Points
    15 146

    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 à l'essai
    Profil pro
    Étudiant
    Inscrit en
    juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2006
    Messages : 93
    Points : 22
    Points
    22

    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 Expert Avatar de rostomus
    Homme Profil pro Rostom
    Doctorant électronique et traitement du signal
    Inscrit en
    décembre 2006
    Messages
    790
    Détails du profil
    Informations personnelles :
    Nom : Homme Rostom
    Âge : 31
    Localisation : France

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

    Informations forums :
    Inscription : décembre 2006
    Messages : 790
    Points : 1 174
    Points
    1 174

    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 à l'essai
    Profil pro
    Étudiant
    Inscrit en
    juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2006
    Messages : 93
    Points : 22
    Points
    22

    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
    Dut
    Dut est déconnecté
    Rédacteur/Modérateur

    Avatar de Dut
    Homme Profil pro Jérôme Briot
    Ingénieur hospitalier
    Inscrit en
    novembre 2006
    Messages
    17 798
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme Briot
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2006
    Messages : 17 798
    Points : 49 580
    Points
    49 580

    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)
    Sur mon blog : Installer GNU Octave 3.8.1 sur Linux Xubuntu 14.10

    Ma page personnelle avec mes contributions MATLAB (R2011b/R2014b - Windows, Linux et Mac) et Hardware

    « 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 à l'essai
    Profil pro
    Étudiant
    Inscrit en
    juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2006
    Messages : 93
    Points : 22
    Points
    22

    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
    Dut
    Dut est déconnecté
    Rédacteur/Modérateur

    Avatar de Dut
    Homme Profil pro Jérôme Briot
    Ingénieur hospitalier
    Inscrit en
    novembre 2006
    Messages
    17 798
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme Briot
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2006
    Messages : 17 798
    Points : 49 580
    Points
    49 580

    Par défaut

    Pourquoi ne pas faire quelquechose comme :
    Code :
    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
    Sur mon blog : Installer GNU Octave 3.8.1 sur Linux Xubuntu 14.10

    Ma page personnelle avec mes contributions MATLAB (R2011b/R2014b - Windows, Linux et Mac) et Hardware

    « 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 à l'essai
    Profil pro
    Étudiant
    Inscrit en
    juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2006
    Messages : 93
    Points : 22
    Points
    22

    Par défaut

    Merci "Dutmatlab", c'est parfait

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •