Таблиця 2 - Прапорці, які визначають властивості матриці СЛАР
Прапорець |
Властивість матриці |
LT |
Нижня трикутна |
UT |
Верхня трикутна |
UHESS |
Верхня майже трикутна |
SYM |
Симетрична |
POSDEF |
Позитивно визначена |
RECT |
Прямокутна |
Для того щоб розв’язати систему лінійних рівнянь методом оберненої матриці, необхідно виконати наступні дії:
1.Сформувати матрицю коефіцієнтів і вектор вільних членів заданої системи;
2.Розв’язати систему, задавши вектор невідомих як добуток матриці, оберненої до матриці системи, і вектора вільних членів.
Для обернення матриці призначена функція inv.
Приклад 10
Розглянемо ту саму СЛАР. Її розв’язок знаходимо множенням оберненої матриці на вектор вільних членів:
>> х=inv(A)*b
Відповідь:
х=
0.8246
0.2619
0.0728
0.9638
0.5653
Перевірка розв’язку. Підставимо знайдені корені в рівняння системи(це рівнозначно множенню матриці А на вектор. Введемох вектор С– результат підстановки.
>> C=A*х
Відповідь
С = 6.54 3.21 3.93 6.25 5.30
Можемо переконатися, що значення вектора С = b початкової СЛАР: b = [6.54; 3.21;3.93;6.25;5.3]
Якщо матриця близька до виродженої, то видається відповідне діагностичне повідомлення.
6
Розв’язування СЛАР за допомогоюметоду Гауса ґрунтується на тому, що від заданої системи, переходять до еквівалентної системи, яка розв'язується простіше, ніж початкова.
Метод Гауса складається з двох етапів:
Перший етап - це прямий хід, в результаті якого розширена матриця системи шляхом елементарних перетворень(перестановка рівнянь системи, множення рівнянь на число, відмінне від нуля, і складання рівнянь) приводиться до трикутного вигляду.
На другому етапі(зворотний хід) трикутну матрицю перетворюють таким чином, щоб в першихn стовпцях вийшла одинична матриця. Останній, n +1 стовпець цієї матриці містить розв’язок системи лінійних рівнянь.
Розглянемо як розв’язати цю задачу в MATLAB:
1.Сформувати матрицю коефіцієнтів А і вектор вільних членів b заданої системи;
2.Сформувати розширену матрицю системи, об'єднавши А і b;
3.Привести розширену матрицю до трикутного вигляду, використовуючи функцію rref;
4.Знайти розв’язок системи, виділивши останній стовпець матриці, отриманої в попередньому пункті;
5.Виконати обчислення; якщо в результаті вийшов нульовий вектор, задача вирішена вірно.
Приклад 11
Скористаємося тим самим прикладом системи, що і раніше. Матриця А і вектор b в нас вже сформовані і мають вигляд:
A= [5.38 1.12 0.95 1.32 0.83 1.12 4.08 2.12 0.57 0.91 0.95 2.12 6.33 1.29 1.57 1.32 0.57 1.29 4.37 1.25 0.83 0.91 1.57 1.25 5.41];
b = [6.54; 3.21;3.93;6.25;5.3];
Сформуємо розширену матрицю С і приведемо її до трикутного вигляду. Для приведення матриці до трикутного вигляду призначена функціяrref, а позначення [A,b] означає побудову розширеної матриці:
C=rref([A,b]);
Виділимо останній стовпець з матриці. Оскільки розширена матриця має розмір 6х5, то останній стовпець – це вектор 1:5, 6:6
>> х=C(1:5,6:6)
х=
0.82456140350877
0.26186291739895
0.07277628032345
0.96380090497738
0.56530612244898
7
Зручно записати виконані дії у файл-програму і викликати з Вікна команд за іменем файла.
Як видно з попереднього прикладу, розв’язування СЛАР спрощується, якщо привести матрицю А до трикутного вигляду. Тепер введемо поняття «розкладання» матриці на добуток нижньої трикутної матриці і верхньої трикутної матриці.
Визначимо нижню трикутну матрицюL з одиничною головною діагоналлю таким чином, щоб вище діагоналі були розташовані нульові елементи, а нижче діагоналі – ненульові елементи, значення яких отримані при приведенні матриці.
Визначимо верхню трикутну матрицюU на головній діагоналі якої розміщені ненульові і не одиничні елементи, а нижче діагоналі – нульові елементи.
Має місце наступне визначення:
Визначення 1:
Невироджену матрицю А можна розкласти на трикутні матриці, якщо її можна представити як добуток нижньої трикутної матриці і верхньої трикутної матриці.
Представлення матриці А у вигляді A=LU називається LU – розкладанням. Розв’язування початкової СЛАР, заданою матрицею коефіцієнтівА еквівалентно розв’язанню двох систем з трикутними матрицями:
L g = b
U x = g
|
Для |
|
розкладання |
матриці |
на |
трикутні |
і |
матрицю |
переста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 |
|
|
|
|
|
||
P = |
0 |
0 |
|
0 |
0 |
4.7589 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
8
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.Ввести значення елементів матриці і вектора в MATLAB.
2.Знайти визначник матриці. Якщо він = 0, то матриця вироджена.
3.Якщо визначник не рівний 0, розв’язати систему з використанням оператора / .
4.За зовнішнім виглядом матриці визначити її властивості(по таблиці 2). Якщо жодна з властивостей не виконується, розв’язати систему за допомогою функції linsolve з двома аргументами, інакше – третім аргументом вказати потрібну властивість за допомогою структури options.
5.Розв’язати систему методами зворотної матриці і Гауса.
6.Виконати LU-розкладання матриці і знайти розв’язок СЛАР цим методом.
7.Результати подати в звіті з точністю eps=0.0001.
9
№ |
|
|
A |
|
B |
№ |
|
|
A |
|
B |
1 |
3 |
12 |
-1 |
0 |
18 |
16 |
4 |
2 |
32 |
0 |
-19 |
|
-5 |
2 |
0 |
32 |
-15 |
|
2 30 |
0 |
-4 |
39 |
|
|
2 |
0 |
16 |
-3 |
0 |
|
36 0 |
4 |
-5 |
40 |
|
|
12 |
3 |
0 |
0 |
21 |
|
0 |
0 |
11 |
40 |
31 |
2 |
4 |
20 |
1 |
0 |
24 |
17 |
4 |
-5 |
40 |
0 |
19 |
|
16 |
2 |
0 |
-2 |
-13 |
|
10 -4 |
0 |
50 |
0 |
|
|
-4 |
0 |
4 |
32 |
0 |
|
32 0 |
4 |
-4 |
34 |
|
|
2 |
0 |
10 |
0 |
7 |
|
0 |
32 |
0 |
-9 |
-49 |
3 |
2 |
16 |
-3 |
0 |
9 |
18 |
9 |
40 |
2 |
0 |
81 |
|
-8 |
5 |
0 |
40 |
98 |
|
12 |
-4 |
0 |
96 |
119 |
|
25 |
0 |
-2 |
3 |
5 |
|
-4 |
0 |
64 |
8 |
-15 |
|
0 |
-3 |
20 |
0 |
-7 |
|
36 0 |
0 |
9 |
7 |
|
4 |
5 |
-2 |
32 |
0 |
27 |
19 |
7 |
-5 |
64 |
0 |
18 |
|
4 |
25 |
0 |
-3 |
34 |
|
9 |
50 |
0 |
-4 |
0 |
|
20 |
0 |
2 |
-7 |
-28 |
|
0 |
9 |
-7 |
80 |
128 |
|
0 |
0 |
-9 |
40 |
5 |
|
40 |
11 |
0 |
0 |
-19 |
5 |
-7 |
2 |
40 |
0 |
21 |
20 |
11 |
64 |
-2 |
0 |
-34 |
|
9 |
-5 |
0 |
50 |
-14 |
|
50 |
3 |
0 |
-12 |
0 |
|
25 |
0 |
4 |
-1 |
13 |
|
0 |
13 |
-9 |
100 |
131 |
|
0 |
32 |
0 |
9 |
21 |
|
17 |
0 |
80 |
0 |
85 |
6 |
8 |
40 |
-3 |
0 |
28 |
21 |
15 |
80 |
-4 |
0 |
93 |
|
-7 |
5 |
0 |
50 |
0 |
|
64 |
7 |
0 |
-5 |
131 |
|
8 |
0 |
64 |
-11 |
18 |
|
0 |
11 |
-8 |
128 |
-34 |
|
32 |
0 |
0 |
5 |
12 |
|
0 |
37 |
100 |
0 |
125 |
7 |
-9 |
4 |
64 |
0 |
24 |
22 |
17 |
100 |
-9 |
0 |
0 |
|
10 |
50 |
0 |
-4 |
-5 |
|
80 -7 |
0 |
-5 |
-79 |
|
|
0 |
-14 |
7 |
80 |
14 |
|
0 |
21 |
128 |
-4 |
139 |
|
40 |
9 |
0 |
0 |
29 |
|
0 |
0 |
19 |
256 |
-54 |
8 |
-8 |
64 |
5 |
0 |
37 |
23 |
4 |
-1 |
20 |
0 |
38 |
|
50 |
-13 |
0 |
2 |
38 |
|
18 |
3 |
0 |
-2 |
-14 |
|
0 |
17 |
-9 |
100 |
0 |
|
0 |
10 |
1 |
-1 |
15 |
|
-11 |
0 |
80 |
0 |
115 |
|
0 |
4 |
0 |
20 |
29 |
9 |
-13 |
80 |
2 |
0 |
64 |
24 |
3 |
20 |
-2 |
0 |
41 |
|
64 |
9 |
0 |
-5 |
29 |
|
5 |
-4 |
0 |
20 |
-19 |
|
0 |
12 |
-9 |
128 |
0 |
|
0 |
5 |
32 |
-3 |
34 |
|
0 |
27 |
100 |
0 |
231 |
|
12 |
0 |
0 |
3 |
29 |
10 |
-13 |
100 |
9 |
0 |
-128 |
25 |
4 |
25 |
-1 |
0 |
17 |
|
80 |
10 |
0 |
-5 |
34 |
|
6 |
5 |
0 |
40 |
0 |
|
0 |
-14 |
128 |
7 |
95 |
|
25 |
0 |
3 |
4 |
-34 |
|
0 |
0 |
31 |
256 |
-69 |
|
0 |
-5 |
30 |
0 |
9 |
11 |
1 |
-2 |
16 |
0 |
31 |
26 |
9 |
-2 |
36 |
0 |
19 |
|
10 |
-1 |
0 |
1 |
0 |
|
4 |
25 |
0 |
-3 |
-18 |
|
0 |
12 |
1 |
-1 |
-28 |
|
40 |
0 |
5 |
-4 |
44 |
|
0 |
2 |
0 |
16 |
29 |
|
0 |
0 |
11 |
40 |
21 |
12 |
2 |
20 |
-3 |
0 |
39 |
27 |
9 |
-2 |
40 |
0 |
78 |
|
4 |
-2 |
0 |
24 |
0 |
|
11 |
-3 |
0 |
50 |
-114 |
|
0 |
2 |
16 |
-1 |
-25 |
|
30 |
0 |
-4 |
5 |
-21 |
|
12 |
0 |
0 |
3 |
18 |
|
0 |
32 |
0 |
8 |
40 |
10