コード例 #1
0
        public static double[] ComputeAll()
        {
            Stan[] tableOfStans    = CreateTableOfStans();
            int    numberOfColumns = tableOfStans.Length;

            FillTableOfStans(tableOfStans);

            double[,] tableForMatrix = new double[numberOfColumns, numberOfColumns];
            double[] bVector      = new double[numberOfColumns];
            double[] resultVector = new double[3];

            FillTableForMatrixAndBVectorWithZeros(tableForMatrix, bVector, numberOfColumns);
            FillTableForMatrixWithStans(tableOfStans, numberOfColumns, tableForMatrix, bVector);

            MyMatrix matrix = new MyMatrix(numberOfColumns, numberOfColumns);

            matrix.ComplementMatrix(tableForMatrix);
            matrix.WriteMatrixToFile();
            WriteVectorToFile((double[])bVector.Clone());

            var stopwatch = new Stopwatch();

            stopwatch.Reset();
            stopwatch.Start();
            double[] gVector = matrix.GaussWithRowChoice((double[])bVector.Clone());
            stopwatch.Stop();
            gaussTime       = stopwatch.Elapsed.TotalMilliseconds;
            resultVector[0] = gVector[0];

            stopwatch.Reset();
            stopwatch.Start();
            double[] jVector = matrix.Jacobi((double[])bVector.Clone(), 100);
            stopwatch.Stop();
            jacobiTime      = stopwatch.Elapsed.TotalMilliseconds;
            resultVector[1] = jVector[0];
            stopwatch.Reset();
            stopwatch.Start();
            double[] sVector = matrix.Seidel((double[])bVector.Clone(), 100);
            stopwatch.Stop();
            resultVector[2] = sVector[0];
            seidelTime      = stopwatch.Elapsed.TotalMilliseconds;
            return(resultVector);
        }
コード例 #2
0
        public static double[] ComputeAll()
        {
            Stan[] tableOfStans    = CreateTableOfStans();
            int    numberOfColumns = tableOfStans.Length;

            var stopwatch = new Stopwatch();

            stopwatch.Reset();
            stopwatch.Start();
            FillTableOfStans(tableOfStans);

            double[,] tableForMatrix = new double[numberOfColumns, numberOfColumns];
            double[] bVector      = new double[numberOfColumns];
            double[] resultVector = new double[3];

            double[,] matrixPoints = new double[numberOfColumns * Stan.numberOfCubeWalls + numberOfColumns, 3];
            double[,] vectorPoints = new double[numberOfColumns, 3];

            FillTableForMatrixAndBVectorWithZeros(tableForMatrix, bVector, numberOfColumns);
            FillTableForMatrixWithStans(tableOfStans, numberOfColumns, tableForMatrix, bVector, matrixPoints, vectorPoints);

            MyMatrix matrix = new MyMatrix(numberOfColumns, numberOfColumns);

            matrix.ComplementMatrix(tableForMatrix);

            buildMatrixTime = stopwatch.Elapsed.TotalMilliseconds;

            matrix.WriteMatrixToFile();
            WriteVectorToFile((double[])bVector.Clone());
            MyMatrix.PrintVector(bVector);
            WriteVectorWithoutZero((double[])bVector.Clone());

            stopwatch.Reset();
            stopwatch.Start();
            double[] sVector = matrix.Seidel((double[])bVector.Clone(), 100);
            stopwatch.Stop();
            resultVector[2] = sVector[0];
            seidelTime      = stopwatch.Elapsed.TotalMilliseconds;
            return(resultVector);
        }