Вычислительная математика. Лекции
.pdf3.3Метод квадратного корня (метод Холецкого).
Этот метод предназначен для решения систем с симметричной матрицей A, главные миноры которой отличны от 0:
Матрица A представляется в виде произведения трёх матриц
A = S DS;
где S верхняя треугольная матрица (S нижняя треугольная), а матрица D- диагональная матрица, на
диагонали которой стоят числа 1 и 1. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
Построение матриц S и D. |
|
|
|
|
|
|
|
= 0; если i > j: Диагональные элементы матрицы D обозначим |
|||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
Обозначим элементы матрицы S : sij; sij |
|
||||||||||||||||||||||||||||||||||
через d1; d2; :::; dn: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Элементы матрицы DS равны fdisijgi;jn =1; элементы матрицы S DS равны |
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
i |
|
|
|
|
|
|
|||
|
|
|
|
(S DS)ij = |
k=1 |
sikdkskj = |
|
|
skidkskj = |
skidkskj; |
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k=1 |
|
|
|
k=1 |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
X |
|
|
|
|
|
|
|||||
так как ski = 0 при k > i: Равенство (S DS) = A приводит к условиям |
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k=1 |
skidkskj = aij; |
|
|
j = i; i + 1; :::; n: |
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Первый шаг: для первой строки i = 1 : |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
s11d1s1j = a1j (j = 1; 2; :::; n); и при j = 1 получаем |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
2 |
2 |
a11 |
: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s11d1 = a11; s11 |
= d1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Для того, чтобы величина |
a11 |
|
была положительной, положим d1 |
= sign a11: Тогда s11 |
= |
|
a11 |
j |
> 0: |
||||||||||||||||||||||||||
|
d1 |
|
|
|||||||||||||||||||||||||||||||||
|
Из равенств s11d1s1j = aij |
получаем |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pj |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
sij |
= |
a1j |
|
|
j = 2; 3; :::; n |
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
s11d1 |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
и все элементы первой строчки матрицы S найдены. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
Второй шаг: для i = 2 |
s12d1s1j + s22d2s2j |
= a2j; (j = 2; 3; :::; n) и при j = 2 : |
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
s2 |
d + s2 |
|
d |
2 |
= a ; s2 |
= |
a22 s122 d1 |
: |
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
12 |
1 |
|
22 |
|
|
|
|
22 |
|
|
22 |
|
|
d2 |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Значение d2 выберем из условия s2 |
|
0; т.е. d2 = sign(a22 |
|
s2 d1): |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
2 |
|
2 |
|
|
|
|
22 |
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
12 |
|
|
|
|
|
|
|
|
|
|||
|
Тогда s22 |
= ja22 s12d1j и s22 |
= |
ja22 s12d1j: |
|
|
|
a2 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
Покажем, что s22 > 0 : s222 |
= |
j |
a22p s122 d1 |
j |
= |
j |
a22 |
|
|
12 |
|
= |
j |
2 |
> 0 и s22 строго больше нуля. Далее из |
||||||||||||||||||||
|
|
a |
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 j |
|
1 j |
|
|
|
|
|
|
|
|
|
равенств s22d2s2j = a2j s12d1s1j находим все элементы второй строчки матрицы S.
Аналогичным способом рассматривая строчки i = 3; 4; :::; n; получаем последовательно числа di, числа sii > 0 и все элементы i-той строчки матрицы S.
Решение СЛАУ. Ax = y: S DSx = y: Обозначим DSx = z: Тогда S z = y система с нижней треугольной матрицей, диагональные элементы которой sii > 0: Решение z этой системы легко получить. Решение x исходной системы найдем как решение системы DSx = z с верхней треугольной матрицей, диагональные элементы которой отличны от нуля.
3.4Метод окаймления построения обратной матрицы.
Метод окаймления состоит в последовательном построении обратных матриц, соответствующих главным минорам матрицы A. Поэтому предполагается, что все главные миноры матрицы отличны от нуля.
Матрица A1 = a11 размерности 1 1 имеет обратную:
A1 1 |
1 |
|
6= 0): |
= a11 |
; ( 1 |
18
Предположим, что1 |
для матрицы Am 1 |
размерности (m 1) (m 1) с определителем m 1 6= 0 |
|||||||||||||||||||||||||||||||||||||||||||||||
обратная матрица Am 1 уже построена (например при m = 2). |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||
Построим обратную матрицу для матрицы Am, |
det Am = m 6= 0: |
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||
Представим матрицу Am и матрицу Am1 в блочном виде: |
|
1 0 |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
Am |
|
|
|
|
|
|
|
|
|
|
|
|
Bm |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
Em |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
1 |
|
|
v |
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
Am = |
|
|
|
|
|
|
T |
|
|
am |
; Am1 = |
|
|
|
T |
|
|
|
; |
|
|
|
Em = |
0T |
1 ; |
am = amm; где v; w вектор- |
|||||||||||||||||||||||
|
|
|
u |
|
s |
||||||||||||||||||||||||||||||||||||||||||||
столбцы, |
|
|
T , |
|
|
T - вектор-строчки. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
u |
s |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
Am 1Bm 1 + |
|
T = Em 1 |
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : |
1 |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||
vs |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
Am 1 |
|
+ |
|
= 0 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : |
2 |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||
w |
v |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
T + am = 1 |
|
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : |
3 |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||
u |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
Из Am1Am = E : |
|
T Am 1 + |
|
T = 0T |
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : |
4 |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||
s |
u |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
Из (2) : |
|
= Am1 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
w |
v: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
Из (3) : Am1 1 |
|
+ am = 1 и если am |
|
T Am1 1 |
|
|
6= 0; |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
v |
u |
v |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
= |
|
|
1 |
|
: |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
am |
|
T Am1 1 |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
u |
v |
|
|
|
|
|
|
|
|
Из (4) : sT + uT Am1 1 = 0T и sT = uT Am1 1:
Из (1) : Bm 1 + Am1 1vsT = Am1 1 и Bm 1 = Am1 1(Em 1 vsT ):
Покажем, что am uT Am1 1v 6= 0: СЛАУ с матрицей Am имеет единственное решение при любой правой части. Запишем матрицу Am в блочном виде, в правой части возьмем вектор, у которого только
координата ym отлична от нуля: |
uT |
|
|
|
|
xm |
= |
ym |
||
|
|
am |
||||||||
|
Am |
1 |
|
v |
|
|
x |
|
|
0 |
Тогда Am 1x + xmv = 0, x + xmAm1 1v = 0 и uT x + xmuT Am1 1v = 0:
Последнее уравнение системы имеет вид
uT x + amxm = ym:
Сравнивая эти два полученные уравнения, получаем:
xm(am uT Am1 1v) = ym:
Так как координата xm определяется однозначно при любом значении ym, то величина am uT Am1 1v 6=
0:
Итак, продолжая процесс построения матриц Am1; построим и матрицу An 1: Число операций равно n3: Замечание. Пусть в математическую модель кроме параметров x1; x2; :::; xn вводится еще один параметр xn+1; значение которого неизвестно. В случае линейных моделей получаем матрицу An+1: Метод окаймления позволяет получить матрицу An+11 ; исходя из уже построенной матрицы An 1 за (3n2 + 3n 1)
операций.
3.5Метод прогонки решения систем с трехдиагональной
матрицей.
Рассматривается СЛАУ с матрицей размерности (n + 2) (n + 2) :
0 a1 |
c1 |
b1 |
: |
: |
|
: |
: |
|
|
0 |
1 |
|
|
|
|
|
|
|
|||||
B |
1 |
2 |
0 |
: |
: |
|
: |
: |
|
|
0 |
C |
|
|
|
|
|
|
|
||||
0 |
a2 |
c2 |
: |
: |
|
: |
: |
|
|
0 |
|
|
|
|
|
|
|
||||||
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
|
B |
0 |
: |
: |
a |
c |
i |
b |
i |
: |
|
|
0 |
C |
|
|
|
|
|
|
|
|||
B |
: |
: |
: |
|
i |
: |
|
: |
|
|
: |
C |
|
|
|
|
|
|
|
||||
B |
: |
|
: |
|
|
C |
|
|
|
|
|
|
|
||||||||||
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
|
B |
0 |
0 |
0 |
0 |
0 |
|
a |
n |
c |
n |
b |
n |
C |
|
|
|
|
|
|
|
|||
B |
|
|
|
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
|
|||||
B |
0 |
0 |
0 |
0 |
0 |
|
0 |
|
|
1 |
C |
|
|
|
|
|
|
|
|||||
B |
|
|
|
y |
T |
= ( ; |
|
f ; |
|
|
2 |
|
|
|
C |
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
f ; :::; |
|
A |
; ) |
a |
; b = 0 |
|
|
; |
= 0: |
||||||||
и с правой частью |
|
|
|
1 |
1 |
2 |
|
|
|
f |
, |
||||||||||||
|
|
|
|
|
n |
2 . |
i |
i 6 |
1 |
2 |
6 |
19
К решению таких систем сводится например задача приближенного решения граничной задачи для линейного дифференциального уравнения второго порядка с переменными коэффициентами:
|
|
|
|
|
|
d2u(x) |
A(x)u(x) = F (x); 0 < x < l; A(x) > 0; |
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
dx2 |
|
||||||||||||||||||||||||
u(0) k0 |
du |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
du |
|
||||||||||||||
|
|
= s0; |
|
(x = 0); k > 0; u(l) + k1 |
|
|
|
|
= s1; (x = l); k1 |
> 0: |
|||||||||||||||||||||||
dx |
dx |
||||||||||||||||||||||||||||||||
Обозначим h = |
|
l |
|
|
; xi = ih; неизвестные значения u(xi) = ui; значения F (xi); A(xi) обозначим Fi; Ai: |
||||||||||||||||||||||||||||
|
n+1 |
||||||||||||||||||||||||||||||||
Считая, что |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
d2u |
ui 1 2ui + ui+1 |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
получим систему: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dx2 |
|
|
h2 |
|
|
|
|
|
|
|||||||||
|
|
|
|
|
ui 1 2ui + ui+1 Aih2ui = h2Fi; |
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
i = 1; 2; :::; n |
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
hu0 k0(u1 u0) = s0h |
(i = 0) |
|
||||||||||||||||||||
или |
|
|
|
|
|
|
|
|
hun+1 + k1(un+1 un) = s1h |
(i = a + 1) |
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k0 |
|
|
h |
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
u0 |
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
u1 |
= |
|
s0 |
(i = 0) |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
k0 + h |
k0 + h |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
ui 1 (2 + h2Ai) + ui+1 = Fih2 |
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k1 |
|
|
|
|
|
h |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
un |
+ un+1 = |
|
|
s1 |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
k1 + h |
k1 + h |
|
||||||||||||||||||||
Эта система - система с трехдиагональной матрицей: |
|
|
|
|
|
|
|||||||||||||||||||||||||||
1 |
= |
|
|
k0 |
; 2 |
= |
|
k1 |
|
; ai = 1; ci = 2 + h2Ai; bi = 1; fi = h2Fi; |
|||||||||||||||||||||||
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
k0 + h |
|
k1 + h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
1 = |
|
h |
|
s0; 2 = |
h |
|
|
|
|
s1: |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
k0 + h |
k1 + h |
|
Для решения систем с трехдиагональной матрицей можно, например, применить метод Гаусса. Учитывая особенности матрицы, можно существенно упростить процесс построения решения.
Будем искать значения xi в виде |
|
|
|
|||||||||
|
|
|
|
|
|
|
xi = i+1xi+1 + i+1; |
i = 0; 1; 2:::n |
||||
где i+1 и i+1 неизвестные коэффициенты. |
|
|
|
|||||||||
Тогда xi 1 = ixi + i. Из i-того уравнения системы |
|
|
|
|||||||||
|
|
|
|
|
|
|
aixi 1 cixi + bixi+1 = fi |
|
||||
исключим xi 1: ai( ixi + i) cixi + bixi+1 = fi |
|
|
|
|||||||||
|
|
|
|
|
bixi+1 |
fi+ iai |
|
|
|
|||
|
|
|
xi = |
|
+ ci iai , если ci iai 6= 0; |
|
|
|
||||
|
|
|
ci iai |
|
|
|
||||||
и в представлении значений xi : |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
bi |
|
fi + iai |
|
|
|
|
|
|
|
|
|
i+1 = |
|
; i+1 |
= |
|
: |
|
|
|
|
|
|
|
ci iai |
ci iai |
||||
Значения 1 и 1 |
получим из первого уравнения системы, при i = 0: x0 + 1x1 = 1: Следовательно, |
|||||||||||
1 = 1, 1 = 1: Значения 2, 2 получим последовательно |
|
|||||||||||
2 = |
|
b1 |
; |
2 = f1+ 1a1 |
и т.д. |
|
|
|
||||
c1 |
|
|
|
|
||||||||
|
1a1 |
|
c1 1a1 |
|
|
|
|
|
|
Коэффициенты i, i i = (1; 2; :::; n + 1) называются прогоночными коэффициентами.
Решение системы xi получим (обратный ход), рассматривая сначала последнее уравнение системы
(i = n + 1): 2xn + xn+1 = 2 вместе с представлением xn = n+1xn+1 + n+1: Отсюда получим
xn+1 = 1+ 2 n+1 , если 1 2 n+1 6= 0
Значения xn; xn 1; :::; x0 вычислим последовательно:
xi = n+1xi+1 + i+1; (i = n; n 1; :::; x1; x0):
20
При вычислении xi мы замечаем, что если значения j ij > 1; то при большой размерности системы погрешности в задании правых частей системы и погрешности значений xi будут возрастать, т.е. процесс вычисления xi будет неустойчивым относительно погрешности вычислений. Поэтому, кроме условий ci iai; 1 2 n+1 6= 0, желательно ввести требование j ij 1:
Теорема. Если jcij jaij + jbij; j 1j 1; j 2j 1; то ci iai 6= 0; j ij 1 для всех i.
Доказательство. Так 1 = 1, то j 1j 1: Далее величины
jci iaij jbij jcij j iaij jbij jaij + jbij j ijjaij jbij = jaij(1 j ij)
и
jci iaij jbij + jaij(1 j ij) jbij > 0:
Тогда
jbij
j i+1j = jcij iai 1;
Итак j 1j 1; j 2j 1; :::; j n+1j 1 и j1 2 n+1j 1 j 2j > 0:
Замечание. Рассмотренный метод прогонки называется методом верхней прогонки. Если исходить из начального представления в виде xi = i 1xi 1 + i 1; то получим метод нижней прогонки. Можно построить и методы встречных прогонок.
|
И т е р а ц и о н н ы е |
м е т о д ы |
р е ш е н и я СЛАУ. |
|
|||||||
Построение итерационных методов. |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
xk+1 xk |
|
|
|
Для СЛАУ Ax = y рассмотрим итерационный процесс |
+ Axk = y, т.е. xk+1 |
= xk (Axk y) |
|||||||||
|
|||||||||||
при > 0: |
|
|
|
|
|
|
|
|
|
||
Если последовательность векторов |
f |
x |
kg |
имеет предел x , то Ax = y и x - решение системы. |
|||||||
|
|
|
|
1 |
легко строятся. |
|
|
||||
Пусть Bk- неособые матрицы и матрицы Bk |
|
|
|
Тогда Bk xk+1 xk + Axk = y, и мы получаем итерационный процесс:
xk+1 = xk Bk 1Axk + Bk 1y = (E Bk 1A)xk + Bk 1y = Sxk + Bk 1y:
Матрица S- матрица перехода. Если k E Bk 1A k< 1, то итерационный процесс сходится к решению системы.
3.6Метод простой итерации.
Рассматривается система Ax = y, где матрица E B :
x = Bx + y:
Задавая вектор xo построим вектор x1 = Bx0 + y и далее xk = Bxk 1 + y: Ясно, что верна теорема:
Теорема. Если k B k= q < 1; то существует единственное решение x , последовательность fxkg стремится к x со скоростью геометрической прогрессии для любого начального вектора x0.
Доказательство. Рассмотрим однородную систему x = Bx: Для её решения верно неравенство k x k=k Bx k k B kk x k= q k x k : Тогда x = 0: Следовательно, решение исходного уравнения существует и единственно при любой правой части y.
Так как x = Bx + y и xk = Bxk 1 + y; то
k x xk k=k Bx Bxk 1 k q k x xk 1 k qk k x x0 k :
Замечание. Полученная оценка называется априорной оценкой, так как вектор x неизвестен. Однако, зная xk 1 и xk, легко получить так называемую апостериорную оценку:
k x xk k=k x xk+1 k + k xk+1 xk k
k x xk k + k Bxk Bxk 1 k q k xk xk 1 k;
21
k x xk k 1 q q k xk xk 1 k :
Система x = Bx + y имеет специальный вид. Для СЛАУ с симметричной положительной матрицей можно рассмотреть систему x (E A)x = b: Если собственные числа матрицы A равны 0 < 1 2
::: n; собственные числа матрицы равны 1 i, и норма матрицы E A k E A k2= max j1 ij:
i
|
2 |
|
|
2 i |
|
|
Взяв = |
|
, получим, что j1 |
|
|
j < 1: Тогда итерационный процесс xk+1 |
= xk + (E A)xk + b |
n+ 1 |
n+ 1 |
|||||
сходится. |
|
|
|
|
|
|
Для произвольной матрицы A можно рассмотреть СЛАУ A Ax = A y и построить для этой системы указанный итерационный процесс. Но следует иметь ввиду, что число обусловленности (A A) увеличи-
вается:
(A A) =k A A kk (A A) 1 k= 2(A) > (A):
3.7Метод Зейделя.
Будем предполагать, что диагональные элементы матрицы A отличны от нуля. Матрицу A представим в виде
A = L + D + U;
где матрица D - диагональная матрица, матрицы L и U нижняя и верхняя треугольные матрицы с нулевыми диагоналями.
Метод Зейделя состоит в задании начального вектора x0 и в последовательном вычислении векторов
xk:
(L + D)xk+1 = y Uxk;
Тогда
xk+1 = (L + D) 1Uxk + (L + D) 1y:
При реализации этого метода не требуется строить матрицу (L + D) 1:
Действительно:
a11xk1+1 = (a12xk2 + a13xk3 + ::: + a1nxkn) + y1, получаем xk1+1 a21xk1+1 + a22xk2+1 = (a23xk3 + ::: + a2nxkn) + y2, получаем xk2+1
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
an1xk1+1 + an2xk2+1 + ::: + annxkn+1 = yn, получаем xkn+1
и таким образом строим xk+1:
Вариантами метода Зейделя являются методы релаксации
(!L + D) 1xk+1 = (1 !)Dxk !Uxk + !y
с выбором параметра релаксации ! 2 (0; 2): При ! 2 (0; 1) получаем методы нижней релаксации, при
!2 (1; 2) - методы верхней релаксации. Наиболее употребительны методы верхней релаксации. Сходимость метода Зейделя легко доказывается, например в предположении, что матрица A - матрица
с диагональным преобладанием: jaiij |
jaijj > 0 для всех i. |
|
|
j6=i |
|
В этом случае |
P |
|
|
n |
n |
PP
k |
(L + D) 1 |
k1 |
max |
|
j=m+1 jamjj |
|
|
max |
j=m+1 jamjj |
< 1: |
|||
|
|
m 1 |
|
|
|
n |
|||||||
|
m |
|
|
|
m |
|
|
||||||
|
|
|
|
j |
amm |
|
amj |
j |
|
+ |
m+1 jamjj |
|
|
|
|
|
|
|
j j=1 j |
|
|
|
j=P |
|
|||
|
|
|
|
|
|
P |
|
|
|
|
|
|
|
22
Глава 4
МЕТОДЫ МИНИМИЗАЦИИ КВАДРАТИЧНОЙ ФУНКЦИИ.
Пусть f(x) непрерывная функция, отображающая множество D Rn в множество R1. Ставятся две задачи:
-найти inf f(x), x 2 D
-найти точку x 2 D, такую что f(x) f(x ), x 2 D.
В этой главе рассматриваются методы решения этих задач на простом примере минимизации квадратичной функции. Одновременно строятся и методы решения систем линейных алгебраических уравнений с положительно определенной матрицей.
4.1Квадратичная функция.
Функция
1 |
n |
n |
||
X |
X |
|||
|
|
|||
f(x) = |
|
|
aijxixj + bixi; |
|
2 |
i;j=1 |
|||
|
|
i=1 |
где точки x(x; :::; xn) 2 Rn, (D = Rn) называется квадратичной функцией.
Мы не будем различать точки x 2 Rn и векторы x 2 Vn с составляющими (x1; x2; :::; xn). Введя в Vn скалярное произведение, получим
f(x) = 12(Ax; x) + (b; x);
где матрица A симметрична. Собственные числа i матрицы A вещественны и 0 i n:
В этой главе рассматриваются матрицы A, имеющие обратные матрицы. Тогда 1 > 0, 1 2 :::
n и |
|
|
1 k x k22 (Ax; x) n k x k22 |
: : : : : : : : : : : : : : : : : : : : : : : : : : : |
1 |
Значения собственных чисел i как правило неизвестны, но на практике известны оценки 1 m > 0,n M. Тогда (k z k=k z k2)
m k x k2 (Ax; x) M k x k2 : : : : : : : : : : : : : : : : : : : : : : : : : : : 10
Значения jf(x)j при неограниченном росте k x k неограниченно возрастают, так как (Ax; x) 1 k x k2, а значения j(b; x)j имеют порядок роста k x k. Таким образом inf f(x) может достигаться на ограниченном множестве.
Рассмотрим
f(x + ) f(x) = 12(A(x + ); x + ) + (b; x + ) 12(Ax; x) (b; x) =
= (Ax + b; ) + |
1 |
(A ; ) |
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : |
2 |
|
2 |
|||||
|
|
|
|
23
Пусть x0- любой вектор. Если Ax0 + b 6= 0, то в точке x0 нет ни максимума, ни минимума: и при малых значениях k x k знак разности
f(x0 + x) f(x0) определяется знаком (Ax0 + b; x), и при замене x на x знак f(x0 + x) f(x0) меняется на противоположный. Поэтому точка x0 не может быть точкой экстремума функции f(x): Таким образом, единственная точка экстремума функции f(x) является единственным решением x системы линейных алгебраических уравнений
Ax = b:
В точке x f(x + x) f(x ) = 12 (A x; x) > 0, следовательно точка x единственная точка минимума функции f(x):
1. Из равенства
k f(x + x) f(x) (Ax + b; x) k= 0(k x k)2
согласно определению производной отображения f в точке x, получаем что вектор Ax + b определяет линейный оператор f0(x) действующий из Vn в R1 по формуле
f0(x) = (Ax + b; ); f0(x) = Ax + b:
2. Дифференцируя функцию f(x) = f(x1; x2; :::; xn) по координатам xi, получаем
@f |
n |
|
Xj |
||
|
||
@xi |
||
= aijxj + bi |
||
|
=1 |
и Ax + b = grad f(x) и вектор grad f(x) будем обозначать r(x) :
r(x) = grad f(x) = f0(x) = Ax + b
Вектор grad f(x) = r(x) определяет направление наискорейшего возрастания значений f(x) в окрестности точки x, а вектор r(x) определяет направление наискорейшего убывания этих значений.
Методы минимизации значений функции f(x) в соответствии с поставленными задачами можно также разделить на две группы:
- близость точки x к точке x оценивается величиной k x x k;
- близость точки x к точке x оценивается значениями f(x) f(x ):
В обоих случаях используются градиенты функции f(x); но методы первой группы называются градиентными методами, а методы второй группы - методами спуска.
4.2Градиентные методы.
Пусть выбран начальный вектор x0. Векторы xk строятся последовательно по правилам xk+1 = xk(Axk + b), > 0: Вектор r(xk) = Axk + b обозначим rk: rk = Axk + b:
Возникает вопрос: как выбрать значение ? Оценим
|
|
|
k xk+1 x k=k xk (Axk + b) x k=k xk x (Axk Ax ) k=k (E A)(xk x ) k : |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
min |
k E A k : Собственные числа симметричной |
|||||||||
|
Естественно выбирать значение из условия |
|||||||||||||||||||
матрицы E A равны 1 i; где i- собственные числа матрицы A и k E A k= maxi |
j1 ij: |
|
||||||||||||||||||
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
2 |
|
2 |
|
|
||
|
Ясно, что при 0 < < |
|
значения maxi |
j1 ij = 1 |
1, а при |
|
< 0 < |
|
значения |
|||||||||||
|
1+ n |
1+ n |
n |
|||||||||||||||||
|
|
j1 ij = n 1: Таким образом при 2 |
2 |
) значения k E A k< 1: Наименьшее значение |
||||||||||||||||
maxi |
(0; |
|
||||||||||||||||||
n |
||||||||||||||||||||
k |
E |
|
A |
k достигается при |
= 0 = |
|
2 |
и равно |
n 1 : |
Если для собственных чисел матрицы |
A |
|||||||||
|
|
|
|
1 |
+ n |
n+ 1 |
|
известны только оценки m и M, то в этих оценках следует заменить 1 на m, а n на M.
Таким образом, при 2 (0; 2 ) градиентный метод сходится к точке x со скоростью геометрической
n
прогрессии:
k xk+1 x k qk+1 k x x0 k= Cqk+1; 0 < q < 1
(при = 0 значение q = n 1 ):
n+ 1
24
4.3Метод наискорейшего спуска.
Вэтом методе величина (шаг по направлению антиградиента) в итерационном процессе xk+1 =
xk rk выбирается из условия минимума значения f(xk+1).
Согласно (2): f(xk+1) = f(xk rk) = f(xk) (Axk + b; rk) + 12 (A rk; rk) = = f(xk) (rk; rk) + 12 2(Ar; rk) = '( ):
Значение находим из условия '0( ) = 0 : и оптимальное значение :
= k = (rk; rk) :
(Ark; rk)
Метод наискорейшего спуска строится по правилу
xk+1 = xk krk:
Вычислим (rk+1; rk) = (Axk+1 + b; rk) = (A(xk krk) + (b; rk)) = Axk + bk(Ark; rk) = (rk; rk) k(Ark; rk) = 0:
Таким образом, в методе наискорейшего спуска векторы rk и rk+1 ортогональны: (rk+1; rk) = 0: Построим векторы pk = xk xk 1; где вектор xk построен по методу наискорейшего спуска. Тогда
(rk+1; pk) = (rk+1 krk) = k(rk+1; rk) = 0.
Тогда в методе наискорейшего спуска векторы rk+1 и pk ортогональны:
(rk+1; pk) = 0:
Сходимость метода наискорейшего спуска.
Рассмотрим последовательность векторов fxkg; полученную по методу наискорейшего спуска с начальным вектором x0 :
xk+1 = xk krk:
Ясно, что
f(xk+1) f(x ) f(xk) f(x ):
Построим вектор yk+1 = xk 0rk, где 0 = 1+2 n ; т.е. yk+1 строим согласно градиентному методу с оптимальным значением = 0: Ясно, что
f(xk+1) f(x ) f(yk+1) f(x ):
Значение f(yk+1) f(x ) = 12 (A(yk+1 x ); yk+1 x ); yk+1 x = xk x 0A(xk x ) = (E 0A)(xk x );
A(yk+1 x ) = (E 0A)A(xk x ):
Вектор xk x представим в виде линейной комбинации собственных векторов 'i матрицы A:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Xi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xn x = Ci'i: |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=1 |
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
n |
|
|
|
Тогда yk+1 x = |
=1(1 0 |
i)Ci'i; A(yk+1 x ) = j=1(1 0 j) jCj'j и (A(yk+1 x ); yk+1 x ) = |
|||||||||||||||||
n |
|
|
|
|
|
iP |
n 1 )2 |
n |
|
|
|
|
|
|
P |
|
x ): |
||
|
(1 |
|
0 |
)2 |
C2 |
|
( |
|
|
C2 = q2(A(x |
x ); x |
|
|||||||
i=1 |
|
i |
i |
i |
|
n+ 1 |
i=1 |
i |
i |
|
|
n |
|
n |
|
||||
P Из неравенства |
f(x |
|
x ) |
|
f(y |
k+1 |
f(x |
)) |
следует |
||||||||||
|
|
|
k+1) fP( |
|
|
|
|
f(xk+1) f(x ) q2(f(xk) f(x )) q4(f(xk 1) f(x )) ::: q2(k+1)[f(x0) f(x )]
Тогда
f(xk) f(x ) q2k[f(x0) f(x )];
и последовательность f(xk) сходится к f(x ) со скоростью геометрической прогрессии со знаменателем q2,
где
q = n 1n + 1
Апостериорная оценка f(xk) f(x ).
25
f(xk) f(x ) = f(xk) f(xk+1) + f(xk+1) f(x ) f(xk) f(xk+1)+ +q2(f(xk) f(x ))
и
|
|
|
|
|
|
f(xk) f(x ) |
|
1 |
|
|
|
[f(xk) f(xk+1)]: |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
1 q2 |
|||||||||||||||||||||||
Апостериорная оценка k xk x k по значениям f(xk) и f(xk+1). |
|||||||||||||||||||||||
Так как |
|
|
|
|
|
|
|
1 |
|
||||||||||||||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
(A(xk x ); xk x ) = f(xk) f(x ) |
|
|
|
[f(xk) f(xk+1)]; |
|||||||||||||||||
|
2 |
1 q2 |
|||||||||||||||||||||
1 |
1 k xk x k2 |
1 |
|
|
|
|
[f(xk) f(xk+1)] |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
2 |
|
1 q2 |
|||||||||||||||
и |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
k xk x k s |
|
|
|
|
|
[f(xk) f(xk+1)]1=2: |
||||||||||||
|
|
|
2 |
|
|
|
|||||||||||||||||
|
|
1(1 q2) |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
Сходимость xk к x . |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Из свойств матрицы |
A следует |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
||||||||
|
|
|
|
|
1 k xk x k2 f(xk) |
f(x ) q2k |
|
n k x0 x k2 |
|||||||||||||||
|
|
|
|
2 |
2 |
||||||||||||||||||
и |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
k xk x k qkr |
|
|
|
|
k x0 x k : |
|||||||||||
|
|
|
|
|
|
|
|
1 |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|||
Таким образом xn ! x со скоростью геометрической прогрессии со знаменателем q. |
4.4 Метод сопряженных градиентов.
Пусть x0 начальный вектор. Вектор x1 построим по методу наискорейшего спуска:
x1 = x0 0r0 (если r0 отличен от нулевого вектора, то 0 6= 0), и вычислим векторы r1 = Ax1 + b, p1 = x1 x0. Эти векторы ортогональны. Любой вектор и в частности вектор x x1 можно представить в виде ортогонального разложения x x1 = r1 + p1 + z, где z ? p1, z ? r1.
Метод сопряженных градиентов начинается с минимизации значений функции f(x) на гиперплоскости x = x1 r1 + p1. Значения функции
1
f(x) = f(x1) + (r1; r1 + p1) + 2(A( r1 + p1); r1 + p1) = '( ; ):
Естественно предполагать, что векторы r1 и p1 отличны от нулевого вектора. Ясно, что минимум функции f(x) на гиперплоскости существует и единственен. Условия минимума функции f(x) :
|
@' |
|
1 |
|
1 |
|
|
|||||||||
|
0 = |
|
|
= (r1; r1) + |
|
|
( Ar1; r1 + p1) |
|
|
(A( r1 |
+ p1); p1) |
|||||
|
@ |
2 |
2 |
|||||||||||||
|
|
|
@' |
1 |
|
1 |
|
|
||||||||
|
0 = |
|
= (r1; p1) + |
|
|
(Ap1; r1 + p1) + |
|
(A( r1 + p1); p1) |
||||||||
|
@ |
2 |
2 |
|||||||||||||
Эту систему можно записать в виде |
|
|
|
|
(p1; r1 Ar1 + Ap1) = 0 |
|
||||||||||
(Ap1 |
; r1) + (Ap1 |
; p1) = (r1; p1) |
|
|
|
|
||||||||||
(Ar1 |
; r1) (Ap1 |
; r1) = (r1; r1) |
или |
(r1; r1 Ar1 + Ap1) = 0 |
Решение системы существует и единственно: = 1, = 1 и величина 1 > 0: Обозначим векторы
x2 = x1 r1 + p1
r2 = Ax2 + b = Ax1 + b 1Ar1 + 1Ap1 = r1 1Ar1 + Ap1
26
и в силу системы получаем свойства векторов r2 и p1:
|
|
(r2; r1) = 0; |
(r2; p1) = 0 |
|
Вычислим величину (r0; r2 = 0) = ( |
1 |
(x1 x0); r2) = |
1 |
(p1; r2) = 0: |
0 |
0 |
Таким образом векторы r1, r1, r2 попарно ортогональны. Для векторов p2 и p1 получаем:
(Ap1; p2) = (Ap2; p1) = (r2; p1) (r1; p1) = (r1; p1) = 0; (Ap2; p2) > 0:
В методе сопряженных градиентов последовательно строятся векторы xk+1 = xk + krk + kpk; k = 1; 2; : : : :
Если окажется, что вектор rk нулевой, то Axk = b и xk = x : В этом случае итерационный процесс заканчивается.
Коэффициенты k и k находятся из условия минимума значений функции f(xk + rk + pk): Из получаемой системы двух линейных уравнений для и получаем единственное решение = k и = k: Ясно, что значение k > 0: Свойства этого решения можно записать в виде: (rk+1; rk) = 0, (rk+1; pk) = 0:
Теорема. Ненулевые векторы r0; r1; r2; :::; rk попарно ортогональны.
Доказательство. Предположим, что теорема верна для r0; r1; r2; :::; rk: (при k = 2 она верна), построим вектор rk+1:
На предыдущих шагах (при i = 1; 2; :::; k 1) ri+1 = ri iAri+ + i(ri ri 1):
Так как значение i 6= 0, то Ari = 1 (ri+1 ri i(ri ri 1)); т.е. вектор Ari есть линейная комбинация
i
векторов (ri 1; ri; ri+1):
Вычислим (rk+1; ; ri) для i = (1; 2; :::; k 2) : (ri; rk+1) = (ri; rk) k(ri; Ark) + k(ri; rk rk 1) =k(ri; Ark) = k(rk; Ari) = k(rk; L(ri 1; ri; ri+1)) =
= 0:
При i = 0 величина (rk+1; r0) = k(r0; Ark) + k(r0; rk rr 1) =
= k(rk; r1 r0 ) = 0 и вектор rk+1 ортогонален всем векторам r0; r1; :::; rk 2:
0
При i = k согласно свойству решения системы уравнений для k; k получаем ортогональность векторов kk+1 и rk.
Остается показать, что (rk+1; rk 1) = 0: Вектор pk = k 1 + k 1pk 1 = = : : : = L(r0; r1; :::; rk 1): Согласно свойству системы для k и k получаем
0= (rk+1;pk ) = (rk+1; L(r0; r1; : : : ; rk 1)) = k 1(rk+1; rk 1)
ивекторы r0; r1; : : : ; rk; rk+1 попарно ортогональны. Теорема доказана.
Ввекторном пространстве Vn существует не более n линейно независимых векторов. Если векторы r0; r1; : : : ; rn 1 ненулевые, то вектор rn- нулевой вектор и вектор xn = x :
Следовательно, метод сопряженных градиентов приводит к вектору x за конечное число итераций, не превосходящее (n 1).
Построенный итерационный процесс позволяет найти решение СЛАУ Ax = b с симметричной положительно определенной матрицей A за конечное число операций и поэтому может быть отнесен к числу точных методов решения таких систем.
Замечание. Для ненулевых векторов pi и pj верно (Api; pj) = 0 при i 6= j, а при i = j (Api; pi) 6= 0:
Действительно (Api; pj) = (ri ri 1; L(r0; r1; : : : ; rj 1)) при i > j. С другой стороны (Api; pj) = (pi; Apj) = (Apj; pi) = 0 при j > i. Значение (Api; pi) k pi k2> 0:
4.5Метод сопряженных направлений.
1.A-ортогональные системы векторов.
Пусть A симметричная положительно определенная матрица размерности n n:
Определение. Система ненулевых векторов fs1; s2; :::; sng векторного пространства Vn называется A- ортогональной, если (Asi; sj) = 0 при i 6= j, а (Asi; si) 6= 0:
Векторы А-ортогональной системы линейно независимы. Действительно, если si = c1sk +c2sm, i 6= k; m, то (Asi; si) = (Asi; c1sk; c2; sm) = 0:
27