Поиск обратной матрицы методом Гаусса.

Входные данные - квадратная матрица коэффициентов, размерность матрицы.

Выходные данные – матрица, обратная входной, если она существует.

Вспомогательная функция 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...

// матрица обратная к единичной - единичная