标准多元正态随机向量使用Boost::random

standard multivariate normal random vector using Boost::random

本文关键字:Boost 向量 random 随机 标准      更新时间:2023-10-16

我想在二维表面上生成随机点,分布在x, y坐标周围。

我知道我需要生成的是所谓的"标准多元正态随机向量",但我不知道如何在c++中做到这一点,例如使用Boost::random库。

我知道有一个算法来生成这个,称为Box-Muller变换,但我认为这一定已经在Boost中正确实现了。

是否有任何简单的方法来生成多元正态分布,使用Boost::random?

似乎是:

// deterministic Box-Muller method, uses trigonometric functions
template<class RealType = double>
class normal_distribution
{

但是Box-Muller不是2D的。要获得2D版本,您真正需要做的就是将生成的两个随机数添加到x0, y0坐标中。