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 :

Probabilité sous MATLAB


Sujet :

MATLAB

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 11
    Par défaut Probabilité sous MATLAB
    Bonjour,

    Je cherche à créer aléatoirement des pannes de machine dans un vecteur, "V", contenant autant de lignes que de pas de temps. J'étais parti pour utiliser la fonction rand() de MATLAB en vue d'encadrer ce nombre avec des if pour définir mes catégories de pannes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(rand()<0.95)
    'Pas de panne'
    elseif rand()<0.984452
    'Panne categorie 1'
    else
    'Panne categorie 2'
    end
    Cependant, étant donné que j'ai 29 catégories de pannes il serait plus propre d'éviter une telle répétition de boucles conditionnelles. Voici sur quoi je me suis orienté:
    Définir un vecteur, "V", contenant des chiffres allant de 1 à 29 correspondant à des catégories de pannes. Il est complété par des zéros jusqu'à atteindre autant de ligne que de pas de temps.
    Tirer un chiffre aléatoire entre 1 et la taille du vecteur. On regarde ensuite quelle est la valeur du vecteur à la position du chiffre aléatoire. Si c'est un 0 alors il n'y a pas de panne, sinon il y a une panne dont la catégorie est indiquée par le nombre correspondant à la position.
    Sur un exemple:
    V=[1 1 1 2 0 0 0 0 0 0 0 0]
    Ici on a 12 pas de temps.
    La probabilité d'avoir une panne de catégorie 1 est de 3/12 et celle d'avoir une panne de catégorie 2 de 1/12.
    Chiffre aléatoire=3 => On a une panne de catégorie 1.


    Le problème c'est que mes taux de pannes sont très faibles et très précis. Par exemple: probabilité d'avoir une panne de catégorie 1: 0.00001 (taux de panne par an et par machine). Sachant que mon pas de temps est fixé à 1h donc 8760 pas de temps pour une simulation, si je rempli 1 colonne de mon vecteur "V" avec un 1 la probabilité associée sera de 0.000114.

    Auriez-vous d'autres idées pour résoudre ce problème ?

    Merci d'avance,
    Bien cordialement,
    Martin

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    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 316
    Par défaut
    Citation Envoyé par Martin_ Voir le message
    Cependant, étant donné que j'ai 29 catégories de pannes il serait plus propre d'éviter une telle répétition de boucles conditionnelles.
    Il faut utiliser le principe de la vectorisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    rate = [0.95 0.984452];
     
    r = rand
     
    if any(r>rate)
        idx = find(r>rate, 1, 'last');
        fprintf('Panne categorie %d\n', idx);
    else
        fprintf('Pas de panne\n');
    end

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 11
    Par défaut
    Parfait, merci beaucoup !

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

Discussions similaires

  1. probabilités sous matlab
    Par marietc dans le forum Signal
    Réponses: 1
    Dernier message: 23/04/2009, 23h28
  2. Lire un programme écrit sous MATLAB
    Par tipi09 dans le forum Octave
    Réponses: 2
    Dernier message: 06/10/2006, 11h43
  3. Curseur sous MATLAB
    Par philatex dans le forum MATLAB
    Réponses: 2
    Dernier message: 23/08/2006, 10h02
  4. Exécutable sous MATLAB
    Par julien_arche dans le forum MATLAB
    Réponses: 6
    Dernier message: 01/08/2006, 10h54

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