Шпоры по МПиПА / Численные методы / LU-разложение матрицы СЛАУ / Описание / LUDecomposition
.docLU-разложение матрицы системы линейных алгебраических уравнений ( СЛАУ ) методом Гаусса.
Входные данные - квадратная матрица коэффициентов, размерность матрицы.
Выходные данные – нижнетругольная ( L ) и верхнетругольная ( U ) матрицы, произведение которых дает исходную матрицу.
LU-разложение матрицы СЛАУ удобно в случае, когда нам необходимо решить несколько СЛАУ с одной матрицей коэффициентов системы, но с разными правыми частями. Для этого один раз ищется LU-разложение исходной матрицы, а затем при подстановке некоторой правой части решается 2N (где N - размерность системы) уравнений с одним неизвестным в каждом. Подробнее смотри в файле с «теорией».
Возможные улучшения - «красивый» форматированный вывод матриц.
Код: SLAUGauss.cpp
Теоретическое обоснование: Gauss.doc
Исполняемый файл: SLAUGauss.exe.
Примеры использования (распечатка листинга):
Gauss'es method of LU.
Enter system dimension: 3
Enter 1 row: 10 1 1
Enter 2 row: 10 2 1
Enter 3 row: 10 2 2
L-matrix is:
1 0 0
1 1 0
1 1 1
U-matrix is:
10 1 1
0 1 0
0 0 1
Press "Enter" to continue...
Gauss'es method of LU.
Enter system dimension: 4
Enter 1 row: 2 6 1 4
Enter 2 row: 8 7 3 7
Enter 3 row: 6 1 2 3
Enter 4 row: 4 7 1 0
LU-decomposition for this matrix not found
Press "Enter" to continue...
// в матрице есть линейнозависимые строки ( сумма 1 и 3 строк равна 2 )
Gauss'es method of LU.
Enter system dimension: 4
Enter 1 row: 9 4 1 7
Enter 2 row: 4 6 3 6
Enter 3 row: 1 6 3 9
Enter 4 row: 7 3 5 0
L-matrix is:
1 0 0 0
0.444444 1 0 0
0.111111 1.31579 1 0
0.777778 -0.0263158 -9.05556 1
U-matrix is:
9 4 1 7
0 4.22222 2.55556 2.88889
0 0 -0.473684 4.42105
0 0 0 34.6667
Press "Enter" to continue...