public static MatrixRational operator *(Rational scalar, MatrixRational matrix) { MatrixRational newMatrix = new MatrixRational(matrix.Lines, matrix.Columns); for (int i = 0; i < newMatrix.Lines; i++) { for (int j = 0; j < newMatrix.Columns; j++) { newMatrix.matrix[i, j] = matrix.matrix[i, j] * scalar; } } return(newMatrix); }
public void DeleteZeroLines() { while (zeroLines() != -1) { int zeroLine = zeroLines(); deleteZeroLine(zeroLine); Console.WriteLine("\tУдаляем пустую строку"); } int zeroLines() { for (int i = 0; i < data.Lines; i++) { for (int j = 0; j < data.Columns; j++) { if (data[i, j] != 0) { break; } if (j == data.Columns - 1) { return(i); } } } return(-1); } void deleteZeroLine(int line) { int offset = 0; Rational[,] rationals = new Rational[data.Lines - 1, data.Columns]; for (int i = 0; i < data.Lines; i++) { if (line != i) { for (int j = 0; j < data.Columns; j++) { rationals[i - offset, j] = data[i, j]; } } else { offset++; } } data = new MatrixRational(rationals); } }
public static MatrixRational operator +(MatrixRational left, MatrixRational right) { if (left.Lines == right.Lines && left.Columns == right.Columns) { MatrixRational newMatrix = new MatrixRational(left.Lines, left.Columns); for (int i = 0; i < newMatrix.Lines; i++) { for (int j = 0; j < newMatrix.Columns; j++) { newMatrix.matrix[i, j] = left.matrix[i, j] + right.matrix[i, j]; } } return(newMatrix); } else { return(null); } }
public static MatrixRational operator *(MatrixRational left, MatrixRational right) { if (left.Columns == right.Lines) { MatrixRational newMatrix = new MatrixRational(left.Lines, right.Columns); for (int i = 0; i < newMatrix.Lines; i++) { for (int j = 0; j < newMatrix.Columns; j++) { for (int k = 0; k < left.Columns; k++) { newMatrix.matrix[i, j] += left.matrix[i, k] * right.matrix[k, j]; } } } return(newMatrix); } else { return(null); } }
public void Solve() { data = GetSolve().data; }
public void SteppedForm() { data = GetSteppedForm().data; }
public ElementaryTransformations(MatrixRational matrix) { data = matrix; }