Spec-Zone.ru › NumPy 1.20

numpy.random.RandomState.rayleigh

метод

random.RandomState.rayleigh(scale=1.0, size=None)

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

Распределения \chi и Вейбулла являются обобщениями распределения Рейли.

Примечание

Новый код должен использовать метод rayleigh экземпляра default_rng(); см. Быстрый старт.

Параметры
scalefloat or array_like of floats, optional

Масштаб, также совпадающий с модой. Должен быть неотрицательным. По умолчанию равен 1.

sizeint or tuple of ints, optional

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

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

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

См. также

Generator.rayleigh

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

Примечания

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

P(x;scale) = \frac{x}{scale^2}e^{\frac{-x^2}{2 \cdotp scale^2}}

Распределение Рейли может возникать, например, если восточный и северный компоненты скорости ветра имеют идентичные гауссовы распределения с нулевым средним. Тогда скорость ветра будет иметь распределение Рейли.

Ссылки

1

Brighton Webs Ltd., «Распределение Рейли», https://web.archive.org/web/20090514091424/http://brighton-webs.co.uk:80/distributions/rayleigh.asp

2

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

Примеры

Генерация значений из распределения и построение гистограммы

>>> from matplotlib.pyplot import hist
>>> values = hist(np.random.rayleigh(3, 100000), bins=200, density=True)

Высота волн часто подчиняется распределению Рейли. Если средняя высота волны составляет 1 метр, то какая часть волн, вероятно, будет иметь высоту более 3 метров?

>>> meanvalue = 1
>>> modevalue = np.sqrt(2 / np.pi) * meanvalue
>>> s = np.random.rayleigh(modevalue, 1000000)

Процент волн с высотой более 3 метров:

>>> 100.*sum(s>3)/1000000.
0.087300000000000003 # random

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

Spec-Zone.ru

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