我必须在C++环境下开发normpdf函数。但我有个问题..。
MATLAB中的normpdf(X,u,σ)与normal_distribution高斯(u,σ)相似;
X值在哪里?这意味着我想要高斯函数,而不是高斯随机函数。如何用高斯分布抽样输出值?
谢谢。
发布于 2015-04-01 17:57:00
你可以很容易地自己写
inline double squared(double x)
{
return x*x;
}
double normpdf(double x, double u, double s) {
return (1.0/(s*sqrt(2.0*M_PI)))*exp(-0.5*squared(x-u)/squared(s));
}更新
这个可能要快一点,少一个乘法。
const double ONE_OVER_SQRT_2PI = 0.39894228040143267793994605993438;
double normpdf(double x, double u, double s) {
return (ONE_OVER_SQRT_2PI/s)*exp(-0.5*squared((x-u)/s));
}https://stackoverflow.com/questions/29397296
复制相似问题