martes, 21 de septiembre de 2010

Librerias para realizar la simulacion montecarlo


Esta vez programaremos la simulacion del metodo de montecarlo
utilizando unas librerias para visual studio.
al final del post les paso el link para descargarlas

Solo les pondre como se implementan las librerias para que ustedes hagan el resto

para empezar primero hay que importar las librerias a nuestro proyecto
damos click derecho en Referencias y seleccionamos añadir nueva referencia
despues buscamos en la pestaña de examinar las 4 librerias y asi ya las tendremos agregadas al proyecto.

pero para poder usarlas hay que agregar la referencia a cada una de la siguiente forma
al inicio del codigo de la forma añadimos a las ya existentes

using CuadradoMedio;  //libreria
using Corridas; //libreria
using TablaZ;//libreria
using Montecarlo;//libreria

nota(estas librerias no son nativas de visual studio yo las programe por eso necesitan importarlas)

despues pasaremos a usar la primera libreria CuadradoMedio para generar los numeros aleatorios

cuadradoM metodo = new cuadradoM();          

esta linea  inicialisa la clase de la primer libreria

metodo.Generar(digitos, cantidad, semilla);     

y esta usa el metodo de la libreria1 para generar los numeros y hay que pasarle 3 variables que deben ser de tipo double  estas deben ser el tamaño de digitos de la semilla, cuantos numero quiere generar

y el valor de la semilla. Esto nos generara un arreglo en la libreria y para usarlo hay que poner esta linea
metodo.numeros[];  asi podemos meterlo en un ciclo y copiar sus valores a otro arreglo que este en el proyecto

ahora para usar la segunda libreria que es de validar que los numeros sean aleatorios usando la prueba de corridas arriba y abajo de la media hay que hacer lo siguiente:

 corridasArribaAbajo corridas = new corridasArribaAbajo(); 
 corridas.validar(cantidad, numerosAleatorios);

a esta hay que enviarle la cantidad de numeros que se generaron en double
y el arreglo double de numeros generados
y esta libreria hara la prueba y de ella podremos sacar los siguientes datos:
todos son de tipo double a excepcion de transformacion que es string

corridas.media                        //el promedio de los numeros generados
corridas.totalcorridas            //cuantas corridas hubo
corridas.ceros                       //total de ceros
corridas.unos                       //total de unos
corridas.esperado                //valor esperado
corridas.estadistico             //valor estadistico
corridas.varianza                //valor de la varianza
corridas.transformacion;       //los numeros aleatorios convertidos a ceros o unos

La siguiente libreria es para  obtener los datos de la tabla z

                ztabla tabla = new ztabla();

                tabla.PruebaZ(enviaralfa);
  a esta libreria debemos enviarle el porcentaje de alfa  en tipo double
y podremos sacar de esta el valor de z de la siguiente forma;

tabla.z;

Para finalizar utilizamos la ultima libreria montecarlo

 montecarloSimulacion montecarlo = new montecarloSimulacion();                montecarlo.realizar(digitos, cantidad, numerosAleatorios, d1, d2, d3, d4, d5, f1, f2, f3, f4, f5);

todos los datos que se envian a esta libreria son de tipo double
la cantidad de digitos de la semilla, el arreglo de numeros aleatorios, la demanda1, 2,3,4y 5 asi como los dias de observacion 1,2,3,4y 5

             y esta nos dara los siguientes valores que podemos utilizarlos como queramos de la sig forma recordando que todos son doubles:

montecarlo.prob1;        //probabilidad de ocurrencia 1
montecarlo.prob2;
montecarlo.prob3;
montecarlo.prob4;
montecarlo.prob5;
                                        //probabilidad de ocurrencia acumulada
montecarlo.probac1;
 montecarlo.probac2;
montecarlo.probac3;
montecarlo.probac4;
montecarlo.probac5;
                                     //intervalos
montecarlo.intervalo1;
 montecarlo.intervalo2;
 montecarlo.intervalo3;
 montecarlo.intervalo4;
montecarlo.intervalo5;



 //arreglo double con la demanda de cada numero que se genero(estan en la misma posicion)
Resultado[];
               //probabilidad Simulada con los numeros aleatorios
montecarlo.ProbaSimulada;
//probabilidad de los datos que ingreso (la real)
montecarlo.ProbaEsperada;



y eso seria todo

aqui les dejo las librerias
http://www.mediafire.com/?ue49sayb4d765vv

la contraseña es APTX4869

No hay comentarios:

Publicar un comentario