private int TransformMatrixPart1(Fraction[,] matrix) { // i - строка с "1" на [i,i] for (int i = 0; i < m; i++) { if (matrix[i, i].Numerator == 0) { // j - строки ниже i (из которых нужно вычесть i-ую строку) for (int j = i; j < m; j++) { // i - столбец, j- строка // среди элементов столбца матрицы выбираем ненулевой // и перемещам его на крайнее верхнее положение if (matrix[i, j].Numerator != 0) { if (i != j) { SwapRows(matrix, i, j); } break; } } if (matrix[i, i].Numerator == 0) { //MessageBox.Show("ошибка: В условии есть нулевой столбец № " + i + // "\nПеременная с таким номером может быть любой "); return(i); } } // нормируем [i,i], делим i-ую строку на коэф. при [i,i] for (int l = n; l >= 0; l--) { if (matrix[i, i].Numerator != 0) { matrix[l, i] = matrix[l, i] / matrix[i, i]; } } // сохраняем этап нормирования в Matrixs Matrixs.Add((Fraction[, ])matrix.Clone()); // вычитаем из каждой k-ой строки i-ую for (int k = i + 1; k < m; k++) { SubtractRow(matrix, i, k); } } return(-1); }
static void Main(string[] args) { Matrixs a = new Matrixs(); //int[,] data=a.ReadData(3, 3); //a.ShowData(data); //int[,]result=a.Diaqonal(data); //a.ShowData(result); //Console.WriteLine("\t"); //for triangle matrix int[,] result = a.Triangle(5, 5); Console.ReadKey(); }
public void MatrixTransform() { Matrixs.Dequeue(); }
public ushort GetMatrix() { return(Matrixs.Peek()); }