я применил нормальную функцию распределения, используя уравнение, приведенные в этой ссылке: http://en.wikipedia.org/wiki/Normal_distributionНеверный ответ в нормальном распределении в C
Я сделал этот код для нормального распределения
float m=2.0;
float s=0.5;
float x[3]={1.0, 2.0, 3.0};
float xs[3];
const float pi = 3.141;
for (int i=0; i<3; i++)
{
xs[i]=(1/s*sqrt(2*pi))*exp(-(pow(x[i]-m,2)/2*pow(s,2)));
printf("\n%f",xs[i]);
}
Ответ для этого кода является 4,42, 5,01, 4,42
и у меня есть один и тот же код в Matlab
x_s_new=[1 2 3];
x_s=2+0.5.*randn(1,9);
x_s=x_s_new+0.5.*randn(1,3);
plot(x_s_new)
, но ответы в matlab равны 0,8, 1,9, 3,7
Может ли кто-нибудь сказать мне, где я иду не так?
Я хочу подать нормальное распределение с использованием C
Спасибо :)
pi аппроксимация может быть лучше .... Использовать значение в math.h –
'randn' не является CDF или PDF для нормального распределения, его генератором случайных чисел! Проверьте 'normpdf' и' normcdf' – Daniel
Перед тем, как начать конвертировать код. вы должны очистить свой код matlab. В чем цель «x_s = 2 + 0,5. * Randn (1,9);»? – Daniel