public Vector MultiplyByVector(Vector vector) { if (vector.GetSize() != GetColumnsCount()) { throw new ArgumentException("Умножение невозможно, размерность вектора не равна количеству столбцов матрицы, сейчас равна: " + vector.GetSize() + ", а количество столбцов матрицы равно: " + GetColumnsCount(), nameof(vector)); } Vector result = new Vector(GetRowsCount()); for (int i = 0; i < GetRowsCount(); i++) { result.SetElement(i, Vector.GetScalarMultiplication(rows[i], vector)); } return(result); }
//Задание вектора по индексу public void SetRow(int index, Vector vector) { if (index <= 0 || index >= rows.Length) { throw new IndexOutOfRangeException("Index beyound vector boundary or vector length <= 0"); } if (vector.GetSize() != GetColumnsCount()) { throw new ArgumentException("Vector must be equal to the length of the string in the matrix"); } rows[index] = new Vector(vector); }
public void SetRow(int index, Vector userVector) { if (index < 0 || index >= GetRowsAmount()) { throw new IndexOutOfRangeException("Вектора-строки с таким индексом нет"); } if (userVector.GetSize() != GetColumnsAmount()) { throw new ArgumentOutOfRangeException("Размер вектора-строки должен совпадать с размером матрицы"); } vectorsArray[index] = new Vector(userVector); }
public void SetRow(int index, Vector vector) { if (index < 0 || index >= GetRowsCount()) { throw new IndexOutOfRangeException("Нет строки под таким индексом"); } if (vector.GetSize() != GetColumnsCount()) { throw new ArgumentException("размерность вектора должна совпадать с размерностью векторов в матрице"); } rows[index] = new Vector(vector); }
public Vector MatrixOnVectorMultiplication(Vector vector) { if (GetColumnsCount() != vector.GetSize()) { throw new ArgumentException("Vector must be <= columns count", nameof(vector)); } double[] value = new double[GetRowsCount()]; for (int i = 0; i < GetRowsCount(); i++) { value[i] = Vector.ScalarMultiplication(vector, Rows[i]); } return(new Vector(value)); }
public void SetRow(int index, Vector vector) { if ((index < 0) || (index >= GetRowsCount())) { throw new IndexOutOfRangeException("Index must be >= 0 and <= rows count"); } if (GetColumnsCount() != vector.GetSize()) { throw new ArgumentException("Vector size must be <= columns count", nameof(vector)); } Rows[index] = new Vector(vector); }
public Vector MultiplicationByColumnVector(Vector userVector) { if (GetColumnsAmount() != userVector.GetSize()) { throw new ArgumentOutOfRangeException("Число сталбцов в матрице должно совпадать с числом строк в вектор-столбце"); } double[] arrayVector = new double[GetRowsAmount()]; for (int i = 0; i < GetRowsAmount(); i++) { arrayVector[i] = Vector.GetScalarMultiplication(GetRow(i), userVector); } return(new Vector(arrayVector)); }
//Умножение матрицы на вектор 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); }
public Vector MultiplyByVector(Vector vector) { if (GetColumnsCount() != vector.GetSize()) { throw new ArgumentException("Количество столбцов матрицы должно совпадать с количеством компонентов вектора!"); } double[] resultComponents = new double[GetRowsCount()]; for (int i = 0; i < GetRowsCount(); i++) { resultComponents[i] = Vector.GetScalarMultiplication(rows[i], vector); } return(new Vector(resultComponents)); }