Рассматриваются методы решения систем линейных алгебраических уравнений с трехдиагональными, симметричными и положительно определенными матрицами коэффициентов.
Решение систем линейных уравнений: трехдиагональные, симметричные и положительно определённые системы
1. СЛАУ специального вида
Методы численного решения СЛАУ
Кафедра теоретической механики
Самарский государственный аэрокосмический университет
им. академика С. П. Королёва
(национальный исследовательский университет)
yudintsev@termech.ru
17 марта 2012 г.
2. Содержание
1 Трехдиагональные системы. Метод Прогонки
2 Симметричные матрицы
3 Симметричные, положительно определенные системы
4 Источники
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 2 / 32
3. Трехдиагональные системы. Метод Прогонки
Ленточные матрицы
Определение 1.
Матрица A называется ленточной, если её элементы aij удовлетворяют
условиям aij = 0 при l < i − j и j − i > m для некоторых
неотрицательных чисел l , m.
l + m + 1 – ширина ленточной матрицы
Определение 2.
Если m = 0, то матрица A – левая ленточная
Если l = 0, то матрица A – правая ленточная
Определение 3.
Если l = m = 1,то матрица A называется трехдиагональной.
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 3 / 32
4. Трехдиагональные системы. Метод Прогонки
Ленточные матрицы
1, 4 1, 5 1, 6
2, 1 2, 5 2, 6
3, 1 3, 2 3, 6
4, 2 4, 3
5, 3 5, 4
6, 4 6, 5
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 4 / 32
7. Трехдиагональные системы. Метод Прогонки
Метод прогонки
Алгоритм [1]
1 Подставим x0 из (2) в (1)
A1 (ξ0 x1 + ν0 ) − C1 x1 + B1 x2 = F1 (4)
B1 A1 ν0 − F1
x1 = ξ1 x2 + ν1 , где ξ1 = , ν1 = (5)
C1 − A1 ξ0 C1 − A1 ξ0
2 Подставим x1 из (5) в следующее уравнение (1), получим
уравнение, связывающее x2 и x3 :
x2 = ξ2 x3 + ν2 (6)
или для k
xk−1 = ξk−1 xk + νk−1 , k < n − 1 (7)
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 7 / 32
8. Трехдиагональные системы. Метод Прогонки
Метод прогонки
Алгоритм [1]
1 Подставим x0 из (2) в (1)
A1 (ξ0 x1 + ν0 ) − C1 x1 + B1 x2 = F1 (4)
B1 A1 ν0 − F1
x1 = ξ1 x2 + ν1 , где ξ1 = , ν1 = (5)
C1 − A1 ξ0 C1 − A1 ξ0
2 Подставим x1 из (5) в следующее уравнение (1), получим
уравнение, связывающее x2 и x3 :
x2 = ξ2 x3 + ν2 (6)
или для k
xk−1 = ξk−1 xk + νk−1 , k < n − 1 (7)
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 7 / 32
9. Трехдиагональные системы. Метод Прогонки
Алгоритм
3 Подставим xk−1 в k-ое уравнение системы (1)
Ak (ξk−1 xk + νk−1 ) − Ck xk + Bk xk+1 = Fk (8)
4 Разрешаем уравнение (8) относительно xk
xk = ξk xk+1 + νk (9)
где
Bk Ak νk−1 − Fk
ξk = , νk = (10)
Ck − Ak ξk−1 Ck − Ak ξk−1
5 Подставим (9) для k = n − 1 в (3) :
xn = ξn (ξn−1 xn + νn−1 ) + νn (11)
6 xn → (9) → xn−1 → xn−2 . . . → x1
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 8 / 32
10. Трехдиагональные системы. Метод Прогонки
Алгоритм
3 Подставим xk−1 в k-ое уравнение системы (1)
Ak (ξk−1 xk + νk−1 ) − Ck xk + Bk xk+1 = Fk (8)
4 Разрешаем уравнение (8) относительно xk
xk = ξk xk+1 + νk (9)
где
Bk Ak νk−1 − Fk
ξk = , νk = (10)
Ck − Ak ξk−1 Ck − Ak ξk−1
5 Подставим (9) для k = n − 1 в (3) :
xn = ξn (ξn−1 xn + νn−1 ) + νn (11)
6 xn → (9) → xn−1 → xn−2 . . . → x1
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 8 / 32
11. Трехдиагональные системы. Метод Прогонки
Алгоритм
3 Подставим xk−1 в k-ое уравнение системы (1)
Ak (ξk−1 xk + νk−1 ) − Ck xk + Bk xk+1 = Fk (8)
4 Разрешаем уравнение (8) относительно xk
xk = ξk xk+1 + νk (9)
где
Bk Ak νk−1 − Fk
ξk = , νk = (10)
Ck − Ak ξk−1 Ck − Ak ξk−1
5 Подставим (9) для k = n − 1 в (3) :
xn = ξn (ξn−1 xn + νn−1 ) + νn (11)
6 xn → (9) → xn−1 → xn−2 . . . → x1
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 8 / 32
12. Трехдиагональные системы. Метод Прогонки
Алгоритм
3 Подставим xk−1 в k-ое уравнение системы (1)
Ak (ξk−1 xk + νk−1 ) − Ck xk + Bk xk+1 = Fk (8)
4 Разрешаем уравнение (8) относительно xk
xk = ξk xk+1 + νk (9)
где
Bk Ak νk−1 − Fk
ξk = , νk = (10)
Ck − Ak ξk−1 Ck − Ak ξk−1
5 Подставим (9) для k = n − 1 в (3) :
xn = ξn (ξn−1 xn + νn−1 ) + νn (11)
6 xn → (9) → xn−1 → xn−2 . . . → x1
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 8 / 32
13. Трехдиагональные системы. Метод Прогонки
Алгоритм
Прогоночные формулы
Прямой ход прогонки
Bk Ak νk−1 − Fk
ξ0 , ν0 → ξk = , νk = , k = 1, . . . n − 1
Ck − Ak ξk−1 Ck − Ak ξk−1
νn + ξn νn−1
xn =
1 − ξn ξn−1
Обратный ход прогонки
xk = ξk xk+1 + νk , k = n − 1, n − 2, . . . 0
Количество арифметических операций с плафающей точкой
(флопов), необходимых для решения СЛАУ методом прогонки
пропорционален размеру матрицы ∼ 2n
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 9 / 32
14. Трехдиагональные системы. Метод Прогонки
Алгоритм
Прогоночные формулы
Прямой ход прогонки
Bk Ak νk−1 − Fk
ξ0 , ν0 → ξk = , νk = , k = 1, . . . n − 1
Ck − Ak ξk−1 Ck − Ak ξk−1
νn + ξn νn−1
xn =
1 − ξn ξn−1
Обратный ход прогонки
xk = ξk xk+1 + νk , k = n − 1, n − 2, . . . 0
Количество арифметических операций с плафающей точкой
(флопов), необходимых для решения СЛАУ методом прогонки
пропорционален размеру матрицы ∼ 2n
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 9 / 32
15. Трехдиагональные системы. Метод Прогонки
Трехдиагональные системы
Условие существования решения
Определение 4.
Прогонка называется корректной, если знаменатели в прогоночных
формулах не обращаются в нуль.
Определение 5.
Прогонка называется устойчивой, если |ξi | < 1 для всех i = 0, 1, . . . n
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 10 / 32
16. Трехдиагональные системы. Метод Прогонки
Трехдиагональные системы
Условие существования решения
Theorem
Прогонка устойчива и корректна если [2]
|Cj | ≥ |Aj | + |Bj | ≥ |Aj | ≥ 0, |ξ0 | < 1, |ξn | ≤ 1
Доказательство.
Пусть для некоторого j, |ξj−1 | < 1. Рассмотрим выражение Cj − ξj−1 Aj .
|Cj − ξj−1 Aj | ≥ |Cj | − |ξj−1 ||Aj | > |Cj | − |Aj | ≥ 0
Поэтому
|Bj | |Cj | − |Aj |
|ξj | = ≤ < 1, |Cj − ξj−1 Aj | = 0,
|Cj − ξj−1 Aj | |Cj | − |ξj−1 ||Aj |
|1 − ξn ξn−1 | ≥ 1 − |ξn ||ξn−1 | > 0
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 11 / 32
17. Трехдиагональные системы. Метод Прогонки
Задание 5.1
Решить задачу глобальной сплайн-интерполяции. На плоскости задана серия
точек: (x0 , y0 ), . . . , (xn , yn ), xi = xj для i = j. Необходимо провести через эти
точки кубический сплайн, плавно соединив заданные точки без разрывов
значений функции, а также первой и второй производных.
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 12 / 32
18. Трехдиагональные системы. Метод Прогонки
Задание 5.1
Условия непрерывности:
S(xi ) = yi - условие интерполяции (сплайн проходит через заданные
точки);
S(xi − 0) = S(xi + 0) - непрерывность;
S (xi − 0) = S (xi + 0) - непрерывность первой производной;
S (xi − 0) = S (xi + 0) - непрерывность второй производной;
Всего, для n интервалов 4n − 2 условий. Каждый кубический сплайн Sk (x)
имеет 4 неизвестных коэффициента (4n для всех интервалов). Недостающие
два условия можно определить задав значение первой или второй
производной на концах заданного интервала интерполяции: в точках x0 , xn .
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 13 / 32
19. Трехдиагональные системы. Метод Прогонки
Задание 5.1
Указанные выше условия приводят к необходимости решения следующей
СЛАУ с трехдиагональной матрицей относительно неизвестных
qi , i = 1, n − 1:
hi hi + hi+1 hi+1 yi+1 − yi yi − yi−1
qi−1 + qi + qi+1 = − , i = 1, n − 1,
6 3 6 hi+1 hi
с дополнительными условиями на границах интервала интерполяции:
q0 = qn = 0
После того неизвестные величины найдены, сплайн 3 степени для каждого
интервала [xi−1 , xi ] записывается следующим образом:
(xi − x)3 (x − xi−1 )3 yi−1 hi
S(x) = qi−1 + qi + − qi−1 (xi − x)+
6hi 6hi hi 6
yi hi
+ − qi (x − xi−1 )
hi 6
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 14 / 32
20. Трехдиагональные системы. Метод Прогонки
Задание 5.1
Необходимо реализовать следующий алгоритм работы программы:
загрузить из файла таблицу с узлам интерполяции: пары (xi , yi ) в
каждой строке, разделенные пробелами;
сформировать трехдиагональную матрицу коэффициентов уравнения;
решить систему линейных уравнений, построить сплайны;
вывести в файл пары (xj , yj ) так, чтобы между узлами интерполяции
было не менее 5 дополнительных точек.
Построить график полученной кусочной функции и показать на
графике точки исходной таблицы xi , yi .
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 15 / 32
21. Симметричные матрицы
LDM T - разложение
A = LU = LDMT
Theorem
Если все ведущие главные подматрицы A невырожденны, тогда
существуют единственные нижние унитреугольные матрицы L и M, и
единственная диагональная матрица D, такие, что A = LDMT
Доказательство.
1 LU разложение существует и оно единственно.
2 Пусть D = diag (d1 , d2 , . . . , dn ), di = uii = 0. Матрица D
невырожденная.
3 A = LU = LD(D−1 U)
4 D−1 U = MT – верхняя унитреугольная матрица.
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 16 / 32
22. Симметричные матрицы
LDM T - разложение
Алгоритм
Пусть известны j − 1 столбцов матрицы L, j − 1 элементов
диагональной матрицы D и j − 1 строк матрицы M:
1 0 0 . 0 d1 0 0 . 0 1 m21 m31 . mn1
l21 1 0 . 0 0 d2 0 . 0 0 1 m32 . mn2
l31 l32 1 . 0 0 0 d3 . 0 0 0 1 . mn3
l41 l42 l43 . 0 0 0 0 . 0 0 0 0 . mn4
. . . . . . . . .
ln1 ln2 ln3 . lnn 0 0 0 . dnn 0 0 0 . mnn
Приравняем j-е столбцы уравнения A = LDMT
A(1 : n, j) = Lv, v = DMT ej
Решение нижней треугольной системы ( верхняя“ часть системы –
”
строки с 1 по j) относительно v(1 : j)
L(1 : j, 1 : j) · v(1 : j) = A(1 : j, j) → v(1 : j) = . . .
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 17 / 32
23. Симметричные матрицы
LDM T - разложение
Алгоритм
Пусть известны j − 1 столбцов матрицы L, j − 1 элементов
диагональной матрицы D и j − 1 строк матрицы M:
1 0 0 . 0 d1 d1 m21 d1 m31 . d1 mn1
l21 1 0 . 0 0 d2 d2 m32 . d2 mn2
l31 l32 1 . 0 0 0 d3 . d3 mn3
l41 l42 l43 . 0 0 0 0 . 0
. . . . . .
ln1 ln2 ln3 . lnn 0 0 0 . dnn
Приравняем j-е столбцы уравнения A = LDMT
A(1 : n, j) = Lv, v = DMT ej
Решение нижней треугольной системы ( верхняя“ часть системы –
”
строки с 1 по j) относительно v(1 : j)
L(1 : j, 1 : j) · v(1 : j) = A(1 : j, j) → v(1 : j) = . . .
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 17 / 32
24. Симметричные матрицы
LDM T - разложение
Алгоритм [3]
Определение dj = vj
Определение mji = vi /di , i = 1, . . . j − 1
Определение j-го столбца матрицы L (решение “нижней” части
системы):
L(j + 1 : n, 1 : j) · v(1 : j) = A(j + 1 : n, j)
L(j + 1 : n, j) · v (j) = A(j + 1 : n, j) − L(j + 1 : n, 1 : j − 1) · v(1 : j − 1)
for j=1:n
Решить L(1:j,1:j) v(1:j) = A(1:j,j) для v(1:j)
for i=1:j-1
M(j,i)= v(i)/d(i)
end
d(j)=v(j)
L(j+1:n,j)=(A(j+1:n,j)-L(j+1:n,1:j-1)v(1:j-1))/v(j)
end
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 18 / 32
25. Симметричные матрицы
LDM T - разложение
LDMT разложение матрицы A, как и LU разложение, требует
около 2n3 /3 арифметических операций с плавающей точкой
(флопов).
Разложение симметричной матрицы, можно выполнить в 2 раза
меньшим количеством операций n3 /3.
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 19 / 32
26. Симметричные матрицы
LDLT - разложение
Theorem
Если A – симметричная невырожденная матрица, то в разложении
A = LDMT L = M.
Доказательство.
1 Рассмотрим матрицу
M−1 A(M−1 )T = M−1 LD
Эта матрица является и симметричной (левая часть) и нижней
треугольной (правая часть), следовательно она диагональна.
2 Матрица D невырождена, поэтому M−1 L – диагональна
3 В то же время M−1 L нижняя унитреугольная, следовательно M−1 L = E
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 20 / 32
28. Симметричные матрицы
LDLT - разложение
Алгоритм [3]
for j=1:n
for i=1:j-1
v(i) = L(j,i)*d(i)
end
v(j)=A(j,j)-L(j,1:j-1)*v(1:j-1)
d(j)=v(j)
L(j+1:n,j)=(A(j+1:n,j)-L(j+1:n,1:j-1)*v(1:j-1))/v(j)
end
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 22 / 32
29. Симметричные матрицы
LDLT - разложение
Пример
A = LDLT
10 20 30 1 0 0 10 0 0 1 2 3
20 45 80 = 2 1 0 0 5 0 0 1 4
30 80 171 3 4 1 0 0 1 0 0 1
Решение СЛАУ
v
L D LT x = b,
u
Lu = b → Dv = u → LT x = v → x
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 23 / 32
30. Симметричные, положительно определенные системы
Положительно определенная матрица
Для вещественной положительно-определенной матрицы
∀ x ∈ Rn , x = 0 : xT Ax > 0
Theorem
Если матрица A ∈ Rn×n является положительно определенной и
матрица X ∈ Rn×k имеет ранг k, то матрица B = XT AX ∈ Rk×k также
положительно определена [3].
Следствия:
1 Если A – положительно определенная матрица, то все её главные
подматрицы положительно определенные, все диагональные
элементы положительны.
2 Если A – положительно определенная матрица, то разложение
A = LDMT существует и матрица D = diag (d1 , d2 , d3 , . . . dn )
имеет положительные диагональные элементы.
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 24 / 32
31. Симметричные, положительно определенные системы
Положительно определенная матрица
Задачи механики
Общий вид матричного уравнения движения механической
системы
H(q)¨ + C(q, q) = Q(q, q)
q ˙ ˙
H(q) – обобщенная матрица масс
Кинетическая энергия системы (для стационарных связей)
1
T = T2 = qT H(q)q ≥ 0
˙ ˙
2
H(q) – симметричная положительно определенная матрица
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 25 / 32
32. Симметричные, положительно определенные системы
Метод Холецкого
Для симметричной положительно определенной матрицы справедлива
теорема:
Theorem
Если матрица A ∈ Rn×n является симметричной положительно
определенной, то существует единственная нижняя треугольная
матрица G ∈ Rn×n с положительными диагональными элементами,
такая, что A = GGT .
Доказательство.
Т.к. A симметричная, то существует LDLT разложение. Т.к. элементы
dk положительны √ следствие), то матрица
√ (2 √
G = L · diag ( d1 , d2 , . . . dn ) вещественная, нижняя треугольная с
положительными диагональными элементами и выполняется
соотношение A = GGT .
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 26 / 32
33. Симметричные, положительно определенные системы
Метод Холецкого
Алгоритм
Пусть известны первые j − 1 столбцов матрицы G. Приравнивая j-е
столбцы уравнения A = GGT :
j
A(:, j) = G (j, k)G(:, k)
k=1
2
g11 g11 g21 g11 g31
A = g11 g21 2 2
g21 + g22 g21 g31 + g22 g32
2 2
g11 g31 g21 g31 + g22 g32 g31 + g32 + g332
j столбец
a12 g11 g21 g11 0
a22 = 2 2
g21 + g22 = g21 g21 + g22 g22
a32 g21 g31 + g22 g32 g31 g32
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 27 / 32
34. Симметричные, положительно определенные системы
Метод Холецкого
Алгоритм
j
A(:, j) = G (j, k)G(:, k) →
k=1
j−1
G (j, j)G(:, j) = v = A(:, j) − G (j, k)G(:, k)
k=1
1 Вычисление вектора v по известным j − 1 столбцам матрицы G.
2 Вычисление G(j : n, j) = v(j : n)/ v (j).
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 28 / 32
35. Симметричные, положительно определенные системы
Разложение Холецкого
Алгоритм [3]
for j=1:n
v(j:n)=A(j:n,j)
for k=1:j-1
v(j:n)=v(j:n)-G(j,k)*G(j:n,k)
end
G(j:n,j)=v(j:n)/sqrt(v(j))
end
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 29 / 32
36. Симметричные, положительно определенные системы
Метод Холецкого
Решение СЛАУ
Ax = b → G GT x = b
u
Gu = b → GT x = u → x =
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 30 / 32
37. Симметричные, положительно определенные системы
Задание 6
Напишите функцию
x = SolveHol(A,b)
решения системы линейных уравнений с положительно-определенной
симетричной матрицей коэффициентов A.
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 31 / 32
38. Источники
Список использованных источников
В. Ф. Волков.
Численные методы.
Издательство физико-математической литературы, 2001.
В. Е. Распопов and М. М. Клунникова.
Лекции по курсу «Численные методы».
Сибирский федеральный университет, 2007.
Дж. Голуб and Ч. Ван Лоун.
Матричные вычисления.
Мир, 1999.
Кафедра ТМ (СГАУ) СЛАУ специального вида 17 марта 2012 г. 32 / 32