hales

реклама
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
(ФГБОУ ВО «ВГУ»)
Факультет прикладной математики, информатики и механики
Отчëт по задаче на тему
Применение точных методов решения
систем линейных
алгебраических уравнений
Выполнили:
бакалавры 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
Скачать