private void button3_Click(object sender, EventArgs e) { double[,] aux = new double[Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox1.Text) + 1]; for (int c = 0; c <= Convert.ToInt32(textBox1.Text) - 1; c++) { for (int f = 0; f <= Convert.ToInt32(textBox1.Text); f++) { double elem; var esValido = double.TryParse(dataGridView1.Rows[c].Cells[f].Value.ToString(), out elem); if (esValido) { aux[c, f] = elem; } } } button4.Enabled = true; button2.Enabled = false; button3.Enabled = false; SistemaEcuaciones Seidel = new SistemaEcuaciones(); var ListaResultados = new List <double>(); ListaResultados = Seidel.GaussS(aux, Convert.ToInt32(textBox1.Text), 0); dataGridView2.ColumnCount = Convert.ToInt32(textBox1.Text) + 1; dataGridView2.RowCount = 1; dataGridView2.RowHeadersVisible = false; for (int i = 0; i < Convert.ToInt32(textBox1.Text) + 1; i++) { dataGridView2.Columns[i].HeaderText = "x" + i; if ((Convert.ToInt32(textBox1.Text)) == i) { dataGridView2.Columns[i].HeaderText = "ITERACIONES"; } } for (int f = 0; f <= Convert.ToInt32(textBox1.Text); f++) { dataGridView2.Rows[0].Cells[f].Value = ListaResultados[f]; } }
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = // Resolver sistema // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = private void btnResolver_Click(object sender, EventArgs e) { SistemaEcuaciones ecuaciones = new SistemaEcuaciones(nIncógnitas); try { for (int i = 0; i < nIncógnitas; i++) { for (int j = 0; j < nIncógnitas; j++) { ecuaciones.Coeficientes[i, j] = new Fracción(decimal.Parse(Textboxes[i, j].Text)); } ecuaciones.Independientes[i, 0] = new Fracción(decimal.Parse(Textboxes[i, nIncógnitas].Text)); }//for i } catch (Exception ex) { MessageBox.Show(ex.Message, "Error al tratar de solucionar"); return; }//catch try { Matriz <Fracción> solución = Ecuaciones.Resolver(ecuaciones); string cadena = "El resultado de este sistema es:\n"; for (int i = 0; i < nIncógnitas; i++) { cadena += "X" + (i + 1) + " = " + solución[i, 0] + "\n"; } MessageBox.Show(cadena, "Resultado"); } catch (Exception) { MessageBox.Show( "No existe una solución de este sistema o no se puede resolver.", "Error al tratar de solucionar" ); } //catch }
/// <summary> /// Resuelve el sistema de ecuaciones proporcionado por método de matriz inversa. /// </summary> /// <param name="ecuaciones">Sistema de ecuaciones a resolver</param> /// <returns>Una matriz de n x 1 con los valores de las incógnitas</returns> public static Matriz <Fracción> Resolver(SistemaEcuaciones ecuaciones) { return(new Matriz <Fracción>(ecuaciones.Independientes / ecuaciones.Coeficientes)); }