来自C ++中多元正态/高斯分布的样本
||
我一直在寻找从多元正态分布采样的便捷方法。有谁知道一个现成的代码片段可以做到这一点?对于矩阵/向量,我更喜欢使用Boost或Eigen或其他我不熟悉的非凡的库,但是我可以适时使用GSL。如果该方法接受非负定协方差矩阵而不是需要正定(例如,如Cholesky分解),我也很喜欢它。这在MATLAB,NumPy和其他工具中都存在,但是我很难找到现成的C / C ++解决方案。
如果我必须自己实现它,我会抱怨,但这很好。如果我这样做了,维基百科让我听起来应该
生成n个0均值,单位方差的独立正常样本(boost将这样做)
求出协方差矩阵的特征分解
按相应特征值的平方根缩放n个样本中的每个样本
通过将缩放后的向量预先乘以分解发现的正交本征向量矩阵来旋转样本向量
我希望这个工作很快。是否有人应该何时去检查协方差矩阵是否为正,是否有直觉?如果是,则改用Cholesky?
没有找到相关结果
已邀请:
3 个回复
缔恃钨
烫珊
避免了
东西:
可以用作
视蕉梁拌客