
- •Лабораторна робота №5
- •1 Робота з масивами
- •1.1 Способи представлення масивів в matlab
- •1.2 Звернення до елементів масиву в середовищі Matlab
- •1.4 Обернення невироджених матриць
- •1.5. Знаходження визначника матриці
- •2 Розв’язування систем лінійних алгебраїчних рівнянь (слар)
- •2.1 Розв’язування невеликих невироджених слар
- •2.2 Розв’язування слар за допомогою функції linsolve
- •2.3 Розв’язування слар методом оберненої матриці
- •2.4 Розв’язування слар методом Гауса
- •2.4 Схема lu – розкладання матриць
2.3 Розв’язування слар методом оберненої матриці
Для того щоб розв’язати систему лінійних рівнянь методом оберненої матриці, необхідно виконати наступні дії:
1. Сформувати матрицю коефіцієнтів і вектор вільних членів заданої системи;
2. Розв’язати систему, задавши вектор невідомих як добуток матриці, оберненої до матриці системи, і вектора вільних членів.
Для обернення матриці призначена функція inv.
Приклад 4
Розглянемо ту саму СЛАР. Її розв’язок знаходимо множенням оберненої матриці на вектор вільних членів:
>> х=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]
Якщо матриця близька до виродженої, то видається відповідне діагностичне повідомлення.
2.4 Розв’язування слар методом Гауса
Розв’язування СЛАР за допомогою методу Гауса ґрунтується на тому, що від заданої системи, переходять до еквівалентної системи, яка розв'язується простіше, ніж початкова.
Метод Гауса складається з двох етапів:
Перший етап - це прямий хід, в результаті якого розширена матриця системи шляхом елементарних перетворень (перестановка рівнянь системи, множення рівнянь на число, відмінне від нуля, і складання рівнянь) приводиться до трикутного вигляду.
На другому етапі (зворотний хід) трикутну матрицю перетворюють таким чином, щоб в перших n стовпцях вийшла одинична матриця. Останній, n +1 стовпець цієї матриці містить розв’язок системи лінійних рівнянь.
Розглянемо як розв’язати цю задачу в MATLAB:
-
Сформувати матрицю коефіцієнтів А і вектор вільних членів b заданої системи;
-
Сформувати розширену матрицю системи, об'єднавши А і b;
-
Привести розширену матрицю до трикутного вигляду, використовуючи функцію rref;
-
Знайти розв’язок системи, виділивши останній стовпець матриці, отриманої в попередньому пункті;
-
Виконати обчислення; якщо в результаті вийшов нульовий вектор, задача вирішена вірно.
Приклад 5
Скористаємося тим самим прикладом системи, що і раніше. Матриця А і вектор 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
Зручно записати виконані дії у файл-програму і викликати з Вікна команд за іменем файла.