Код программы поделён на несколько файлов, каждый из которых содержит реализацию определённого класса:
- Complex.h — объявление класса для хранения комплексного числа.
- Complex.cpp — реализация класса для хранения комплексного числа.
- Matrix.h — объявление класса для хранения матрицы.
- Matrix.cpp — реализация класса для хранения матрицы.
Complex.h и Complex.cpp содержат:
- Методы создания комплексного числа и расположения его в памяти:
- complex().
- complex(double, double).
- complex(constcomplex&).
- Перегрузки операторов для реализации основных арифметических операций:
- complex& operator +(const complex&, const complex&).
- complex& operator -(const complex&, const complex&).
- complex& operator /(const complex&, const complex&).
- complex& operator *(const complex&, const complex&).
- Перегрузки операторов ввода/вывода:
- ostream& operator <<(std::ostream&, const complex&).
- istream& operator >>(std::istream&, complex&).
- Поля для хранения значений действительной и мнимой частей:
- doublere.
- doubleim.
Matrix.hиMatrix.cpp содержат:
- Методы создания матрицы и расположения её в памяти:
- matrix().
- matrix(int).
- matrix(int, int).
- matrix(constmatrix&).
- Перегрузки операторов ввода/вывода:
- istream& operator >>(std::istream&, matrix&).
- ostream& operator <<(std::ostream&, matrix&).
- Поля для хранения элементов матрицы:
- std::vector<std::vector<complex>> array.
- intsizeN.
- intsizeM.
- Методы для нахождения столбца с ведущим элементом и перемены местами столбцов:
- mainColumn(constint&) const.
- swapColumn(constint&, constint&).
РЕШЕНИЕ КОНТРОЛЬНОЙ ЗАДАЧИ
Решение вручную
На входе получаем матрицу:
Находим ведущий элемент. Ведущий элемент находится в столбце 2, меняем столбцы местами.Запоминаем значение элемента . Делим всю первую строку расширенной матрицы на этот элемент. Вычисляем значения всех остальных элементов матрицы по формулам прямого хода метода:
|
Находим ведущий элемент. Ведущий элемент находится в столбце 3, меняем столбцы местами.Запоминаем значение элемента . Делим всю вторую строку расширенной матрицы на этот элемент. Вычисляем значения всех остальных элементов матрицы по формулам прямого хода метода:
Находим ведущий элемент. Ведущий элемент находится в столбце 3, меняем столбцы местами.Запоминаем значение элемента . Делим всю вторую строку расширенной матрицы на этот элемент. Вычисляем значения всех остальных элементов матрицы по формулам прямого хода метода:
Исходя из того, что мы меняли местами столбцы, поменялись местами и переменные. Поэтому после того, как мы вычислим значения столбца X, мы должны поменять его элементы местами.
Теперь на обратном ходе метода вычисляем значения переменных СЛАУ.
Меняем местами:
Решение СЛАУ найдено.