4.2 Обчислення визначників матриць
Метод Гауса рішення лінійних алгебраїчних рівнянь можна застосувати для знаходження визначників квадратних матриць розміром .
У методі Гауса матриця перетворюється у верхню трикутну матрицю. Ці перетворення такі, що вони не змінюють абсолютне значення визначника матриці .
У подальшому при розробці алгоритму ми будемо спиратись на такі властивості визначників:
величина визначника не зміниться якщо до елементів одного рядка (або стовпця) додати елементи іншого рядка (стовпця), помножені на одне і й теж число;
якщо у визначнику поміняти місцями два рядки (стовпці), то знак визначника зміниться на протилежний.
При перетворенні матриці до верхньої трикутної ми користувались першою і другою властивостями визначників. У результаті отримали
.
Оскільки матриця
трансформувалась у матрицю
,
то у відповідності з наведеними
властивостями
.
Враховуючи те, що матриця - верхня трикутна, будемо мати
.
(4.9)
В останній формулі врахована
та обставина, що при перестановці двох
рядків визначник матриці змінює знак
на протилежний, тобто у алгоритмі
SystemEqualizationAgebra,
додатково необхідно
врахувати число перестановок
рядків матриці. Крім того у формулі
(4.9) за визначенням
.
Нижче наведена процедура DeterminantMatrix, яка обчислює визначник квадратної матриці розміром
DeterminantMatrix
А- матриця коефіцієнтів системи розміром nxn
1 Визначити розмір квадратної матриці А
2 Ab=A
Вибір головного елементу для стовпця k
3 r=0 Лічильник перестановок рядків матриці А
4 for k=1 to n-1
5 for r=k to n
6 ab(r)=Ab(r,k)
7 end for
8 [Y,j]=Max(abs(ab))
Міняємо місцями лінійки k та j
9
10
11
12 if AB(k,k)=0
13 then error (‘Матриця А особлива. Cистема немає розв’язку’)
14 end
15
if
k
j+k-1
16 then r=r+1
17 end if
Процес виключення для стовпця k
18 for p=k to n+1
19 M=Ab(p,k)/Ab(k,k)
20 for r=k to n+1
21 Ab(p,r)=Ab(p,r)-M*Ab(k,r)
22 end for
23 end for
24 end for
25 p=1
26 for i=1 to n
27 p=p*Ab(I,i)
28 end
29 d=(-1)^r*p
30 return d
Неважко переконатись, що процедура DeterminantMatrix є частиною процедури SystemEqualizationAgebra у тій частині, де матриця трансформується у діагональну, різниця лише у тому, що у рядках 15 – 17 процедури DeterminantMatrix Уведений лічильник числа перестановок рядків, які здійснюються у процесі трансформації матриці до верхньої трикутної.
У рядках 25 -29 процедури здійснюється обчислення визначника матриці за формулою (4.9).
4.3 Обчислення обернених матриць
Матрицю
обернену до матриці
можна знайти як розв’язок матричного
рівняння
,
(4.10)
де
одинична матриця.
Із останнього рівняння
знаходимо
.
Оскільки
,
то
.
Отже, розв’язавши рівняння (4.10) відносно
,
визначимо матрицю
.
Подамо шукану матрицю як набір стовпчикових матриць
,
а одиничну матрицю як набір векторів
,
де
,
,
…,
;
,
,
…,
.
Матричне рівняння (4.10) у відповідності з правилами множення матриць запишемо у такому вигляді
.
Із останнього співвідношення отримуємо систему матрично-векторних не зв’язаних між собою рівнянь
,
,
…,
.
(4.11)
Кожне із рівнянь (4.11) можна
розв’язати за допомогою методу Гауса,
послідовно замінивши у (4.2) вектор
коефіцієнтів
на
,
.
Для цього можна використати процедуру
SystemEqualizationAgebra,
передбачивши у ній формування векторів
і організацію додаткового циклу, який
дає змогу послідовно обчислювати
компоненти вектора
,
,
із яких стовпець за стовпцем синтезується
матриця
.
