Як видно з попереднього прикладу, розв’язування СЛАР спрощується, якщо привести матрицю А до трикутного вигляду. Тепер введемо поняття «розкладання» матриці на добуток нижньої трикутної матриці і верхньої трикутної матриці.
Визначимо нижню трикутну матрицю L з одиничною головною діагоналлю таким чином, щоб вище діагоналі були розташовані нульові елементи, а нижче діагоналі – ненульові елементи, значення яких отримані при приведенні матриці.
Визначимо верхню трикутну матрицю U на головній діагоналі якої розміщені ненульові і не одиничні елементи, а нижче діагоналі – нульові елементи.
Має місце наступне визначення:
Визначення 1:
Невироджену матрицю А можна розкласти на трикутні матриці, якщо її можна представити як добуток нижньої трикутної матриці і верхньої трикутної матриці.
Представлення матриці А у вигляді A=LU називається LU – розкладанням. Розв’язування початкової СЛАР, заданою матрицею коефіцієнтів А еквівалентно розв’язанню двох систем з трикутними матрицями:
![]()
![]()
Для розкладання матриці на трикутні і матрицю перестановок P використовується функція Matlab [L,U,P] = lu(A)
Введемо в робочому вікні Matlab:
>>[L,U,P] = lu(A)
Отримаємо:
L =
1.0000 0 0 0 0
0.2082 1.0000 0 0 0
0.1766 0.4997 1.0000 0 0
0.2454 0.0767 0.1748 1.0000 0
0.1543 0.1916 0.2028 0.2084 1.0000
U =
5.3800 1.1200 0.9500 1.3200 0.8300
0 3.8468 1.9222 0.2952 0.7372
0 0 5.2017 0.9094 1.0551
0 0 0 3.8645 0.8053
0 0 0 0 4.7589
P =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
>> g=L\b
g =
6.5400
1.8485
1.8515
4.1798
2.6902
>> х=U\g
х =
0.8246
0.2619
0.0728
0.9638
0.5653
Перевіримо знайдений розв’язок підстановкою х в СЛАР.
ans =
6.5400
3.2100
3.9300
6.2500
5.3000
Всі розглянуті методи розв’язування СЛАР в MATLAB відносяться до прямих методів і призначені для вирішення добре визначених СЛАР. В інших випадках слід застосовувати ітераційні методи.
Завдання і порядок виконання самостійної роботи
1. Для конкретного варіанту завдання вибрати систему лінійних рівнянь і побудувати матрицю її коефіцієнтів (А) і вектор вільних членів (B).
2. Ввести значення елементів матриці і вектора в MATLAB.
3. Знайти визначник матриці. Якщо він = 0, то матриця вироджена.
4. Якщо визначник не рівний 0, розв’язати систему з використанням оператора / .
5. За зовнішнім виглядом матриці визначити її властивості (по таблиці 3.2). Якщо жодна з властивостей не виконується, розв’язати систему за допомогою функції linsolve з двома аргументами, інакше – третім аргументом вказати потрібну властивість за допомогою структури options.
6. Розв’язати систему методами зворотної матриці і Гауса.
7. Виконати LU-розкладання матриці і знайти розв’язок СЛАР цим методом.
Результати подати в звіті з точністю eps=0.0001.
Індивідуальні завдання.
Гаврилов В.Г. Чисельні методи в інформатиці. Методичний посібник. К: МНТУ. -2004.