예제 #1
0
        private void generarDistribucion()
        {
            if (rad_uniforme.Checked)
            {
                var a = double.Parse(txt_a.Text);
                var b = double.Parse(txt_b.Text);
                _distribucion = new DistribucionUniforme(a, b, _generadorAleatorio);
            }

            if (rad_normal.Checked)
            {
                var media    = double.Parse(txt_media.Text);
                var varianza = double.Parse(txt_varianza.Text);
                _distribucion = new DistribucionNormal(media, varianza, _generadorAleatorio);
            }

            if (rad_exponencial.Checked)
            {
                var lambda = double.Parse(txt_lambda.Text);
                _distribucion = new DistribucionExponencialNegativa(lambda, _generadorAleatorio);
            }

            var tamañoMuestra      = int.Parse(txt_cant_nroC.Text);
            var cantidadIntervalos = int.Parse(txt_IntC.Text);
            var alfa = txt_chicierto.Text;

            try
            {
                _pruebaChiCuadrado = new PruebaChiCuadrado(_distribucion, tamañoMuestra, cantidadIntervalos, alfa);
            }
            catch (Exception)
            {
                var grados = int.Parse(txt_IntC.Text) - _distribucion.getCantidadParametros() - 1;

                MessageBox.Show(grados <= 0
                    ? @"Grados de libertad insuficientes, utilice más intervalos"
                    : @"Falla la prueba de Chi Cuadrado porque las frecuencias esperadas tienden a cero, utilice menos intervalos");

                txt_mA.Focus();
                return;
            }
            for (var i = 0; i < tamañoMuestra; i++)
            {
                var valor = _pruebaChiCuadrado._valores[i];
                dataGridView1.Rows.Add(i + 1, valor);
            }
            CompletarTabla(3);
        }
예제 #2
0
 public grafico(PruebaChiCuadrado pruebachi)
 {
     InitializeComponent();
     _pruebaChiCuadrado = pruebachi;
     cargarHistograma(3);
 }