Spec-Zone.ru › NumPy 2.0

numpy.random.rayleigh

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

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

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

Примечание

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

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

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

sizeint или кортеж из int, необязательно

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

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

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

См. также

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

Spec-Zone.ru

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