Exemplo n.º 1
0
        private void btn_Calcular_Click(object sender, EventArgs e)
        {
            var incognitas = Convert.ToInt16(txt_NumeroIncognitas.Text);
            var filas      = incognitas;
            var columnas   = incognitas + 1;
            ParametroGaussJordan parametro = new ParametroGaussJordan(filas, columnas)
            {
                NumeroIncognitas = incognitas,
            };

            for (int i = 0; i < filas; i++)
            {
                for (int c = 0; c < columnas; c++)
                {
                    parametro.Matriz[i, c] = Convert.ToDouble(Matriz[i, c].Text);
                }
            }

            try
            {
                var resultado = MetodoEcuaciones.GaussJordan(parametro);
                MostrarResultado(resultado);
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
        }
        public ResultadoRegresion MetodoPolinomial(ParametroRegresion parametro, int grado)
        {
            var n        = grado;
            int filas    = n + 1;
            int columnas = n + 2;

            double[,] Matriz = new double[filas, columnas];

            int contador = 0;

            for (int i = 0; i < filas; i++)
            {
                Matriz[i, columnas - 1] = CalcularSumatoriaConXElevado(parametro.ValoresX, parametro.ValoresY, i);

                contador = i;

                for (int c = 0; c < columnas - 1; c++)
                {
                    Matriz[i, c] = CalcularSumatoriaConXElevado(parametro.ValoresX, contador);

                    contador += 1;
                }
            }
            Matriz[0, 0] = parametro.ValoresX.Count;
            var resultado = Ecuaciones.GaussJordan(new ParametroGaussJordan(filas, columnas)
            {
                Matriz           = Matriz,
                NumeroIncognitas = grado + 1
            });



            double promY = parametro.ValoresY.Sum(x => x) / parametro.ValoresY.Count;

            List <double> ResultadoA = resultado.Solucion.Select(X => X.Valor).ToList();

            return(new ResultadoRegresion()
            {
                Resultado = ResultadoA,

                CoeficienteCorrelacion = CalcularCoeficienteDeCorrelacion(parametro, promY, ResultadoA)
            });
        }