private void button1_Click(object sender, EventArgs e) { var prueba = new ParametrosEcuaciones { NumIncognitas = int.Parse(textBox_NumIncognitas.Text) }; var coef = new List <double>(); //coef.Add(5); coef.Add(2); coef.Add(0); coef.Add(2); //coef.Add(2); coef.Add(1); coef.Add(-1); coef.Add(0); //coef.Add(2); coef.Add(3); coef.Add(-1); coef.Add(3); //recorre filas var cont = 0; foreach (DataGridViewRow row in dataGridView1.Rows) { cont++; //recorre las celdas de la columnas if (cont <= int.Parse(textBox_NumIncognitas.Text)) { foreach (DataGridViewCell cel in row.Cells) { coef.Add(Convert.ToDouble(cel.Value)); } } } prueba.Coeficientes = coef; var resul = metodosSistemaEcuaciones.GaussJordan(prueba); foreach (var item in resul.Resultados) { dataGridView2.Rows.Add(item); } }
public ResultadoRegresion MinimosCuadradosPolinomioGradoN(ParametrosRegresion parametros) { var resul = new ResultadoRegresion(); double sumatoriaX = parametros.X.Sum(); double sumatoriaY = parametros.Y.Sum(); double r = 0; while (parametros.Grado <= 10 && r <= parametros.Error) { double[,] matriz = new double[parametros.Grado + 1, parametros.Grado + 2]; resul = null; resul = new ResultadoRegresion(); var pot = 0; for (int columna = 0; columna < parametros.Grado + 1; columna++) { if (columna > 0) { pot = columna; for (int i = 0; i < parametros.Grado + 1; i++) { matriz[i, columna] = RetornarSumXpotencia(parametros.X, pot); pot++; } } else if (columna == 0) { pot = 1; matriz[0, 0] = parametros.NumPares; for (int i = 1; i < parametros.Grado + 1; i++) { matriz[i, columna] = RetornarSumXpotencia(parametros.X, pot); pot++; } } } for (int i = 0; i < parametros.Grado + 1; i++) { if (i != 0) { pot = 1; matriz[i, parametros.Grado + 1] = RetornarXPorY(i, parametros.X, parametros.Y); pot++; } else { matriz[i, parametros.Grado + 1] = parametros.Y.Sum(); } } //var SistemaDeEcucuaciones = new SistemaDeEcuaciones(); var param = new ParametrosEcuaciones(); param.NumIncognitas = parametros.Grado + 1; for (int i = 0; i < parametros.Grado + 1; i++) { for (int c = 0; c < parametros.Grado + 2; c++) { param.Coeficientes.Add(matriz[i, c]); } } var resultadoGauss = metodosSistemaEcuaciones.GaussJordan(param); r = CalcularR(parametros.X, parametros.Y, resultadoGauss.Resultados); parametros.Grado++; resul.Efectividad = r; resul.Resul = resultadoGauss.Resultados; resul.GradoFinal = parametros.Grado - 1; } return(resul); }