Spec-Zone.ru › NumPy 1.21

numpy.random.RandomState.rayleigh

метод

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

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

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

Примечание

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

Параметры
scalefloat или array_like float, необязательно

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

sizeint или кортеж из целых чисел, необязательно

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

Возвращает
outndarray или скаляр

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

См. также

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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/random/generated/numpy.random.RandomState.rayleigh.html

Spec-Zone.ru

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