Bonsoir!
Voila j'ai un petit soucis pour tracer une courbe avec le logiciel ...
j'y arrive quand il s'agit de fonction simple, prenant ne entrée une valeur, mais la il s'agit d'une fonction prenant en entrée trois valeurs...
la fonction en question est la simulation d'une loi de probabilité.
La fonction :
def loiNt(t,n,a):
proba=[0]*(n+1)
omega=[x for x in range(n+1)]
simul = [Nt(t,n) for k in range (a)]
c=0
for k in range(n+1):
for i in simul:
if i==k:
c+=1
proba[k]=c/len(simul)
return omega,proba
et voici ce que j'ai essayé de faire ... je comrpend pourquoi sa ne fonctionne pas, car je n'ai pas la même dimension en abscisse et en ordonnée mais je ne vois pas comment réglé le soucis ...
from matplotlib.pyplot import plot,show
n=10
t=0.5
a=1000
X=[(x) for x in range(n+1)]
Y=[(loiNt(t,n,a)) for i in X]
plot(X,Y)
show()
Le problème est que Nt(t, n) est perçue comme une fonction appelée avec 2 arguments. Je ne vois pas de déclaration def Nt(t, n) et cette fonction n'est pas une fonction native de Python
@verdurin, bonsoir.
Il n'y a aucun problème avec Python pour retourner différentes valeurs avec un return en fin de fonction.
Merci bbomaths.
Pour ne pas polluer ce fil, j'en ai ouvert un autre
fonction python : return.
Si tu voulais bien y jeter un coup d'œil je t'en serais reconnaissant.
Bonjour.
Pour l'utilisation de MatplotLib, je vous conseille d'importer les librairies suivantes :
# module de tracage de courbes
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
# module de calcul numerique
import numpy as np
X = np.linspace(X_MIN, X_MAX, X_NB)
Bonsoir,
la fonction Nt est une fonction que j'ai programmer auparavant, et qui simule une variable aléatoire.
loiNt simule la loi de la variable aléatoire et je voudrai représenter graphqiuement loiNt , mais je n'y parviens pas car elle prend 3 arguments en entrée.
def Nt(t,n):
#n le nombre de voiture
#t le temps
L=[]
k=0
for U in range (n):
U=random()
if U<t :
L.append(U)
else :
U=U+1
return len(L)
Bonjour.
Une remarque :
R1 : j'éviterais dans une boucle "for x in range()" d'utiliser la variable x comme variable de calculs intermédiaires. Cela peut prêter à confusion.
Quelques questions...
Q1 : à quoi sert k s'il n'est pas utilisé ?
Q2 : quelle est la finalité de la liste L puisque à la fin seule la taille de cette liste vous intéresse ? Un compteur ne suffirait-il pas ?
Q3 : à quoi sert U = U + 1 puisque U va être modifié juste après par U = random() ?
Q4 : la fonction random() est-elle la fonction random() de la librairie random.py ?
Q5 : si oui, comme random() retourne un flottant compris entre 0.0 et 1.0, le temps t est-il aussi compris entre 0.0 et 1.0 ?
bonsoir, merci pour votre réponse.
Q. en effet k ne sert à rien, j'avais oublié de l'enlever de mon précédent programme.
Q2. je suis d'accord que faire un compteur aurai été suffisant et certainement plus judicieux, je suis juste plus a l'aise avec les listes ...
Q3. il est vrai que sa ne sert à rien...
Q4/5. oui c'est bien sa, j'ai utilisé random car j'utilise une loi uniforme, et dans mon cours c'est comme cela que l'on simule une loi uniforme ...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :