C++ 从包裹正态分布中取样并同时获得密度
假设给出了C++ 从包裹正态分布中取样并同时获得密度,c++,random,c++17,distribution,normal-distribution,C++,Random,C++17,Distribution,Normal Distribution,假设给出了double x,sigma,我们想从[0,1)上的y样本,平均x和标准偏差sigma 我们能否以一种巧妙的方式,在y处同时获得密度q的值q 采样y确实很简单: std::random_device rd; std::mt19937 g{ rd() }; std::normal_distribution<> d; double y = x + sigma * d(g); y -= std::floor(y); std::随机设备rd; std::mt19937 g{rd
double x,sigma
,我们想从[0,1)
上的y
样本,平均x
和标准偏差sigma
我们能否以一种巧妙的方式,在y
处同时获得密度q
的值q
采样y
确实很简单:
std::random_device rd;
std::mt19937 g{ rd() };
std::normal_distribution<> d;
double y = x + sigma * d(g);
y -= std::floor(y);
std::随机设备rd;
std::mt19937 g{rd()};
std:正态分布d;
双y=x+sigma*d(g);
y-=标准::楼层(y);
但是现在我需要分别计算q(y)
,也许我们可以用逆变换采样来获得q(y)
备注:如果
phi
表示正态分布的密度,平均值0
和标准偏差sigma
,psi(x)
表示所有整数k
上的phi(k+x)
之和,则[0,1)
平均值x
和标准偏差sigma
具有密度q(y):=psi(y-x)
如何将它们“一起”评估优于事后评估(适当截断)总和?您是否担心非常大的sigma
或其他什么?这可能是相关的