Example #1
0
        public double CalculateConsistency(int dimension, double[,] matrix)
        {
            double[] NthRoot = _vectorFiller.NthRoots(dimension, matrix);
            double[] Weight  = _vectorFiller.Weights(dimension, NthRoot);

            double[] ColumnSum = new double[dimension];
            for (int j = 0; j < dimension; j++)
            {
                double temp = 0;
                for (int i = 0; i < dimension; i++)
                {
                    temp += matrix[i, j];
                }
                ColumnSum[j] = temp;
            }

            double LambdaMax = 0;

            for (int i = 0; i < dimension; i++)
            {
                LambdaMax += (ColumnSum[i] * Weight[i]);
            }

            double[] Coefficients = new double[9] {
                0, 0, 0.58, 0.9, 1.12, 1.24, 1.32, 1.41, 1.45
            };

            return(dimension <= 2 ? 0 : ((LambdaMax - dimension) / (dimension - 1)) / Coefficients[dimension]);
        }
Example #2
0
        public double[] FillMatrix(int dimension, double[] values)
        {
            double[,] M = new double[dimension, dimension];

            for (int i = 0; i < dimension; i++)
            {
                for (int j = i + 1; j < dimension; j++)
                {
                    M[i, j] = (values[i + j - 1] > 0) ? values[i + j - 1] : -(1 / values[i + j - 1]);
                    M[j, i] = 1 / M[i, j];
                }
                M[i, i] = 1;
            }
            return(_vectorFiller.NthRoots(dimension, M));
        }