Article View: chile.comp.misc
Article #35399Re: Distribucion exponencial en C
From: Gaston Bravo
Date: Mon, 06 Apr 1998 00:00
Date: Mon, 06 Apr 1998 00:00
47 lines
2376 bytes
2376 bytes
Yobui! (vvrsalov@antonia.webhost.cl) wrote:
: Eduardo Kaftanski <ekaftan@antonia.webhost.cl> el 6 Apr 1998 00:41:04 -0400 escribio:
: } In article <6g9m7r$j4a$1@antonia.webhost.cl>,
: } Yobui! <vvrsalov@antonia.webhost.cl> wrote:
: } >Francisca Medina H. <fmedina@antonia.webhost.cl> el 6 Apr 1998 04:19:58 GMT escribio:
: } >} Necesito implementar una distribucion exponencial (y una normal) en C
: } >} y ni siquiera se que significa...
: } Como hace mademoiselle para implementar una funcion en C que
: } retorne un numero aleatorio en alguna de dichas distribuciones?
Para Generar una Variable aleatoria , se debe utilizar la Inversa
de la Funcion de distribucion acumulada. Para la exponencial es:
U=Prob(x<=X)=F((X,Lambda)=1-exp(-Lambda*X)
U sigue una uniforme (0,1),
la inversa se calcula despejando X en funcion de U, esto es:
X=-ln(1-U)/Lambda
Luego, para generar una Variable X que siga la distr. exp. con
parametro Lambda, debes generar un numero
U=random[0,1[ (abierto en 1 para que no quede la escoba)
y calcular X segun la ecuacion anterior
Para generar una Normal , es un poco mas complicado, porque la
funcion densidad de probabilidad no es integrable, luego no
tiene funcion acumulada explicita, ni mucho menos inversa.
Asi que hay que utilizar aproximaciones y .... en fin
En el peor de los casos usa el Excel que viene con buen help al respecto
y hace lo que tu quieres :)
: tons deberia ser algo como
: lambda=rand();
: mu=rand();
: sigma^2=rand();
Estos random generarian Parametros aleatorios
y no variables aleatorias, cuidado...
Saludos
--
Gaston Bravo Hurtado
gbravo@dii.uchile.cl Est. Ing. Civ. Industrial
gbravo@dcc.uchile.cl U. de Chile
Technical Details
Message-ID:
<6gaqsf$99v@dcc.uchile.cl>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6g9l5e$ikk$1@antonia.webhost.cl> <6g9m7r$j4a$1@antonia.webhost.cl> <6g9md0$jmi@antonia.webhost.cl> <6g9mj9$j4a$3@antonia.webhost.cl>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII-7-bit X-Google-Thread: 107d6b,dab859bce1b8fd5d X-Google-Attributes: gid107d6b,public From: gbravo@anakena.dcc.uchile.cl (Gaston Bravo) Subject: Re: Distribucion exponencial en C Date: 1998/04/06 Message-ID: <6gaqsf$99v@dcc.uchile.cl> X-Deja-AN: 341601879 References: <6g9l5e$ikk$1@antonia.webhost.cl> <6g9m7r$j4a$1@antonia.webhost.cl> <6g9md0$jmi@antonia.webhost.cl> <6g9mj9$j4a$3@antonia.webhost.cl> Organization: Universidad de Chile, Depto. de Ciencias de la Computacion Newsgroups: chile.comp.misc