Choliy.NumericaMethods.2011Dec01
.pdfЗ формальної точки зору, метод Гауса полягає у зведеннi квадратної матрицi системи рiвнянь до верхньої трикутної. Отримана таким способом система еквiвалентна початковiй, однак її розв’язати значно простiше i проводиться це починаючи з останнього рiвняння:
xn = a(nnn−1) .
Пiдставивши знайдене значення у передостаннє рiвняння
x |
n−1 |
= bn(n−−12) − an(n−−12),nxn |
|
|
|
a(n−2) |
|
|
|
|
n−1,n−1 |
маємо ще одну компоненту. Процес повторюється для всiх рiвнянь з яких крок за кроком знаходяться компоненти вектора розв’язку. Дещо пiзнiше вияснимо що робити, якщо у процесi роботи дiагональний елементи стане нульовим.
LU-розбиття. Будь-яку квадратну невироджену матрицю A можна розкласти у добуток нижньої трикутної L та верхньої трикутної U:
A = L · U, lij = 0, i < j, uij = 0, i > j.
Такий розклад неоднозначний, тому зазвичай кладуть uii = 1. Для знаходження елементiв матриць L, U запишемо
n
X
likukj = aij,
k=1
але оскiльки матрицi трикутнi, то n = min(i, j) i тодi:
i |
. |
kPj |
|
=1 |
likukj = aij, i < j |
|
|
kP |
likukj = aij, i ≥ j |
=1 |
|
Тепер у кожнiй сумi вiдокремимо останнiй доданок:
|
i−1 |
|
k=1 likukj + liiuij = aij, lii 6= 1 |
, |
|
|
jP1 |
|
− |
|
|
|
|
|
|
likukj + lijujj = aij, ujj = 1 |
|
|
=1 |
|
|
kP |
|
|
|
|
31
i дещо переписавши, маємо формули для обчислень:
|
lij |
j−1 |
|
|
|
|
|
|
|
|
|
k=1 |
, |
(4.1) |
|
|
i−1 |
||
uij = (aij − |
kP |
likukj)/lii |
|
=1
якими користуємося так: першою при j = 1, i ≥ 1, другою при i = 1, j ≥ 1, потiм знову першою при j = 2, i ≥ 2, тодi другою при i = 2, j ≥ 2 i так до n.
Щоб розв’язати систему рiвнянь з використанням LU-розбиття введемо замiну U~x = ~y:
A~x = ~b LU~x = ~b |
L~y = ~b |
, |
|
U~x = ~y |
|
тобто, одна система рiвнянь з заповненою матрицею A, замiнена на двi системи рiвнянь з трикутними матрицями. Розписавши цi двi системи покомпонентно i прийнявши до уваги трикутну структуру матриць, маємо:
i |
n |
XX
lijyj = bi, |
uijxj = yi. |
j=1 |
j=i |
Вiдокремивши останнiй доданок у першому рiвняннi i перший доданок у другому, отримуємо формули для обчислень:
|
i−1 |
yi |
|
|
i−1 |
|
j=1 lijyj + liiyi = bi |
= (bi − j=1 lijyj)/lii |
. (4.2) |
||||
n |
P |
|
|
|
P |
|
|
|
= yi |
|
uijxj |
|
|
|
uijxj + uiixi = yi |
xi |
− |
|
||
|
|
|
|
n |
|
|
j=Pi |
|
|
|
P |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+1 |
|
|
|
j=i+1 |
|
У формулi (4.1) для uij в знаменнику стоїть lii. Чим бiльший модуль цього числа, тим точнiшими будуть результати обчислень. На цьому будується правило вибору головного елемента i робиться перестановка рядочкiв та стовбчикiв так, щоб на дiагоналi був найбiльший за модулем елемент. Це дає модифiкацiю методу: LU розбиття з вибором головного елемента.
Приклад:
A = |
2 |
3 |
4 |
. L = |
2 |
7 |
0 |
|
, U = |
0 |
1 |
2/7 . |
||||||
|
1 |
−2 |
3 |
|
|
|
1 |
0 |
0 |
|
|
|
|
|
1 |
−2 |
3 |
|
|
1 |
1 |
1 |
|
|
|
1 |
3 |
−8/7 |
|
|
0 |
0 |
−1 |
||||
|
|
~b = 20 |
, |
~y = |
8/7 , |
~x = |
2 . |
|
|
|||||||||
|
|
|
|
6 |
|
|
|
|
6 |
|
|
|
1 |
|
|
|
||
|
|
|
6 |
|
|
3 |
|
3 |
|
|
32
LU-розбиття можна отримати i на основi iншого пiдходу. Нехай d(i) - одинична матриця, у якої елемент dii замiнений не рiвним одиницi числом, а l(i) - нижня трикутна матриця з одиничною дiагоналлю, у якої лише i-й стовбчик пiд дiагоналлю ненульовий, а всi iншi елементи - нулi. Множення довiльної матрицi A (для прикладу вiзьмемо матрицю 3 × 3) на d(1) а тодi на l(1) дає такий результат:
A0 = l(1)d(1) A = −a21 |
1 |
0 |
|
0 |
|
1 |
0 |
a21 |
a22 |
a23 |
= |
||||||||||||
|
|
|
|
1 |
0 |
0 |
|
|
|
|
1/a11 0 |
0 |
|
|
a11 |
a12 |
a13 |
|
|||||
· |
|
−a31 0 |
1 · |
0 |
|
0 |
1 · a31 |
a32 |
a33 |
||||||||||||||
|
= |
|
0 |
a22 |
− a21a12/a11 |
a23 |
− a21a13 |
/a11 |
. |
|
|
|
|||||||||||
|
(1) |
1 |
|
a12/a11 |
|
|
|
|
a13/a11 |
|
|
|
|
|
|||||||||
|
0 |
a |
− |
a |
|
a |
|
/a |
|
a |
|
− |
a |
|
a |
|
/a |
|
|
|
|||
|
(1)32 |
|
31 |
|
12 |
|
11 |
|
33 |
|
31 |
|
13 |
11 |
|
|
|
||||||
Якщо матрицi d |
та l |
утворювати, беручи вiдповiднi елементи матрицi |
A, то результат такого множення такий же, як пiсля першого кроку методу Гауса. Продовжуючи множення, готуючи кожен раз матрицi l(i), d(i) на основi елементiв матрицi A, пiсля послiдовностi крокiв, отримуємо:
d(3)l(2)d(2)l(1)d(1) |
|
A = |
0 |
1 |
u23 |
= U. |
||||||
|
|
|
|
|
|
|
|
1 |
u12 |
u13 |
|
|
Ввiвши позначення |
|
|
|
· |
|
|
0 |
0 |
1 |
|||
(3) |
|
(2) |
(2) |
|
(1) |
|
(1) |
ˆ |
|
|
||
d |
l |
l |
d |
|
|
|||||||
|
|
|
d |
|
|
= L, |
|
|
маємо
ˆ
LA = U,
ˆ
де U - верхня трикутна матриця з одиничною дiагоналлю (за побудовою), а L - нижня трикутна, (оскiльки добуток нижнiх трикутних матриць є нижньою
ˆ−1
трикутною матрицею). Якщо покласти L = L,
L · U = A.
Таким чином, LU-розбиття можна виконати множенням на послiдовнiсть вiдповiдно пiдiбраних елементарних матриць. Знаходження матрицi L не складає труднощiв, оскiльки матрицi, оберненi до l(i) та d(i), знаходяться дуже просто, наприклад:
x |
1 |
0 |
−x |
1 |
0 |
= E, |
|
0 |
11 |
1 |
0 |
· |
0 |
1 |
0 |
= E. |
1 |
0 |
0 |
1 |
0 |
0 |
|
|
1/a |
0 |
0 |
|
a11 |
0 |
0 |
|
|
y |
0 |
1 · −y |
0 |
1 |
|
0 |
|
0 |
1 0 |
0 |
1 |
|
33
Обернена матриця знаходиться таким способом. Очевидно, що
A · A−1 = E.
Поклавши A−1 = X маємо
A · X = E.
Оскiльки стовбчики матрицi з ненульовим визначником незалежнi, то останнє рiвняння можна розбити на n лiнiйних систем:
A · ~x(i) = ~e(i), i = 1, . . . , n,
де ~e(i) - орт, нульовий вектор з одиницею у i-й позицiї. Матрицю досить розбити один раз, а тодi розв’язати n лiнiйних систем. Знайденi вектори ~x(i) є стовбчиками оберненої матрицi.
Знаходження визначника грунтується на тому, що
n
Y det A = det L · det U = lii.
i=1
Метод Холецького. Якщо матриця A симетрична. LU-розбиття можна за-
мiнити на
L · LT = A.
Тепер матриця L, а значить i LT - трикутна з неодиничною дiагоналлю. Мiркуючи зовсiм аналогiчно, запишемо
n
X
likukj = aij,
k=1
але U = LT , тому
n
X
likljk = aij.
k=1
Тут обов’язково i ≥ j, що дає
j
X
likljk = aij,
k=1
а пiсля вiдокремлення останнього доданка в сумi:
j−1
X
lik · ljk + lijljj = aij.
k=1
34
Це дає формули для обчислень:
ljj2 |
= ajj − |
j−1 |
||
lik · ljk |
||||
|
1 |
|
kP j−1 |
|
|
|
|
|
=1 |
lij |
= lii aij − k=1 lik · ljk . |
|||
|
|
|
|
P |
Формули повиннi використовуватися у циклi по j = 1, . . . , n всерединi якого цикл по i = j +1, . . . , n. Iнша назва цього методу - метод квадратного кореня. QR-розбиття. Це ще одне розбиття матрицi на двi
A = QR,
але тепер матриця R - верхня трикутна, а матриця Q - ортогональна, для якої QQT = E, Q−1 = QT , тобто її транспонована спiвпадає з оберненою. Саме ця остання властивiсть вiдiграє головну роль у методi, що розглядається далi, а сам пiдхiд має дуже важливе значення також i при вiдшуканнi власних чисел та векторiв.
Перетворення Хаусхолдера. Знайдемо послiдовнiсть ортогональних матриць, якi утворять Q. Нехай w~ - довiльний вектор, для якого |w~| = 1. Розглянемо
матрицю
P = E − 2w~w~T .
Перевiримо її ортогональнiсть:
P 2 = (E − 2w~w~T )2 = E2 − 2 · E · 2w~w~T + 2w~w~T · 2w~w~T = = E2 − 4w~w~T + 4w~(w~T w~)w~T = E − 4w~w~T + 4w~w~T = P.
Отже P · P = E, або P = P −1. Далi розглянемо
P T = ET − (2w~w~T )T = E − 2w~w~T = E.
Отже P = P T , а разом з P = P −1 це означає, що матриця P ортогональна. З довiльного вектора ~u матрицю P утворюємо так:
P = E − |
u~T |
1 |
|u|2. |
|
|
, H = |
|
||
H |
2 |
Тепер вiзьмемо ~x - перший стовбчик матрицi A i побудуємо вектор:
~u = ~x |x| · ~e1,
де ~e1 - орт з одиницею в першому елементi i нулями у всiх iнших.
35
Запишемо чому рiвне H:
H = 12 (~x |x|~e1) (~x |x|~e1) = 12 |x|2 2|x|x1 + |x|2 = |x|2 |x|x1.
Знайдемо добуток:
P~x = (E − H )~x = E − H (~x |x|~e1)T |
~x = ~x − |
|
H ~xT ~x |x|x1 = |
|
||||||||||||||
|
|
|
|
u~T |
|
|
|
~u |
|
|
|
~u |
|
|
|
|
||
= ~x |
− |
~u |
( x 2 |
x x |
) = ~x |
− |
~u(|x|2 |x|x1) |
= ~x |
− |
~u = ~x |
− |
(~x |
x ~e |
) = x ~e |
. |
|||
|
|
|||||||||||||||||
|
H |
| | | | 1 |
|
|x|2 |x|x1 |
|
|
|
| | 1 |
±| | 1 |
|
Тобто, множення на матрицю P прибирає у векторi ~x всi елементи, окрiм першого. Максимiзацiя модуля вектора H покращує точнiсть результату (H в знаменнику), тому при побудовi вектора ~u знак перед |x| слiд вибирати так, щоб вiн спiвпадав зi знаком x1.
Приклад. Знайти QR-розбиття для матрицi
|
|
|
|
A = |
1 |
1 |
2 |
2 |
. |
|
|
|
|
|
|
|
|
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
1 |
2 |
1 |
1 |
|
|
|
||
|
|
|
|
|
1 |
2 |
1 |
2 |
|
|
|
|
Перший крок. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 , |
|
||||
~x = 1 , |
x = 2, ~u = ~x + x ~e1 |
= |
H = u 2/2 = 6. |
|||||||||
|
1 |
|
|
|
|
|
|
|
|
3 |
|
|
1 |
| | |
|
|
| | |
|
|
1 |
| | |
||||
|
1 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вибираємо додатнiй знак, бо x1 = 1 > 0. |
= −1/2 5/6 |
−1/6 |
−1/6 . |
||||||||||||||
u~T = 3 |
1 |
1 |
1 , P1 = E |
u~T |
|||||||||||||
|
9 |
3 |
3 |
3 |
|
|
|
|
|
−1/2 |
−1/2 |
−1/2 |
−1/2 |
|
|||
3 |
1 |
1 |
1 |
− |
|
|
−1/2 |
−1/6 5/6 |
−1/6 |
||||||||
H |
|||||||||||||||||
|
3 |
1 |
1 |
1 |
|
|
|
|
|
− |
1/2 |
− |
1/6 |
− |
1/6 5/6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P1 A = |
0 |
−1/3 5/6 2/3 |
= A0. |
||||
|
|
−2 |
−3 |
−5/2 |
−3 |
|
|
· |
0 |
2/3 |
−1/6 |
−1/3 |
|||
|
|
0 |
2/3 |
− |
1/6 |
2/3 |
|
|
|
|
|
|
|
|
36
Другий крок. Працюємо з субматрицею 3 ×3, що утвориться, якщо з резуль-
туючого добутку видалити перший рядок та перший стовпчик. |
|
||||||||
~x = 2/3 |
, x = 1, ~u = ~x x ~e1 = |
2/3 |
|
, H = u 2/2 = 4/3. |
|||||
−1/3 |
| | |
|
|
|
−4/3 |
|
|
|
|
2/3 |
|
− | | |
2/3 |
|
| | |
||||
Вибираємо вiд’ємний знак, бо x1 = −1/3 < 0. |
. |
|
|
||||||
|
|
u~T = |
−8/9 |
4/9 |
4/9 |
|
|
||
|
|
|
16/9 |
−8/9 |
−8/9 |
|
|
|
|
|
|
|
−8/9 |
4/9 |
4/9 |
|
|
Допишемо до отриманої матрицi зверху та злiва по додатковому стовбчику:
Z(u~T ) = 0 16/9 −8/9 −8/9 . |
|||||
|
1 |
0 |
0 |
0 |
|
0 |
−8/9 |
4/9 |
4/9 |
||
|
0 |
8/9 |
4/9 |
4/9 |
|
|
|
− |
|
|
|
Тепер |
|
Z(u~T ) = |
0 −1/3 2/3 2/3 |
. |
|||||||
P2 = E |
|
||||||||||
|
|
|
|
|
|
1 |
0 |
|
0 |
0 |
|
|
− |
|
|
|
|
0 2/3 |
2/3 −1/3 |
|
|||
|
H |
|
|
||||||||
|
|
|
|
|
|
0 2/3 |
− |
1/3 2/3 |
|
||
I тому: |
|
|
|
|
|
|
|
|
|
|
|
P2 A0 = 0 1 |
|
−1/2 0 |
= A00. |
|
|||||||
|
|
|
−2 |
−3 |
−5/2 |
−3 |
|
|
|||
|
· |
0 |
0 |
|
1/2 |
0 |
|
|
|
||
|
|
|
0 |
0 |
|
1/2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Третiй крок. Працюємо з субматрицею 2 × 2, вiдкинувши два першi рядочки
та два першi стовбчики матрицi A00. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
~x = 1/2 |
, |x| = √2/2, ~u = ~x−|x|~e1 = |
|
|
|
, H = |
|
|
|
|
|
|
|
|
||||||||||||||||||
(1 +1/22)/2 |
4 . |
||||||||||||||||||||||||||||||
1/2 |
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
2 + |
√2 |
||||||||||||
Вибираємо додатнiй знак. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
√ |
|
4 |
√ |
|
|
, P3 = E u~T |
= |
1 0 |
|
0 |
|
0 |
|
|
. |
||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||||||||
u~T = 3 +4 |
|
|
0 1 |
|
√0 |
√0 |
|
||||||||||||||||||||||||
|
|
2 2 |
1 + 2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
1 + 2√ |
|
|
|
|
|
|
|
|
− |
|
|
|
|
|
|
|
|
|
||||||||||||
2 |
1 |
|
|
|
H |
0 0 |
−√2/2 −√ 2/2 |
||||||||||||||||||||||||
|
4 |
|
4 |
|
|
|
|
|
|
0 0 |
|
2/2 |
2/2 |
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
− |
|
|
|
|
|
|
|
|
|
|
|
37
Щоб обчислити P3 до знайденої субматрицi 2 × 2 дописано два рядки зверху та два стовбчики злiва, як i в попередньому кроцi:
|
|
A00 |
= |
−2 |
−3 |
−5/2 |
−3 |
= A000 = R. |
|
||||||
|
P3 |
0 |
1 |
−1/2 |
|
0 |
|
|
|||||||
|
· |
|
|
|
|
√ |
|
|
√ |
|
|
|
|
|
|
|
|
0 |
0 |
− 2/2 −√ 2/2 |
|
|
|||||||||
|
|
|
|
0 |
0 |
0 |
|
|
2/2 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Матрицю R знайдено. Матрицю QT знайдемо як добуток QT = P3 · P2 · P1: |
|||||||||||||||
QT = |
0 |
1 |
√0 |
|
√0 |
0 |
|
−1/3 2/3 2/3 |
|
||||||
|
1 |
0 |
0 |
|
0 |
|
|
|
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
× |
|
|
0 2/3 2/3 −1/3 |
× |
|
|||||||||||||||||
|
|
0 0 −√2/2 −√ 2/2 |
|
|
|||||||||||||||||||||||||||||
|
|
|
0 0 |
− |
|
|
|
|
|
|
|
0 2/3 |
|
|
− |
1/3 2/3 |
|
|
|
||||||||||||||
|
|
2/2 |
2/2 |
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
||||||
|
−1/2 |
|
5/6 |
−1/6 −1/6 |
= |
−1/2 |
−1/2 |
|
1/2 |
|
1/2 |
||||||||||||||||||||||
|
|
−1/2 |
−1/2 |
−1/2 |
−1/2 |
|
|
−1/2 |
−1/2 |
−1/2 |
−1/2 |
|
|||||||||||||||||||||
× |
−1/2 |
−1/6 5/6 −1/6 |
|
√ |
|
/2 |
−√ |
|
/2 |
|
√0 |
√0 |
|||||||||||||||||||||
|
2 |
2 |
|
||||||||||||||||||||||||||||||
|
|
1/2 |
|
|
1/6 |
|
1/6 5/6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
0 |
0 |
|
|
|
2/2 |
|
2/2 |
||||||||||||||||||||
|
|
− |
− |
|
− |
|
|
|
|
~ |
|
|
|
|
|
|
|
|
|
|
|
|
− |
|
|
|
|
|
|
|
|
||
Система рiвнянь A · ~x = b тепер розв’язується так: |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
~ |
R · |
|
|
T~ |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
QR · ~x = b |
~x = Q b, |
|
|
|
|
|
|
|
|
|
|
матриця R - трикутна. Визначник знаходиться аналогiчно:
n
Y det A = det Q · det R = (−1)n−1 rii.
i=1
Тут використано той факт, що i det Pi = −1.
Уточнення розв’язку. Розв’язок системи лiнiйних рiвнянь можна уточнити. Позначимо через ~x(0) отриманий розв’язок. Пiдставимо його в систему, маємо:
|
A~x |
(0) |
|
~(1) |
. |
|||
|
|
|
= b |
|
||||
~(1) |
, через похибки рiзного роду, не обов’язково буде спiвпадати |
|||||||
Це значення b |
||||||||
|
|
|
|
|
|
|
|
~ |
з правими частинами оригiнальної системи b. Розглянемо тепер систему |
||||||||
|
A ~x |
(0) |
|
|
~(1) |
|
~ |
|
|
|
|
= b |
− b, |
||||
з якої отримаємо ~x(0) i знайдемо ~x(1) |
= ~x(0) + ~x(0), що буде бiльш точним |
розв’язком. Процес можна продовжити до збiжностi, доки | ~x(i)| не зменшиться до бажаної точностi.
38
Оцiнка якостi розв’язку. Розглянемо двi системи рiвнянь |
|
~ |
~ ~ |
A~x = b, |
A(~x + δ~x) = b + δb. |
Дiючи згiдно з означенням норми, i вiднявши вiд другої системи першу,
|
|
|
|
kδ~xk = kA−1k · kδb~k, |
kAk · k~xk = k~bk. |
|
|
|||||||||||||||||||||
Тому: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
kδ~xk |
= |
kA−1kkδb~k |
|
= |
kA−1kkδb~k |
· |
|
k~bk |
|
= |
kA−1kk~bk |
|
|
kδb~k |
. |
||||||||||||
~x |
|
|
|
|
|
|
|
|
|
~ |
|
|
~ |
|||||||||||||||
|
|
|
|
~x |
|
|
|
|
~x |
|
|
|
|
|
|
~x |
· |
|
||||||||||
|
k k |
|
|
|
k k |
|
|
|
|
k k |
|
|
|
kbk |
|
|
|
k k |
kbk |
|||||||||
Але |
|
|
|
|
|
|
1 |
|
|
|
kAk |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
= |
|
, |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
~ |
|
|
|
|
|
|
|
|
|
||||||
тому |
|
|
|
|
|
|
|
|
k~xk |
kbk |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
kA−1kk~bk |
|
kδb~k |
|
|
|
|
|
|
|
|
|
|
kδb~k |
|
|
|
||||||||
|
|
|
kδ~xk |
= |
|
|
= |
k |
A−1 |
k · k |
A |
k · |
. |
|
|
|||||||||||||
|
|
|
~x |
|
~ |
|
|
|
||||||||||||||||||||
|
|
|
|
~x |
· |
|
|
|
|
|
~ |
|
|
|
|
|||||||||||||
|
|
|
k k |
|
k |
k |
kbk |
|
|
|
|
|
|
|
|
|
kbk |
|
|
Величина kA−1k·kAk називається числом зумовленостi, цей множник показує як вiдносна похибка правих частин переходить у вiдносну похибку результату. Теоретичний мiнiмум для нього - одиниця. Чим ближче значення числа зумовленостi до одиницi, тим ”кращий“ розв’язок.
Зазвичай використовують такi норми: |
|
|
|
|
||||||||
векторнi |
x| |
|
i| |
|
матричнi |
Pj |
|aij| . |
|||||
k~xk1 |
= |
i |
x |
|
kAk1 |
|
maxi |
|||||
~x |
|
max |
|
|
A |
= max |
|
a |
||||
k k2 = Pi |
|
| i| |
|
|
k k2 = |
j |
Pi |
| ij| |
||||
|
|
|xi| |
2 |
kAk3 = r |
|
|||||||
k~xk3 |
= r i |
|
|
|
||||||||
|
|
|
P |
|
|
|
|
|
|
|
|
Тридiагональнi матрицi. Загальний вигляд системи з такою матрицею:
a2 |
b2 |
c2 |
0 |
. . . |
0 |
0 |
0 |
|
|
|
|
|
b1 |
c1 |
0 0 |
. . . |
0 |
0 |
0 |
|
|
|
|
0 |
a3 b3 |
c3 |
.. .. .. |
0 |
0 |
0 |
· |
~x = ~y. |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. . . an−1 |
bn−1 |
cn−1 |
|
|
|
|
|
0 |
0 |
0 |
0 |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
. . . |
0 |
an |
bn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39
Для розв’язання такої системи, комбiнуючи рядочки, прибираємо елементи ai, при цьому будуть змiнюватися також елементи bi та елементи вектора yi:
binew = bi − ci−1 |
ai |
|
yinew = yi − yi−1 |
ai |
|
|
, |
|
. |
||
bi−1 |
bi−1 |
Новi значення записано злiва вiд знака рiвностi, попереднi - справа. Якщо зупинитися за два рядочки до кiнця, то залишкову систему, яка матиме вигляд
b0 c0 x y0
n−1 n−1 · n−1 = n−1 ,
можна розв’язати навiть методом Крамера. Маючи два значення xi−1 та xi можна знайти xi−2:
xi−2 = (yi0−1 − b0i−1xi−1 − c0i−1xi) .
Скориставшись цим рiвнянням для i −2, i −3, . . . , 1 знайдемо усi невiдомi xi. Цей спосiб називається методом прогонки.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
~ |
|
|
|
Блочнi матрицi. Деколи систему рiвнянь A~x = b можна розбити на блоки, |
||||||||||||||||||
чи клiтинки: |
|
A21 |
A22 |
· X2 |
= B2 |
. |
|
|||||||||||
|
|
|
||||||||||||||||
|
|
A11 |
A12 |
|
|
|
|
X1 |
|
|
|
B1 |
|
|
||||
У виглядi системи матричних рiвнянь: |
|
= B2 . |
|
|
||||||||||||||
|
|
A21X1 |
+ A22X2 |
|
|
|||||||||||||
|
|
|
|
A11X1 |
+ A12X2 |
= B1 |
|
|
|
|||||||||
Домножимо друге рiвняння на A12A22−1: |
|
|
|
|
|
|
|
|
||||||||||
|
A12A22−1A21X1 + A12X2 = A12A22−1B2, |
|
||||||||||||||||
i вiднiмемо його вiд першого: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
( |
A |
11 − |
A |
12 |
A−1A |
21) |
X |
1 = |
|
B |
1 − |
A |
12 |
A−1B |
. |
|||
|
|
22 |
|
|
|
|
|
|
|
22 2 |
|
Звiдси формула для знаходження X1:
X1 = (B1 − A12A−221B2) · (A11 − A12A−221A21)−1.
Аналогiчно поступивши з першим рiвнянням: (використавши A−111 та A21)
отримаємо:
X2 = (B2 − A21A−111B1) · (A22 − A21A−111A12)−1.
Єдиною складною задачею є знаходження A12A−221, але, оскiльки розмiр цiєї матрицi менший, нiж матрицi A, це може зменшити загальну кiлькiсть обчислювальної роботи.
40