Gauss Jordan

Es una variante del método de gauss, en lugar de obtener una matriz triangular obtendremos una matriz identidad, por consiguiente no será necesario hacer sustitución hacia atrás para obtener nuestra solución.

Ejemplo

  • Normalizar la primera fila hacer 1 el primer elemento dividiendo toda la fila entre 3

  • Hacer ceros la primera columna
Fila pivote = primera fila
k = 0.1 * 1, la segunda fila será  = segunda fila – (k * fila pivote)
k = 0.3 * 1, la tercera fila será  = tercera fila – (k * fila pivote)

  • Se repite el mismo proceso para la segunda columna (fila pivote = segunda fila) y la tercera (fila pivote = tercera fila) para obtener la solución siguiente:

Algoritmo escrito en C# para la solución de un sistema de ecuaciones por el método de gauss-jordan

        private void GJ(ref double[,] matrix, int filas, int columnas)
        {
            for (int fpivot = 0; fpivot < filas; fpivot++)
            {
 
                double nor = matrix[fpivot, fpivot];
 
                for (int i = 0; i < columnas; i++)
                {
                    matrix[fpivot, i] = matrix[fpivot, i] / nor;
                }
 
                int f = fpivot + 1;
                if (f == filas) f = 0;
 
                for (int fila = 0; fila < filas - 1; fila++)
                {                
                    double k = matrix[f, fpivot];
 
                    for (int c = fpivot; c < columnas; c++)
                    {
                        matrix[f, c] = matrix[f, c] - (k * matrix[fpivot, c]);
                    }
                 
                    if (f == filas - 1) f = 0;
                    else f++; 
                }
            }
        }
 
Proyecto que implementa el algoritmo para gauss jordan en C#
 


Comentarios

Publicar un comentario

Entradas populares de este blog

Conectar SQL Server con Java

Procesamiento de imágenes en OpenCV

Acceso a la webcam con OpenCV

Entrenar OpenCV en Detección de Objetos

Gauss Seidel y Jacobi