随机多元正态分布

时间:2015-01-07 16:16:20

标签: java random distribution

我遇到了一个问题,我必须能够在Java中生成一组随机选择的多元正态分布数,其均值为0,给定3 * 3方差 - 协方差矩阵。

这样做有简单的方法吗?

2 个答案:

答案 0 :(得分:4)

1)使用Dima建议的库实现。

或者,如果您真的觉得需要自己做这件事:

2)假设你想要生成具有平均向量M和方差/协方差矩阵V的法线,在V上执行Cholesky Decomposition以得到下三角矩阵L,使得V = LL t (其中上标t表示转置)。生成三个独立标准法线的向量Z(使用Random.nextGaussian()来获取各个元素)。然后LZ + M将具有所需的多元正态分布。

答案 1 :(得分:2)

Apache Commons有你想要的东西:

MultivariateNormalDistribution mnd = new MultivariateNormalDistribution(means, covariances);
double vals[] = mnd.sample();