Exemple #1
0
        public static IR.RealNumber GetMinor(this RealMatrix matrix, int i, int j)
        {
            var minorMatrix = new RealMatrix(matrix.RowCount - 1, matrix.ColumnCount - 1);
            int row         = -1;
            int column      = -1;

            for (int k = 0; k < matrix.RowCount; k++)
            {
                if (k == i)
                {
                    continue;
                }
                row++;
                for (int l = 0; l < matrix.ColumnCount; l++)
                {
                    if (l == j)
                    {
                        continue;
                    }
                    column++;
                    minorMatrix.M[row][column] = matrix.M[k][l];
                }
                column = -1;
            }
            minorMatrix.PrintToConsole();
            return(minorMatrix.GetDeterminant(isMinor: true));
        }
Exemple #2
0
        public static RealMatrix GetInverse(this RealMatrix matrix)
        {
            if (!matrix.IsSquareMatrix)
            {
                Console.WriteLine("Non square matrices cannot be inversed.");
                return(null);
            }

            var identityMatrix = matrix.GetIdentityMatrix();

            var newAugmentedMatrix = new RealMatrix(matrix.M, identityMatrix.M);

            newAugmentedMatrix.PrintToConsole();
            newAugmentedMatrix.GetReducedRowEchelonForm();

            return(new RealMatrix(newAugmentedMatrix.B));
        }