Esempio n. 1
0
        public static double Determinant_NonRecursive(MMatrix A)
        {
            double det = 1;
            if (!A.IsSquared())
                throw new MMatrixException("Determinant of a non-square matrix doesn't exist");

            A.FactorLU_withP();
            for (int i = 0; i < A.row; ++i)
                det *= A.LU_L[i, i] * A.LU_U[i, i];
            det *= Determinant(new MMatrix(A.LU_P));

            return det;
        }
Esempio n. 2
0
 public static void FactorLU(MMatrix squaredMatrix)
 {
     if (!squaredMatrix.IsSquared())
         throw new MMatrixException("Matrix is non-square. LU factorization impossible.");
     FactorLU(squaredMatrix, squaredMatrix.row);
 }
Esempio n. 3
0
        public static double SpectralRadius(MMatrix A)
        {
            Vector Eigenvalues = new Vector();

            if (!A.IsSquared())
                throw new MMatrixException("Matrix must be squared.");
            Eigenvalues = A.QRIterationBasic(GlobalMath.MAXITER).DiagVector();
            Eigenvalues.Sort(true);

            return Math.Abs(Eigenvalues[0]);
        }