maxframe.tensor.random.vonmises#

maxframe.tensor.random.vonmises(mu, kappa, size=None, chunk_size=None, gpu=None, dtype=None)[源代码]#

从冯·米塞斯分布中抽取样本。

从具有指定模式(mu)和离散度(kappa)的冯·米塞斯分布中抽取样本,区间为 [-pi, pi]。

冯·米塞斯分布(也称为圆形正态分布)是单位圆上的连续概率分布。它可被视为正态分布的圆形类比。

参数:
  • mu (float or array_like of floats) -- 分布的模式(“中心”)。

  • kappa (float or array_like of floats) -- 分布的离散度,必须 >=0。

  • size (int or tuple of ints, optional) -- 输出形状。如果给定的形状是,例如 (m, n, k),则会抽取 m * n * k 个样本。如果 size 为 None``(默认),并且 ``mukappa 都是标量,则返回单个值。否则,抽取 np.broadcast(mu, kappa).size 个样本。

  • chunk_size (int or tuple of int or tuple of ints, optional) -- 每个维度上期望的块大小

  • gpu (bool, optional) -- 如果为 True,则在 GPU 上分配张量,默认为 False

  • dtype (data-type, optional) -- 返回张量的数据类型。

返回:

out -- 从参数化的冯·米塞斯分布中抽取的样本。

返回类型:

Tensor or scalar

参见

scipy.stats.vonmises

概率密度函数、分布或累积密度函数等。

备注

冯·米塞斯分布的概率密度为

\[p(x) = \frac{e^{\kappa cos(x-\mu)}}{2\pi I_0(\kappa)},\]

其中 \(\mu\) 是模式,\(\kappa\) 是离散度,\(I_0(\kappa)\) 是 0 阶修正贝塞尔函数。

冯·米塞斯以理查德·埃德勒·冯·米塞斯命名,他出生在奥匈帝国,即现在的乌克兰。他于1939年逃到美国,并成为哈佛大学的教授。他从事概率论、空气动力学、流体力学和科学哲学的研究。

引用

示例

从分布中抽取样本:

>>> import maxframe.tensor as mt
>>> mu, kappa = 0.0, 4.0 # mean and dispersion
>>> s = mt.random.vonmises(mu, kappa, 1000)

显示样本的直方图,以及概率密度函数:

>>> import matplotlib.pyplot as plt
>>> from scipy.special import i0
>>> plt.hist(s.execute(), 50, normed=True)
>>> x = mt.linspace(-mt.pi, mt.pi, num=51)
>>> y = mt.exp(kappa*mt.cos(x-mu))/(2*mt.pi*i0(kappa))
>>> plt.plot(x.execute(), y.execute(), linewidth=2, color='r')
>>> plt.show()