J'ai un pdf défini comme P (r, t). J'essaie de définir le pdf en python, mais je suis nouveau au programme et je ne suis pas sûr si je l'ai correctement défini. Voici le pdf que j'essaie de définir. 1Fonction définie correctement?
from scipy.special import gamma as G
def A(gamma, d):
return np.power(G((d + 2)/gamma)/(G(d/gamma)), (gamma/2))
def B(gamma, d):
return np.log(gamma * np.power(G((d + 2)/gamma), (d/2))/np.power(G(1/gamma), ((d + 2)/2)))
def dispersion(gamma, d, t, D):
return np.power((D * t), (2/gamma)) * g(gamma, d)
def pdf(gamma, d, r, t, D):
return (1/np.power(dispersion(gamma, d, t, D), (d/2))) * np.exp((-A(gamma, d) * np.power((r/np.sqrt(g(gamma, d))), gamma)) + B(gamma, d))
Je suis en train de tracer le pdf, mais je continue à obtenir une erreur, donc je veux confirmer ce que j'ai ci-dessus est correct avant d'essayer de passer. Toute aide serait appréciée! J'utilise aussi G pour la fonction gamma et gamma pour désigner la variable gamma.
Lorsque l'erreur provient de: I créé un échantillon 100x1000 et je laisse gamma = 2 et d = 1 pour plus de simplicité
def pdf(gamma, d, r, t, D):
return (1/np.power(dispersion(gamma, d, t, D), (d/2))) * np.exp((-A(gamma, d) * np.power((r/np.sqrt(g(gamma, d))), gamma)) + B(gamma, d))
r = range(100)
t = range(1000)
gamma = 2
d = 1
D = 2
p = pdf(gamma, d, r, t, D)
plt.plot(r, p)
plt.show()
TypeError: unsupported operand type(s) for *: 'int' and 'range'
Veuillez publier l'erreur complète. – Craig
Mon erreur vient du fait que je n'ai pas défini mes variables quand j'essaye de tracer mon pdf, mais je ne suis pas sûr de ce que le support du pdf est. – bazinga
Si vous ne montrez pas l'erreur et le code qui provoque l'erreur, alors personne ne pourra vous aider. – Craig