Exemple #1
0
        static void Main(string[] args)
        {
            squareMatrix matrix1 = new squareMatrix(3, true);
            squareMatrix matrix2 = new squareMatrix(3, true);

            //Console.WriteLine(matrix1 + matrix2);
            matrix1.print();
            matrix2 = squareMatrix.transposing(matrix1);
            matrixOperations diagonalization = delegate(squareMatrix matrix) {
                squareMatrix resultMatrix = matrix;
                for (int i = 0; i < resultMatrix.arr.GetLength(0); i++)
                {
                    for (int j = 0; j < resultMatrix.arr.GetLength(0); j++)
                    {
                        if (j == i)
                        {
                            continue;
                        }
                        resultMatrix.arr[i, j] = 0;
                    }
                }
                return(resultMatrix);
            };

            matrix2 = diagonalization(matrix1);
            matrix2.print();
        }
Exemple #2
0
    public static squareMatrix operator -(squareMatrix MatrixL, squareMatrix MatrixR)
    {
        squareMatrix MatrixResult = new squareMatrix((byte)MatrixL.arr.GetLength(0), true);

        for (byte i = 0; i < MatrixL.arr.GetLength(0); i++)
        {
            for (byte j = 0; j < MatrixL.arr.GetLength(0); j++)
            {
                MatrixResult.arr[i, j] = MatrixL.arr[i, j] - MatrixR.arr[i, j];
            }
        }
        return(MatrixResult);
    }
Exemple #3
0
    //matrixOperations diagonalization = delegate (squareMatrix matrix) {
    //    squareMatrix resultMatrix = matrix;
    //    for (int i = 0; i < resultMatrix.arr.GetLength(0); i++)
    //    {
    //        for (int j = 0; j < resultMatrix.arr.GetLength(0); j++)
    //        {
    //            if (j == i) continue;
    //            resultMatrix.arr[i, j] = 0;
    //        }
    //    }
    //    return resultMatrix;
    //};

    public static int CompareTo(squareMatrix MatrixL, squareMatrix MatrixR)
    {
        if (MatrixL > MatrixR)
        {
            return(1);
        }
        else if (MatrixL < MatrixR)
        {
            return(-1);
        }
        else
        {
            return(0);
        }
    }
Exemple #4
0
    public static squareMatrix transposing(squareMatrix matrix)
    {
        squareMatrix resultMatrix = matrix;
        double       tmp          = 0;

        for (int i = 0; i < matrix.arr.GetLength(0); ++i)
        {
            for (int j = 0; j < i; j++)
            {
                tmp = resultMatrix.arr[i, j];
                resultMatrix.arr[i, j] = resultMatrix.arr[j, i];
                resultMatrix.arr[j, i] = tmp;
            }
        }
        return(resultMatrix);
    }
Exemple #5
0
    public squareMatrix inverseMatrix()
    {
        squareMatrix tempMatrix = new squareMatrix(2, true);
        double       det        = determinant();

        for (int i = 0; i < arr.GetLength(0); ++i)
        {
            for (int j = 0; j < arr.GetLength(0); ++j)
            {
                tempMatrix.arr[i, j] = ((i == 0 && j == 1) || (i == 1 && j == 0)) ? -1 * getElement(i, j) : getElement(i, j);
                Console.WriteLine(tempMatrix.arr[i, j]);
                tempMatrix.arr[i, j] *= (1 / det);
            }
        }
        return(tempMatrix);
    }
Exemple #6
0
    public static squareMatrix operator *(squareMatrix MatrixL, squareMatrix MatrixR)
    {
        squareMatrix MatrixResult = new squareMatrix((byte)MatrixL.arr.GetLength(0), false);

        for (byte i = 0; i < MatrixL.arr.GetLength(0); ++i)
        {
            // цикл по каждому столбцу второй матрицы
            for (byte j = 0; j < MatrixL.arr.GetLength(0); ++j)
            {
                for (byte k = 0; k < MatrixL.arr.GetLength(0); ++k)
                {
                    MatrixResult.arr[i, j] += MatrixL.arr[i, k] * MatrixR.arr[k, j];
                }
            }
        }
        return(MatrixResult);
    }