Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритми_МетодиОбчислень_Р4.doc
Скачиваний:
3
Добавлен:
19.11.2019
Размер:
745 Кб
Скачать
☆

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, передбачивши у ній формування векторів і організацію додаткового циклу, який дає змогу послідовно обчислювати компоненти вектора , , із яких стовпець за стовпцем синтезується матриця .