ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» (ФГБОУ ВО «ВГУ») Факультет прикладной математики, информатики и механики Отчëт по задаче на тему Применение точных методов решения систем линейных алгебраических уравнений Выполнили: бакалавры 3 курса Проверила: доцент кафедры ВМиПИТ Воронеж – 2018 ФГБОУ ВО «ВГУ», факультет ПММ, 3 курс, 3 группа, осень 2018 В данном задании предполагалось реализовать метод Халецкого решения СЛАУ с ленточными матрицами. Пусть A ∈ MatrN (R) исходная матрица ,и все главные миноры матрицы A отличны от нуля, тогда A = LU, где L — нижнетреугольная матрица, а U — верхнетреугольная матрица. Из вышесказанного следует, что решение систем линейных алгебраических уравнений Ax = f сводится к последовательному решению двух систем уравнений с треугольными матрицами: Ly = f, (1) Ux = y. (2) Для уменьшения затрат памяти будем хранить только ленту матрицы в прямоугольной матрице A ∈ MatrN,2l−1 (R), где l — половина ширины ленты, N — размерность соответствующей квадратной матрицы. Матрицы L и U также будем хранить в виде прямоугольной матрицы LU ∈ MatrN,2l−1 (R), где элементы столбцов 0 . . . l − 1 из матрицы L, а элементы оставшихся столбцов из матрицы U. Для решения данной задачи использовались следующие вспомогательные функции: 1. Функция для определения первого значимого элемента строки или столбца: ( 0, если i ≤ l − 1; KO(i) = i − l + 1, если i > l − 1. 2. Функция для определения последнего значимого элемента строки или столбца: ( N − 1, если i > N − l; KN(i) = i + l − 1, если i ≤ N − l. 3. Функция для пересчета столбца из квадратной матрицы в прямоугольную: Col(i, j) = j − i + l − 1. 1 ФГБОУ ВО «ВГУ», факультет ПММ, 3 курс, 3 группа, осень 2018 Основная процедура состоит из 3 шагов: 1. LU-разложение исходной матрицы. 2. Нахождение вектора y из уравнения (1). 3. Нахождение вектора x из уравнения (2). ШАГ 1: для j от 0 до N − 1 нц для i от j до KN(j) нц col = Col(i, j); s = Ai col ; для k от KO(i) до j − 1 нц s = s − LUi Col(i,k) · LUk Col(k,j) ; кц LUi col = s; кц для i от j + 1 до KN(j) нц col = Col(j, i); s = Aj col ; для k от KO(i) до j − 1 нц s = s − LUj Col(j,k) · LUk Col(k,i) ; кц если (LUj l−1 ! = 0) LUi col = s/LUj l−1 ; LUi col = s; кц кц 2 ФГБОУ ВО «ВГУ», факультет ПММ, 3 курс, 3 группа, осень 2018 ШАГ 2: для i от 0 до N − 1 нц s = fi ; для k от KO(i) до i − 1 s = s − LUi Col(i,k) · yk ; yi = s/LUi Col(i,i) ; кц ШАГ 3: для i от N − 1 до 0 нц s = yi ; для k от KN(i) до i + 1 s = s − LUi Col(i,k) · xk ; xi = s; кц Результаты тестирования Данные о решении СЛАУ с ленточными матрицами и с диапазоном элементов матриц −101 ÷ 101 . № Размерность Отношение Средняя относительная теста системы l/N погрешность системы 1 40 1/10 3.026 · 10−14 2 40 1/l 2.211 · 10−13 3 400 1/10 3.361 · 10−11 4 400 1/l 2.521 · 10−11 3 ФГБОУ ВО «ВГУ», факультет ПММ, 3 курс, 3 группа, осень 2018 Данные о решении систем уравнений с хорошо обусловленными квадратными матрицами. № Размерность Средняя относительная теста системы погрешность системы 1 20 3.271 · 10−14 2 50 1.154 · 10−12 3 100 1.233 · 10−10 4 120 1.061 · 10−10 Данные о решении систем уравнений с плохо обусловленными квадратными матрицами. № Размерность Порядок Средняя относительная теста системы k погрешность системы 1 20 2 6.137 · 1046 2 20 4 3.460 · 1047 3 20 6 2.427 · 1048 4 70 2 1.693 · 10300 5 70 4 8.034 · 10301 6 70 6 3.212 · 10302 4