예제 #1
0
        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];
            }
        }
예제 #2
0
        // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
        // 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
        }
예제 #3
0
 /// <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));
 }