Inscription / Connexion Nouveau Sujet
Niveau exercices
Partager :

simulation trajet bus

Posté par
flight
13-02-24 à 18:47

Bonsoir

je vous propose l'exercice suivant  :  Une ligne de bus et pouvue de n stations comprises entre le départ et le terminus , un bus de cette même ligne peut acceuillir 120 voyageurs et pas plus , à chaque station le nombre de voyageurs qui monte dans le bus suit une loi normale de moyenne 7 et d'ecart type 2  , tandis que le nombre de voyageurs qui descendent du bus suit une loi normal de moyenne 4 et d'ecart type 2. Au départ de la ligne , 42 voyageurs montent dans le bus .
Ecrire une simulation dans le language de votre choix qui indique à partir de combien de stations  il ne sera plus possible d'embarquer de voyageurs

Posté par
Zormuche
re : simulation trajet bus 13-02-24 à 21:07

Bonsoir

 Cliquez pour afficher

Posté par
Zormuche
re : simulation trajet bus 13-02-24 à 21:08

 Cliquez pour afficher

Posté par
verdurin
re : simulation trajet bus 13-02-24 à 22:56

Bonne nuit.

flight a dit

à chaque station le nombre de voyageurs qui monte dans le bus suit une loi normale de moyenne 7 et d'ecart type 2  , tandis que le nombre de voyageurs qui descendent du bus suit une loi normal de moyenne 4 et d'ecart type 2.
Ça me semble absurde.

Posté par
GBZM
re : simulation trajet bus 13-02-24 à 23:00

Question subsidiaire : quelle est la probabilité pour que le nombre de voyageurs qui montent à la station République soit compris entre 6,2 et 6,8 ?

Posté par
flight
re : simulation trajet bus 13-02-24 à 23:00

Bonsoir je ne comprend pas trop le resultat de ta simu pour n =25 on a differents scenarios ?

Posté par
flight
re : simulation trajet bus 13-02-24 à 23:02

Bonsoir verdurin , on va supposer que c'est le cas  meme si c'est absurde

Posté par
dpi
re : simulation trajet bus 14-02-24 à 09:09

Bonjour,

 Cliquez pour afficher

Posté par
dpi
re : simulation trajet bus 14-02-24 à 15:16

J'ai vu la simulation de Zormuche,

 Cliquez pour afficher

Posté par
dpi
re : simulation trajet bus 14-02-24 à 16:40

petite erreur...

 Cliquez pour afficher

Posté par
candide2
re : simulation trajet bus 14-02-24 à 17:15

Bonjour,

Je n'ai pas eu le courage d'écrire tout.

Pour un début j'ai calculé les probas pour le nombre de voyageurs qui montent à chaque arrêt.

Supposition , pour que n voyageurs montent, je fais l'intégrale de la loi de répartition pour x compris dans [n-0,5 ; n+0,5] , cela est mieux que de couper les voyageurs en morceaux.  

Cela donne ceci :

from scipy.integrate import quad  # Module d'intégration "quad"
import numpy as np
import math

# Fonction à intégrer
def function(x):
    return (math.e**(-1/8 * (x-7)*(x-7)))/2/(2*math.pi)**(1/2)

