в качестве заголовка говорится, что я пытаюсь сгенерировать случайные числа из пользовательской функции непрерывной плотности вероятности, которая:
0.001257 *x^4 * e^(-0.285714 *x)
, чтобы сделать это, я использую (на python 3) scipy.stats.rv_continuous
и затем rvs()
для их генерации
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()
обратите внимание, что я использовал Decimal, чтобы избавиться от OverflowError: (34, 'Result too large')
.
Тем не менее, я получаю ошибку RuntimeError: Failed to converge after 100 iterations
.
Что там происходит? Как правильно добиться того, что мне нужно сделать?