НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Визначення характеристик об'єкту шляхом
розв'язування системи лінійних рівнянь
Інструкція
до лабораторної роботи №16 з курсу
"Алгоритмізація і програмування задач автоматизації"
для студентів базового напряму 6.0925
"Автоматизація і комп'ютерно-інтегровані технології"
Львів Львівська політехніка 2000
Укладачі: З.Теплюх, І.Ділай - кандидати техн.наук.
Відповідальний за випуск: Є.Пістун, д.т.н., професор.
Рецензенти: Г.Крих, І.Стасюк - кандидати техн.наук.
Мета роботи: ознайомлення з методами опису рівноважних станів технічних об'єктів та засвоєння алгоритмів розв'язування систем лінійних алгебраїчних рівнянь (СЛАР) методом Гауса і їх програмна реалізація в середовищах Turbo C++ і MATLAB.
Основні відомості про розв'язування СЛАР методом Гауса
До розв'язування СЛАР зводиться багато практичних задач науки і техніки. Зокрема для визначення значення параметрів технологічних об'єктів в стані рівноваги (наприклад, систем гідравлічних систем) використовують перехід від систем нелінійних алгебраїчних рівнянь (СНАР), що описують поведінку об'єкту до СЛАР. Це зумовлено складністю знаходження розв'язку СНАР багатьох змінних (стан об'єкту характеризується багатьма технологічними параметрами), а також певними труднощами у заданні її початкового (нульового наближення) розв'язку. Заміна СНАР, що описує технологічний об'єкт, на СЛАР значно спрощує знаходження розв'язку, т.т. значень параметрів технологічного об'єкту. Слід зауважити, що заміна СНАР СЛАР є певним спрощенням, що приводить до отримання неточного (наближеного) розв'язку значень параметрів технологічного об'єкту, але для наближеної оцінки цього в багатьох випадках буває достатньо, при чому розв'язок СЛАР знайти значно легше, оскільки теорія розв'язування систем СЛАР на сьогодні розроблена значно краще, ніж СНАР.
Методи розв'язування СЛАР можна розділити на дві групи - прямі та ітераційні.
Прямі методи використовують кінцеві співвідношення (формули) для обчислення невідомих СЛАР. З їх допомогою розв'язок отримують після виконання наперед відомого числа операцій. Ці методи відносно прості і найбільш універсальні, т.т. придатні для розв'язування широкого класу лінійних систем. Але ці методи мають також свої недоліки та обмеження, а саме: як правило, вимагають зберігання в оперативній пам'яті ЕОМ всієї матриці коефіцієнтів; нагромадження похибок в процесі розв'язання, оскільки обчислення на кожному етапі використовують результати попередніх операцій. Прямі методи в зв'язку з цим використовують для відносно невеликих (n<200) СЛАР з щільно заповненою матрицею і не близьким до нуля значенням визначника, складеного з коефіцієнтів при невідомих. До прямих методів розв'язування СЛАР відносять: правило Крамера, метод Гауса, метод прогонки та інші.
Ітераційні методи - це методи послідовних наближень. В них необхідно задати деякий наближений розв'язок - початкове наближення. Після цього за допомогою деякого алгоритму проводиться один цикл обчислень, що називається ітерацією. В результаті ітерації знаходять нове наближення (розв'язок). Ітерації проводять до отримання розв'язку СЛАР з заданою точністю. Алгоритми знаходження розв'язку СЛАР звичайно є більш складними в порівнянні з прямими методами. Але також мають і свої переваги. До ітераційних методів розв'язування СЛАР відносять, наприклад, метод Гауса-Зейделя та інші.
Метод Гауса розв'язування СЛАР
Найбільш поширеними серед прямих методів є метод Гауса та його модифікації.
Метод Гауса базується на зведенні матриці коефіцієнтів при шуканих невідомих до трикутного виду. Це досягається послідовним виключенням невідомих із рівнянь системи.
Спочатку з допомогою першого рівняння виключають шукану змінну із решти рівнянь (). Далі з допомогою другого рівняння виключають змінну з решти рівнянь (). Цей процес називається прямим ходом методу Гауса і продовжується доти, поки в лівій частині останнього рівняння не залишиться лише один член з невідомою змінною . (До такого вигляду приводиться лише невироджена матриця, визначник якої , інакше метод Гауса застосувати не вдається).
Розглянемо розв'язування СЛАР з чотирма невідомими
. (1)
Прямий хід
1 крок. Виключаємо із 2...4 рівнянь системи (1) шукану змінну . Для цього домножуємо друге рівняння системи (1) на , третє - на , четверте - на , а після цього віднімаємо від кожного коефіцієнта при невідомих цих рівнянь відповідні коефіцієнти 1-го рядка системи (1). В результаті множення 2...4 рівнянь на коефіцієнти (), отримаємо наступну еквівалентну систему рівнянь
. (3)
Віднімемо із кожного з цих рівнянь (2...4) відповідні елементи першого рівняння, тоді отримуємо: , (4)
де , , . Аналогічно виключаємо із 3 і 4 рівнянь (перше і друге залишаємо без змін). Кожне із 3-го і 4-го рівнянь домножимо відповідно на , де , т.т. третє - на , четверте - на і віднімемо від коефіцієнтів цих рядків відповідні коефіцієнти другого рядка, тоді отримаємо
, (5)
де , , .
Виключимо тепер невідому . Домножимо останнє (4-те) рівняння на і віднімемо від нього відповідні елементи третього рівняння, в результаті отримаємо наступну еквівалентну систему рівнянь
. (6)
Таким чином, в результаті здійснених перетворень отримана верхня трикутна матриця коефіцієнтів, причому при невідомих змінних на головній діагоналі коефіцієнти .
Отже, аналізуючи системи (2-6) першого кроку, можемо записати формулу, згідно якої можна здійснювати перетворення в прямому ході методу Гауса, а саме:
, де , , а - керуюча змінна зовнішнього циклу, кількість повторень якої рівне 3 () для виключення шуканих змінних (, , ), т.т. .
Зворотній хід
2 крок. Визначимо із кожного рівняння, починаючи з останнього, шукані змінні.
Із четвертого рівняння () знайдемо : . (7)
Із третього рівняння () знайдемо : . (8)
Із другого рівняння () знайдемо : . (9)
Із першого рівняння () знайдемо : . (10)
"Згорнемо" ці вирази в одну формулу (залежність), згідно якої обчислюватимемо значення невідомих ... ().
(11)
Формула (11) - залежність згідно якої реалізується зворотній хід методу Гауса.
Таким чином, система рівнянь є розв'язана. Для перевірки правильності отриманого розв'язку його необхідно підставити у кожне вихідне рівняння заданої системи, або іншими словами, вихідну матрицю коефіцієнтів помножити на вектор-стовпчик отриманого розв'язку, в результаті чого отримаємо вектор-стовпчик коефіцієнтів правої частини системи, а саме
Порядок виконання роботи
1. Перевірити чи задана СЛАР має єдиний розв'язок, т.т. знайти визначник системи, складений із коефіцієнтів при невідомих заданої СЛАР.
2. Знайти розв'язок СЛАР шляхом зведення її (при прямому ході) до верхньої трикутної матриці (див. завдання на самостійну роботу).
Скласти блок-схему алгоритму видозміненого методу Гауса згідно завдання.
Після перевірки блок-схеми викладачем розробити програму мовою С/C++. В програмі передбачити перевірку правильності знайденого розв'язку.
4. Розв'язати СЛАР та перевірити правильність знайденого розв'язку, використовуючи інструментальні засоби пакету MATLAB.
5. Оформити звіт з лабораторної роботи (див. Додаток).
Література
Заварыкин В.М. и др. Численные методы. - М.: Просвещение, 1990.
Брановицкая С.В. Вычислительная математика в химии и химической технологии. - К.: Высшая школа, 1986.
Гаврилюк М.А .и др. Прикладные программы и лабораторный практикум для персонального компьютера. - К.: УМК ВО, 1988.
Потемкин В.Г. Система MATLAB. Справочное пособие. М.: ДИАЛОГ-МИФИ, 1997.
Завдання на самостійну роботу
Розв'язати СЛАР:
Порядок виконання роботи
1. Перевірити чи задана СЛАР має єдиний розв'язок, т.т. знайти визначник системи, складений із коефіцієнтів при невідомих заданої СЛАР.
2. Знайти розв'язок СЛАР шляхом зведення її (при прямому ході) до верхньої трикутної матриці (див. завдання на самостійну роботу).
Скласти блок-схему алгоритму видозміненого методу Гауса згідно завдання.
Після перевірки блок-схеми викладачем розробити програму мовою С/C++. В програмі передбачити перевірку правильності знайденого розв'язку.
4. Розв'язати СЛАР та перевірити правильність знайденого розв'язку, використовуючи інструментальні засоби пакету MATLAB.
5. Оформити звіт з лабораторної роботи (див. Додаток).
Схема оформлення звіту
1. Тема роботи.
2. Завдання до лабораторної роботи.
3. Знаходження визначника СЛАР, складеного із коефіцієнтів при невідомих заданої системи засобами MATLAB.
Реалізація методу Гауса шляхом зведення вихідної матриці коефіцієнтів при невідомих до верхньої трикутної матриці з коефіцієнтами на головній діагоналі рівними одиниці повинна містити:
блок-схему алгоритму;
програму мовою С/С++;
розв'язок системи;
перевірку правильності отриманого розв'язку СЛАР.
5. Реалізація методу Гауса шляхом зведення вихідної матриці коефіцієнтів при невідомих до трикутної матриці згідно завдання повинна містити:
блок-схему алгоритму;
програму мовою С/С++;
розв'язок системи;
перевірку правильності отриманого розв'язку СЛАР .
6. Розв'язок СЛАР засобами MATLAB, а також перевірку правильності отриманого розв'язку.
7. Таблиця отриманих результатів розв'язку СЛАР вищенаведеними способами.
Додаток
Приклад оформлення звіту
Лабораторна робота №16
Визначення характеристик об'єкту шляхом розв'язування системи лінійних рівнянь
Завдання: розв'язати СЛАР методом Гауса шляхом зведення вихідної матриці коефіцієнтів:
до верхньої трикутної матриці, причому коефіцієнти на головній діагоналі не рівні одиниці;
б) до верхньої трикутної матриці, причому коефіцієнти на допоміжній діагоналі рівні одиниці;
Розв'язання
Знайдемо визначник заданої СЛАР засобами MATLAB. Для цього створимо файл даних div_data.m. Створимо файл div_det.m для знаходження визначника заданої системи. Результатом виконання файлу div_det.m є значення визначника даної матриці, що рівне -9049,8. Отже система має єдиний розв'язок.
2) Нарисуємо блок схему алгоритму знаходження розв'язку СЛАР методом Гауса шляхом зведення вихідної матриці коефіцієнтів при невідомих до верхньої трикутної матриці з коефіцієнтами на головній діагоналі не рівними одиниці.
3) Аналогічно складаємо блок-схему і програму завдання на самостійну роботу.
4). Розв'яжемо задану СЛАР, використовуючи засоби MATLAB. Програму для знаходження розв'язку системи запишемо у файлі div_Gaus.m
Корені лінійної алгебраїчної системи рівнянь
x0
x1
x2
x3
0.0842
2.7229
6.4716
-1.0135
Перевірка
a0(N
a1(N
a1(N
a1(N
3.50
15.00
4.60
-1.20