Шпоры по МПиПА / Численные методы / Поиск обратной матрицы методом Гаусса / Описание / InverseMatrix
.docПоиск обратной матрицы методом Гаусса.
Входные данные - квадратная матрица коэффициентов, размерность матрицы.
Выходные данные – матрица, обратная входной, если она существует.
Вспомогательная функция prepareBMatrix( double **coefficients, double **bMatrix, int currRowAndColumn, int numberOfEquation ) преобразует входную матрицу к диагональному виду, кроме этого формируется вспомогательная матрица B. Столбцы данной матрицы используются как правые части СЛАУ при поиске столбцов обратной матрицы. Подробнее смотри в файле с «теорией».
Возможные улучшения - «красивый» форматированный вывод матриц.
Код: SLAUGauss.cpp
Теоретическое обоснование: Gauss.doc
Исполняемый файл: SLAUGauss.exe.
Примеры использования (распечатка листинга):
Gauss'es method of inversion matrix.
Enter system dimension: 3
Enter 1 row: 10 1 1
Enter 2 row: 10 2 1
Enter 3 row: 10 2 2
Solution is:
0.2 0 -0.1
-1 1 0
0 -1 1
Press "Enter" to continue...
Gauss'es method of inversion matrix.
Enter system dimension: 4
Enter 1 row: 2 4 6 8
Enter 2 row: 1 2 3 4
Enter 3 row: 2 1 4 5
Enter 4 row: 9 7 3 1
Solution for this matrix of coefficients not exist
Press "Enter" to continue...
// матрица содержит пропорциональные строки
Gauss'es method of inversion matrix.
Enter system dimension: 4
Enter 1 row: 1 0 0 0
Enter 2 row: 0 1 0 0
Enter 3 row: 0 0 1 0
Enter 4 row: 0 0 0 1
Solution is:
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Press "Enter" to continue...
// матрица обратная к единичной - единичная