/// <summary> /// Операция умножения числа на вектор /// </summary> public static DVector operator *(double c, DVector v1) { var v3 = new DVector(v1.Size); for (var i = 0; i < v1.Size; i++) { v3.Vector[i] = c * v1.Vector[i]; } return(v3); }
/// <summary> /// Операция сложения векторов /// </summary> public static DVector operator +(DVector v1, DVector v2) { var v3 = new DVector(v1.Size); for (var i = 0; i < v1.Size; i++) { v3.Vector[i] = v1.Vector[i] + v2.Vector[i]; } return(v3); }
/// <summary> /// Операция разности векоторв /// </summary> public static DVector operator -(DVector v1, DVector v2) { var v3 = new DVector(v1.Size); for (var i = 0; i < v1.Size; i++) { v3[i] = v1[i] - v2[i]; } return(v3); }
public static DVector operator /(DVector v1, double c) { var v3 = new DVector(v1.Size); for (var i = 0; i < v3.Size; i++) { v3[i] = v1[i] / c; } return(v3); }
/// <summary> /// Умножение вектора на транспонированный вектор /// </summary> public static Matrix Multiplication(DVector v1, DVector v2) { var m = new Matrix(v1.Size); if (v1.Size != v2.Size) { throw new ArgumentException("Число столбцов матрицы А не равно числу строк матрицы В."); } for (var i = 0; i < m.Size; i++) { for (var j = 0; j < m.Size; j++) { m[i, j] = v1[i] * v2[j]; } } return(m); }