Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Искуственный интелект / ШІ / files / Лабораторна робота 5.doc
Скачиваний:
51
Добавлен:
30.05.2020
Размер:
85.5 Кб
Скачать

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:

  1. Сформувати матрицю коефіцієнтів А і вектор вільних членів b заданої системи;

  2. Сформувати розширену матрицю системи, об'єднавши А і b;

  3. Привести розширену матрицю до трикутного вигляду, використовуючи функцію rref;

  4. Знайти розв’язок системи, виділивши останній стовпець матриці, отриманої в попередньому пункті;

  5. Виконати обчислення; якщо в результаті вийшов нульовий вектор, задача вирішена вірно.

Приклад 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

Зручно записати виконані дії у файл-програму і викликати з Вікна команд за іменем файла.