Exemplo n.º 1
0
        public Vector GetColumn(int columnNumber)
        {
            Vector column = new Vector(RowsNumber);

            for (int i = 0; i < RowsNumber; i++)
            {
                column.SetComponent(i, rows[i].GetComponent(columnNumber));
            }

            return(column);
        }
Exemplo n.º 2
0
        //Умножение матрицы на вектор
        public Vector GetMultiplied(Vector vector)
        {
            if (vector.GetSize() != GetColumnsCount())
            {
                throw new ArgumentException("Multiplied by vector can't calculated");
            }

            Vector row = new Vector(GetRowsCount());

            for (int i = 0; i < GetRowsCount(); ++i)
            {
                double result = Vector.GetVectorMultipliedByAnotherVector(rows[i], vector);
                row.SetComponent(i, result);
            }
            return(row);
        }
Exemplo n.º 3
0
        public Vector MultiplyByVector(Vector vector)
        {
            if (ColumnsNumber != vector.Length)
            {
                throw new ArgumentException("Количество столбцов матрицы должно быть равно размерности вектора.");
            }

            Vector outputVector = new Vector(RowsNumber);

            for (int i = 0; i < RowsNumber; i++)
            {
                double sum = Vector.GetScalarMultiplication(rows[i], vector);
                outputVector.SetComponent(i, sum);
            }

            return(outputVector);
        }
Exemplo n.º 4
0
        public static Matrix Multiply(Matrix matrix1, Matrix matrix2)
        {
            if (matrix1.GetColumnsCount() != matrix2.GetRowsCount())
            {
                throw new ArgumentException("Количество столбцов первой матрицы должно совпадать с количеством строк второй матрицы!");
            }

            Matrix newMatrix = new Matrix(matrix1.GetRowsCount(), matrix2.GetColumnsCount());

            for (int i = 0; i < matrix1.GetRowsCount(); i++)
            {
                Vector vector = new Vector(matrix2.GetColumnsCount());
                for (int j = 0; j < matrix2.GetColumnsCount(); j++)
                {
                    vector.SetComponent(j, Vector.GetScalarMultiplication(matrix1.rows[i], matrix2.GetColumn(j)));
                }
                newMatrix.rows[i] = new Vector(vector);
            }

            return(newMatrix);
        }