as the title states I am trying to generate random numbers from a custom continuous probability density function, which is:
0.001257 *x^4 * e^(-0.285714 *x)
to do so, I use (on python 3) scipy.stats.rv_continuous
and then rvs()
to generate them
from decimal import Decimal
from scipy import stats
class my_distribution(stats.rv_continuous):
def _pdf(self, x):
return (Decimal(0.001257) *Decimal(x)**(4)*Decimal(np.exp(-0.285714 *x)))
distribution = my_distribution()
distribution.rvs()
note that I used Decimal to get rid of an OverflowError: (34, 'Result too large')
.
Still, I get an error RuntimeError: Failed to converge after 100 iterations
.
What's going on there? What's the proper way to achieve what I need to do?
Aucun commentaire:
Enregistrer un commentaire