Spec-Zone.ru › NumPy 1.20

numpy.random.Generator.weibull

метод

random.Generator.weibull(a, size=None)

Генерирует выборки из распределения Вейбулла.

Генерирует выборки из однопараметрического распределения Вейбулла с заданным параметром формы a.

X = (-ln(U))^{1/a}

Здесь U генерируется из равномерного распределения на (0,1].

Более распространённое двухпараметрическое распределение Вейбулла, включающее параметр масштаба \lambda задаётся как X = \lambda(-ln(U))^{1/a}.

Параметры
afloat or array_like of floats

Параметр формы распределения. Должен быть неотрицательным.

sizeint or tuple of ints, optional

Форма выходного массива. Если заданная форма, например, (m, n, k), то генерируется m * n * k выборок. Если size = None (по умолчанию), то возвращается одно значение, если a является скаляром. В противном случае генерируется np.array(a).size выборок.

Возвращает
outndarray or scalar

Сгенерированные выборки из заданного параметрами распределения Вейбулла.

См. также

scipy.stats.weibull_max
scipy.stats.weibull_min
scipy.stats.genextreme
gumbel

Примечания

Распределение Вейбулла (или распределение экстремальных значений типа III для наименьших значений, СЕВ типа III, или распределение Росина—Раммлера) является одним из класса обобщённых распределений экстремальных значений (ОБЭЗ), используемых в задачах моделирования экстремальных значений. Этот класс включает распределения Гумбеля и Фреше.

Плотность вероятности для распределения Вейбулла:

p(x) = \frac{a}
{\lambda}(\frac{x}{\lambda})^{a-1}e^{-(x/\lambda)^a},

где a — параметр формы, а \lambda — параметр масштаба.

Функция имеет максимум (моду) в \lambda(\frac{a-1}{a})^{1/a}.

При a = 1, распределение Вейбулла сводится к экспоненциальному распределению.

Ссылки

1

Валоди Вейбулл, Королевский технический университет, Стокгольм, 1939 «Статистическая теория прочности материалов», Труды Шведской инженерной академии № 151, 1939, Литографическая типография Генерального штаба, Стокгольм.

2

Валоди Вейбулл, «Функция распределения, имеющая широкую область применения», Журнал прикладной механики ASME Paper 1951.

3

Википедия, «Распределение Вейбулла», https://en.wikipedia.org/wiki/Weibull_distribution

Примеры

Генерация выборок из распределения:

>>> rng = np.random.default_rng()
>>> a = 5. # shape
>>> s = rng.weibull(a, 1000)

Отображение гистограммы выборок вместе с функцией плотности вероятности:

>>> import matplotlib.pyplot as plt
>>> x = np.arange(1,100.)/50.
>>> def weib(x,n,a):
...     return (a / n) * (x / n)**(a - 1) * np.exp(-(x / n)**a)
>>> count, bins, ignored = plt.hist(rng.weibull(5.,1000))
>>> x = np.arange(1,100.)/50.
>>> scale = count.max()/weib(x, 1., 5.).max()
>>> plt.plot(x, weib(x, 1., 5.)*scale)
>>> plt.show()
../../../_images/numpy-random-Generator-weibull-1.png

© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/random/generated/numpy.random.Generator.weibull.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API