均匀分布在单位磁盘上的点(2D)

时间:2017-02-15 20:10:11

标签: r normal-distribution uniform-distribution

我试图从单位磁盘上的均匀分布中生成10,000个点并绘制这些点。

我使用的方法有三个步骤。第一步是生成点x的大小。这一点有cdf F(x)= x ^ 2 min(x)= 0和max(x)= 1.第二步涉及从多元正态分布生成二维向量(我将称之为y),其中mu为零向量和西格玛是2×2单位矩阵 - MVN(0,I)。最后,我将矢量y标准化为长度x。我试图在R中编写解决方案,但我不认为我的答案是正确的。如果我能指出正确的方向,我将非常感激。

u = runif(10000)
x = u^2
y = mvrnorm(10000, mu=rep(0,2), Sigma=diag(2))
y_norm = (x*y)/sqrt(sum(y^2))
plot(y_norm, asp = 1)

我使用MASS包用于mvrnorm。此外,我还包括了我最终得到的情节:enter image description here

1 个答案:

答案 0 :(得分:1)

您需要计算y矩阵中每一行的长度,得到y中所有数字之和的平方根,这只是将多项式缩放一个常数。此外,您需要x而不是sqrt(u) - 此代码将每行按其长度和用户u^2缩放进行标准化,并且看起来很漂亮且均匀:

sqrt(u)

有更好的方法可以在光盘上制作统​​一的点,除非这只是一种练习方式......