[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gsl] gsl_ran_gaussian giving non-zero mean !
From: |
Leo Razoumov |
Subject: |
Re: [Help-gsl] gsl_ran_gaussian giving non-zero mean ! |
Date: |
Tue, 13 Oct 2009 10:31:06 -0400 |
On 2009-10-13, Sumesh P.T. <address@hidden> wrote:
> I am using gsl_ran_gaussian to generate a random number distribution
> with a specified standard deviation. Surprisingly the mean of the
> distribution is not zero !!! Can it be possible? The mean does not
> fluctuate around zero, but rather tends to be with a positive
> value....Is this expected? or my interpretation is wrong? Has anyone
> tried this?
> I am giving my program and result here:
>
> ###########Program##########################3
> #include <stdlib.h>
> #include <math.h>
> #include "concen.h"
> #include <gsl/gsl_errno.h>
> #include <gsl/gsl_matrix.h>
> #include <gsl/gsl_odeiv.h>
> #include <gsl/gsl_rng.h>
> #include <gsl/gsl_randist.h>
>
> int main() {
> double y,sum=0.;
> const gsl_rng_type * R;
> gsl_rng * r;
> gsl_rng_env_setup();
> R = gsl_rng_default;
> r = gsl_rng_alloc (R);
> for(int i=1;i<=10000;i++) {
> y = gsl_ran_gaussian(r,1.);
> sum=sum+y;
> printf("%f, %f, %f ,\n",y,sum,sum/i);
> }
> }
> ##############################################
> ##############################################
> Last 10 values after calling it 10000 times
> ------------------------------------------------------
> random sum mean
> 0.806397, 130.966701, 0.013108 ,
> -0.096531, 130.870170, 0.013097 ,
> -0.440024, 130.430146, 0.013052 ,
> 0.482622, 130.912768, 0.013099 ,
> 0.798685, 131.711453, 0.013178 ,
> 1.904331, 133.615784, 0.013367 ,
> 0.124113, 133.739897, 0.013378 ,
> -0.728447, 133.011450, 0.013304 ,
> -1.790865, 131.220585, 0.013123 ,
> -2.349805, 128.870779, 0.012887 ,
>
> Both sum and mean are positive values with no fluctuations around
> zero! Is not that surprising?
>
> Thanks,
> sumesh
>
I do not see any problem.
Your mean of 0.01 is consistent with your sample size. Mean converges
to zero rougly as 1/sqrt(N). Could you repeat you test with N=1000000
and N=10^8
To see fluctuations, please, change rng seed on each run.
--Leo--