//перегрузка оператора умножения для матриц public static Matrix operator *(Matrix M1, Matrix M2) { if (M1.ColumnNumber() != M2.RowNumber()) throw new Exception("Матрицы нельзя перемножить"); else { int nn=M1.RowNumber(); int kk=M2.ColumnNumber(); double[,] matr = new double[nn, kk]; for (int i = 0; i < nn; i++) { for (int j = 0; j < kk; j++) matr[i, j] = 0; } for (int i = 0; i < nn; i++) { for (int j = 0; j < kk; j++) { for (int s = 0; s < M2.RowNumber(); s++) matr[i, j] += M1[i, s] * M2[s, j]; } } Matrix M = new Matrix(nn, kk, matr); return M; } }