Да, я нашел свою ошибку.Я не использовал обратный интеграл от PDF для вычисления «веса» каждой точки.Для тех, кому интересно, мой условный цикл читается как:
for (i = 0; i <= N; i++) {
X = (double) rand() / (double) RAND_MAX;
integrand = function(inverse(X)) / PDF(inverse(X));
sum = sum + integrand;
sum2 = sum2 + (integrand * integrand);
}
average = sum / N;
average2 = sum2 / N;
Где PDF - моя функция плотности вероятности, обратный - обратный интеграл от PDF.и среднее и среднее2 представляют и соответственно.