Материал: Лабораторна робота 5

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2.4 Схема lu – розкладання матриць

Як видно з попереднього прикладу, розв’язування СЛАР спрощується, якщо привести матрицю А до трикутного вигляду. Тепер введемо поняття «розкладання» матриці на добуток нижньої трикутної матриці і верхньої трикутної матриці.

Визначимо нижню трикутну матрицю 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.

Індивідуальні завдання.

      1. Гаврилов В.Г. Чисельні методи в інформатиці. Методичний посібник. К: МНТУ. -2004.