Ejemplo n.º 1
0
        public ResultadoLagranje PolinomioLagranje(ParametrosRegresion parametros, double valorX)
        {
            var resultado = new ResultadoLagranje();

            double x     = valorX;
            double sumaY = 0;

            for (int i = 0; i < parametros.X.Count; i++)
            {
                double numerador   = 1;
                double denominador = 1;

                for (int j = 0; j < parametros.X.Count; j++)
                {
                    if (i != j)
                    {
                        numerador   = (x - parametros.X[j]) * numerador;
                        denominador = (parametros.X[i] - parametros.X[j]) * denominador;
                    }
                }

                sumaY = (numerador / denominador) * parametros.Y[i] + sumaY;
            }

            resultado.Interpolacion = sumaY;

            return(resultado);
        }
        private void button2_Click_1(object sender, EventArgs e)
        {
            bool band = true;

            int numero = Convert.ToInt32(this.textBox1.Text);

            double[] vecx = new double[numero];
            double[] vecy = new double[numero];

            List <TextBox> lista = panel1.Controls.OfType <TextBox>().ToList();

            if (VerificarDatosMetodo(lista) == true && this.textBox2.Text != "")
            {
                for (int i = 0; i < numero; i++)
                {
                    vecx[i] = Convert.ToDouble(lista.ElementAt(i).Text);
                }
                int c = 0;
                int n = numero * 2;
                for (int j = numero; j < n; j++)
                {
                    vecy[c] = Convert.ToDouble(lista.ElementAt(j).Text);
                    c++;
                }
            }
            else
            {
                MessageBox.Show("Complete todos los campos");

                band = false;
            }
            if (band == true)
            {
                DatosParametros datos = new DatosParametros();
                double          num   = Convert.ToDouble(this.textBox2.Text);

                datos.NumPares = numero;
                datos.X        = vecx;
                datos.Y        = vecy;
                datos.Grado    = numero - 1;

                ResultadoLagranje Result = new ResultadoLagranje();

                FormularioPrincipal formularioprincipal = this.Owner as FormularioPrincipal;
                if (formularioprincipal != null)
                {
                    Result = formularioprincipal.InterpolacionPolinomioLagranje(datos, num);

                    string variable = "";

                    variable = Convert.ToString("RESULTADO: " + Result.Interpolacion);

                    MessageBox.Show(variable);
                }
            }
        }
Ejemplo n.º 3
0
        //LAGRANJE
        public ResultadoLagranje InterpolacionPolinomioLagranje(DatosParametros Datos, double ValorX)
        {
            ResultadoLagranje Resultado = new ResultadoLagranje();

            double[] ResultadosP = new double[Datos.NumPares];

            for (int z = 0; z < Datos.NumPares; z++)
            {
                double Nominadores = 1;
                double Denominador = 1;

                for (int i = 0; i < Datos.NumPares; i++)
                {
                    if (i != z)
                    {
                        Nominadores = Nominadores * (ValorX - Datos.X[i]);
                        Denominador = Denominador * (Datos.X[z] - Datos.X[i]);
                    }
                }

                Resultado.Interpolacion += Datos.Y[z] * (Nominadores / Denominador);
            }
            return(Resultado);
        }