Example #1
0
        private void CalculateError()
        {
            if (Type.FullName.Equals("Projekt2.Fraction"))
            {
                Fraction result = new Fraction(0, 1);
                for (int i = 0; i < Size; i++)
                {
                    OriginalVector[i, 0] = (T)(object)Fraction.Abs((Fraction)(object)OriginalVector[i, 0] - (Fraction)(object)CalculatedVector[i, 0]);

                    if ((Fraction)(object)OriginalVector[i, 0] > (Fraction)(object)result)
                    {
                        result = (Fraction)(object)OriginalVector[i, 0];
                    }
                }
                Error       = (T)(object)result;
                ErrorString = Error.ToString();
                return;
            }
            else
            {
                for (int i = 0; i < Size; i++)
                {
                    OriginalVector[i, 0] = (T)(object)Math.Abs((dynamic)(object)OriginalVector[i, 0] - (dynamic)(object)CalculatedVector[i, 0]);
                }
                Error = (T)(object)OriginalVector.Cast <dynamic>().Max();
            }
        }
Example #2
0
        private double CalculateError(double[] solution)
        {
            double[,] originalMatrix = (double[, ])OriginalMatrix.Clone();
            double[] originalVector  = (double[])OriginalVector.Clone();
            double[] vectorToCompare = new double[TotalCases];
            double   max             = 0;
            double   result          = 0;

            for (int i = 0; i < TotalCases; i++)
            {
                for (int j = 0; j < TotalCases; j++)
                {
                    result += originalMatrix[i, j] * solution[j];
                }
                vectorToCompare[i] = result;
            }

            for (int i = 0; i < TotalCases; i++)
            {
                if (Math.Abs(originalVector[i] - vectorToCompare[i]) > max)
                {
                    max = Math.Abs(originalVector[i] - vectorToCompare[i]);
                }
            }

            return(max);
        }