Total = 0
M = [0, 0, 0, 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
# Calcul de l'intégrale
# Intervalle d'intégration
a = 0
b = 0.5
res, err = quad(function, a, b)
M[0] = res  
a = 0.5
b = 1.5
for i in range (1,21):
 res, err = quad(function, a, b)
 M[i] = res  
 a = a+1
 b = b+1
for i in range (0,21) :
 print("M",i," = ", M[i])


Qui donne en résultats :




Posté par
candide2
re : simulation trajet bus 14-02-24 à 17:17

Oups, mauvaise manoeuvre, la réponse est partie incomplète :


M 0  =  0.00034439596335524215
M 1  =  0.00240273819266379
M 2  =  0.009244709419990149
M 3  =  0.027834684208772397
M 4  =  0.06559061680303818
M 5  =  0.12097757871001294
M 6  =  0.17466632194020812
M 7  =  0.19741265136584746
M 8  =  0.1746663219402081
M 9  =  0.12097757871001294
M 10  =  0.06559061680303817
M 11  =  0.027834684208772397
M 12  =  0.009244709419990149
M 13  =  0.002402738192663791
M 14  =  0.0004886077571899635
M 15  =  7.772875942586949e-05
M 16  =  9.671442532365727e-06
M 17  =  9.410336374038164e-07
M 18  =  7.158743271098557e-08
M 19  =  4.256946111379721e-09
M 20  =  1.9783408474387627e-10

Il faudrait faire la même chose pour les probas du nombre de voyageurs qui descendent et puis ...


Posté par
flight
re : simulation trajet bus 14-02-24 à 20:25

Bonsoir candide2 , on cherche juste à quel numéro de station le bus ne pourra plus embarquer de voyageurs , ca doit pouvoir etre plus simple que de calculer des proba de voyageurs qui montent à chaque station ...

Posté par
flight
re : simulation trajet bus 14-02-24 à 20:30

je suis daccord avec  26 stations trouvé par dpi

Posté par
Zormuche
re : simulation trajet bus 15-02-24 à 00:28

Je comprends pas ce que tu veux dire par "le numéro de station...", ton expérience est aléatoire alors ça ne sera jamais le même. C'est pour ça que j'ai proposé 10 simulations avec la même longueur

Posté par
flight
re : simulation trajet bus 15-02-24 à 08:06

Bonjour Zormuche , en fait il s'agit de trouver une moyenne  , la valeur obtenue n'est certes pas entière mais permet de situer en moyenne le numero de station à partir de laquelle il ne sera plus possible pour le bus d'embarquer des voyageurs supplémentaires

Posté par
candide2
re : simulation trajet bus 15-02-24 à 12:17

Bonjour,

Par ma méthode, c'est à dire en simulant le nombre de passagers qui montent et qui descendent à chaque arrêt en tenant compte des lois de répartitions imposées ... la simulation, sur un grand nombre de trajets donnent une moyenne d'arrêts entre 31 et 32

Ce n'est pas proche de 26.

Ce que j'ai fait:
Un nombre aléatoire (entre 0 et 1) est généré et en tenant compte de la loi de répartition imposé, on en déduit le nombre de personnes qui montent à 1 arret.
Pareil (avec un autre nombre aléatoire, c'est obligatoire) pour avoir le nombre de personnes qui descendent à un arrêt ...
On peut donc en tirer le nombre de passagers présents après chaque arrêt.
Et si ce nombre devient > 120 alors on arrête le comptage du nombre d'arrêts et on l'affiche

Peut-être erreur de programmation ?

Posté par
flight
re : simulation trajet bus 15-02-24 à 12:28

Bonjour candide2,  si on note X la variable aleatoire suivant une loi normale N(7,2) représentant le nombre de personnes qui montent à un arret et Y la VA suivant une loi normal N(4,2) representant le nombre de personnes qui descendent à un arret  suivant une loi
alors on cherche  n tel que  43  +nX-nY >120  en passant par l'esperance on a  42 +n(7-4) >120   ce qui donne  n > 26  donc en moyenne a partir la 26 ième station le bus ne prend plus personne  

Posté par
candide2
re : simulation trajet bus 15-02-24 à 13:19

Bonjour flight,

Soit, mais que fait-on du nombre négatif de passagers qui peuvent monter (ou descendre) ?
Cela n'a aucun sens, mais il ne sont pas exclus de la loi de répartition.

Mais la simulation en tient compte.

Si je modifie le calculs de proba pour 0 passager en calculant l'intégrale de la répartition entre [-0,5 ; 0.5] (je l'avais fait avant dans  [0 ; 0,5] ... le nombre moyens d'arrêts que la simulation donne redescend entre 29 et 30 arrêts.

Est-ce que tes calculs tiennent compte que le nombre de passagers qui montent ou descendent ne peut pas être négatifs ? ... même si la loi de répartition le permet.

Posté par
flight
re : simulation trajet bus 15-02-24 à 17:05

effectivement , j'ai fais une simulation en vba qui  me retourne que des valeurs positives pour le nombre de passagers qui montent ou qui descendent :

Sub trajet_bus()
Dim e, q As Double
Randomize
Do
e = e + 1
n = 42
 s = 0
   While n <= 120
   s = s + 1
   n = n + simu_loi_normale(7, 2) - simu_loi_normale(4, 2)
  Wend
q = q + s - 1
Loop Until e = 100000

  MsgBox q / e  ' retourne 26 et des poussieres
End Sub

Function simu_loi_normale(m As Double, ec As Double)
Randomize
Dim s As Double
k = 0
s = 0
 Do
  k = k + 1
  s = s + Rnd
 Loop Until k = 24
 simu_loi_normale = (ec * ((s - 12) / Sqr(2))) + m
End Function

Posté par
candide2
re : simulation trajet bus 15-02-24 à 18:39

Bonjour,

Ce que je vois comme différence (si j'interprète bien) est que ton programme travaille avec des "morceaux" de passagers.
Si la loi normale te sort par exemple 7,3 passagers ..., tu utilises ce 7,3 passagers.
Mon programme ne travaille qu'avec des passagers "entiers"
J'ai calculé la répartition pour le nombre de passagers en un seul morceau

Par exemple, la "répartition" pour avoir par exemple 7 passagers correspond à l'intégrale de la loi de répartition entre 6,5 et 7,5

Je ne sais pas si c'est de là la différence des résultats ... ou bien dans une erreurs dans mon programme.

Peu importe finalement.

Posté par
flight
re : simulation trajet bus 15-02-24 à 19:14

ile aurait peut etre fallu poser le probleme autrement , on peut par exemple supposer qu'a chaque station se trouve p=12 personnes et que le nbr de personnes qui monte suit une loi du type :
X= E(R*p)) avec 0 <=R <= 1 , variable aléatoire uniforme continue sur [0,1] et E la partie entiere .  de la meme facon pour ceux qui descendent du bus , ca permet d'avoir des voyageurs entiers

Posté par
flight
re : simulation trajet bus 15-02-24 à 19:15

je vais essayer une simulation avec cette idée

Posté par
verdurin
re : simulation trajet bus 15-02-24 à 22:18

C'est effectivement  une bonne idée, à mon avis, de supposer que le nombre de personnes qui montent ou qui descendent du bus est un entier.
De fait j'utilise les transports en commun et je n'ai jamais laissé 30% de moi-même à l'arrêt  tandis que les 70% restant prenaient le bus.

Posté par
verdurin
re : simulation trajet bus 15-02-24 à 22:59

Sinon on peut sauver ton exercice en le réécrivant un peu.
On a des v.a. indépendantes Xi et Yi indépendantes telles que quelque soit i Xi suive une loi normale de paramètres 7 et 2 alors que Yi suit une  loi normale de paramètres 4 et 2.
On pose T0=42 et Tk+1=Tk+Xk-Yk.
On définie alors la v.a. N par N=max(n | Tn 120).
On peut alors se poser des questions sur la loi de N.

Posté par
dpi
re : simulation trajet bus 16-02-24 à 08:19

Bonjour,

1/ vous remarquerez que le tirage aléatoire doit respecter 7;2 et 4;2
ce qui en réalité donne une fourchette très étroite. surtout si on veut un écart -type de 2 exactement.
2/Sur un nombre d'observations important le nombre  tendra vers 26.
c'est le genre de problème qui tourne à l'évidence

simulation trajet bus

Posté par
candide2
re : simulation trajet bus 19-02-24 à 11:27

Bonjour,

Bonjour,

En utilisant Excel pour sa grande quantité de tests possibles ...

Voila une copie des débuts de résultats sur 220 trajets (qui varient évidement un peu (pas beaucoup)  d'une série à l'autre de 220 trajets)

Ce sont les cellules en rouges qui m'intéresse.

La N2 est la moyenne des arrats pour dépasser 120 :  soit environ 27,5
Les D4 et D5 : donnent la moyenne et l'écart type sur l'ensemble du nombre de montants par arret.
Les G4 et G5 : donnent la moyenne et l'écart type sur l'ensemble du nombre de descendants par arret.

Jusque là, rien de vraiment "anormal"

MAIS comme je le pressentais il y a des impossibilités pratiques dans les résultats, c'est ainsi que :

La cellule D8 donne le minimum des personnes qui sont montées pour un arrêts.
La cellule G8 donne le minimum des personnes qui sont descendues pour un arrêts.

Et trouver dans ces cellules des nombres négatifs est évidemment physiquement impossible ...
Un nombre négatif de personne descendantes est comptabilisée comme des personnes qui montent.
Un nombre négatif de personne montantes est comptabilisée comme des personnes qui descendent.

Je ne sais pas, de quel pourcentage en moyenne, ces "impossibilités physiques", influencent le résultat sur le nombre moyen d'arrêts par trajet.

simulation trajet bus

Posté par
LittleFox
re : simulation trajet bus 19-02-24 à 12:13

verdurin
J'aurai plutôt écrit :
On défini alors la v.a. N par N=min(n | Tn 120).

Tn peut en effet redescendre par après. On veux s'arrêter à la première fois où le bus est plein.

Posté par
LittleFox
re : simulation trajet bus 19-02-24 à 12:39

flight
On aurait pas ces problèmes de voyageurs non-entier si on utilisait une loi binomiale au lieu d'une loi normale

Par exemple \mathcal{B}(16; 3/7) \approx \mathcal{N}(6,88; 1,98) et \mathcal{B}(8; 1/2) \approx \mathcal{N}(4; \sqrt{2})



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !