Міністерство освіти та науки України
Національний університет "Львівська політехніка"
Ідентифікація компонентів газових сумішей шляхом
розв’язування системи лінійних рівнянь
методичні вказівки для самостійної підготовки та
інструкція до лабораторної роботи
з дисципліни "Алгоритмізація і програмування"
для студентів базового напряму
6.050202 – "Автоматизація та комп’ютерно-інтегровані технології"
Затверджено
на засіданні кафедри
автоматизації теплових
i хімічних процесів
Протокол № 12 від 20.06.2008 р.
Львів – 2008
Ідентифікація компонентів газових сумішей шляхом розв’язування системи лінійних рівнянь. Методичні вказівки для самостійної підготовки та інструкція до лабораторної роботи з дисципліни "Алгоритмізація і програмування" для студентів базового напряму 6.050202 – "Автоматизація та комп’ютерно-інтегровані технології". / Укл. З.М. Теплюх, І.В. Ділай, Р.М. Федоришин, Львів: Видавництво Національного університету "Львівська політехніка", 2008. - 15 с.
Укладачі: Теплюх З.М., д-р.техн.наук, доц.
Ділай І.В., канд.техн.наук, доц.
Федоришин Р.М., канд.техн.наук, асист.
Відповідальний за випуск Пiстун Є.П., д-р.техн.наук, проф.
Рецензенти: Юсик Я.П., канд.техн.наук, доц.
Фединець В.О., канд.техн.наук, доц.
Мета роботи: набуття навиків застосування методів числового розв’язування систем лінійних рівнянь для алгоритмізації та програмування задач ідентифікації компонентів газових сумішей за їх теплофізичними параметрами.
Основні теоретичні відомості
Метод Гауса розв’язування СЛАР
Метод Гауса (метод послідовного виключення невідомих) – один з найбільш відомих і широко застосовуваних методів розв’язку систем лінійних рівнянь.
Розглянемо його на прикладі системи з трьох рівнянь з трьома невідомими.
(1)
Нехай а00≠0 (провідний елемент). Якщо а00=0, то рівняння в (1) можна переставити так, щоби в першому рівнянні коефіцієнт при х0 відрізнявся від 0.
Виключимо х0 із системи (1). Введемо множник m1=a10/a00. Домножимо перше рівняння системи на m1 і віднімемо його від другого рівняння (1)
(a10 - m1·a00)·х0+(a11 - m1·a01)·х1+(a12 - m1·a02)·х3=b1 - m1·b0 . (2)
Враховуючи, що a10 - m1·a00=0 і ввівши такі позначення =a11- m1·a01; = a12 - m1·a02; = b1 - m1·b0 запишемо (2) у вигляді
·х1+·х3= . (2.1)
Від третього рівняння віднімаємо перше, домножене на m2=a20/a00
(a20 - m2·a00)·х0+(a21 - m2·a01)·х1+(a22 - m2·a02)·х3=b2 - m2·b0 , (3)
або з врахуванням того, що a20 - m2·a00=0 і нових позначень
·х1+·х2=. (3.1)
Рівняння (2.1) і (3.1) утворюють систему з двома невідомими (х1, х2)
(4)
Далі з (4) виключаємо х1. Якщо ≠0, то вводимо =/, інакше переставляємо рівняння системи (4) так, аби забезпечити ≠0. Якщо ж і =0, тоді маємо вироджену систему рівнянь, яка немає розв’язку.
Домножимо перше рівняння системи (4) на і віднімемо його від другого рівняння (4), отримаємо
( - ·)·х1+( - ·)·х2 = - ·. (5)
або
·х2 =. (5.1)
Звідки
х2 = . (6)
Перше рівняння системи (4) запишемо наступним чином
х1+·х2 =. (7)
або ввівши позначення
х1+α12·х2 =(1. (7.1)
Перше рівняння системи (1) запишемо наступним чином
x0+ ·х1 +·х2 =. (8)
або
x0+α01·х1 +α02·х2 =(0. (8.1)
Рівняння (6), (7.1), (8.1) утворюють трикутну систему рівнянь
(9)
еквівалентну (1), з якої зворотнім шляхом визначимо
(10)
Приклад блок-схеми алгоритму розв’язання системи лінійних рівнянь методом Гауса наведений на рис.1.
Рисунок 1. Приклад блок-схеми алгоритму розв’язання СЛАР методом Гауса
Фрагмент програми мовою С, що реалізує зведення заданої системи до трикутної системи рівнянь:
Метод Гауса-Зейделя розв’язування СЛАР
Нехай в (1) а00≠0, а11≠0, а22≠0.
Перепишемо систему (1) у вигляді
; (11)
; (12)
. (13)
Нехай – початкове наближення. За початкове наближення можна взяти такі значення х0, х1, х2:
а) ;
б) ;
в) середні значення, виходячи з умов задачі.
Підставивши початкове наближення в (11), одержимо
. (14)
Підставивши і у (12), одержимо
. (15)
Підставивши і у (13), одержимо
. (16)
Таким чином ми отримали перше наближення – . На цьому закінчується перша ітерація.
Аналогічно знаходять друге, третє і наступні наближення.
В загальному випадку k-те наближення визначається так:
(17)
Ітераційний процес продовжують доти, поки не виконаються умови:
, (і= 0, 1, 2) (18)
де ε – задана точність розрахунку невідомих величин.
Умова збіжності методу Гауса-Зейделя – модулі діагональних коефіцієнтів кожного рівняння повинні бути більшими за суму модулів всіх інших коефіцієнтів (крім вільних членів):
, (і,j= 0, 1, 2) (19)
Приклад блок-схеми алгоритму розв’язання системи лінійних рівнянь методом Гауса-Зейделя наведений на рис.2.
Рисунок 2. Приклад блок-схеми алгоритму розв’язання СЛАР
методом Гауса-Зейделя
У тому випадку, якщо задана СЛАР не розв’язується методом Гауса чи методом Гауса-Зейделя, необхідно попередньо здійснити перестановку рівнянь за максимальним діагональним коефіцієнтом згідно з алгоритмом, наведеним на рис.3.
Рисунок 3. Фрагмент блок-схеми алгоритму для перестановки рівнянь за максимальним діагональним коефіцієнтом
Таким чином, система рівнянь є розв’язана. Для перевірки правильності отриманого розв’язку його необхідно підставити у кожне вихідне рівняння заданої системи, або іншими словами, вихідну матрицю коефіцієнтів помножити на вектор-стовпчик отриманого розв’язку, в результаті чого отримаємо вектор-стовпчик коефіцієнтів правої частини системи, а саме
Фрагмент програми мовою С для перевірки правильності отриманого розв’язку:
Порядок виконання роботи
1. Перевірити чи задана СЛАР має єдиний розв’язок, тобто засобами MATLAB знайти визначник системи, складений із коефіцієнтів при невідомих заданої СЛАР.
2. Згідно із завданням скласти блок-схеми алгоритмів методу Гауса та методу Гауса-Зейделя.
3. Після перевірки блок-схем викладачем розробити програми для методу Гауса та методу Гауса-Зейделя мовою С. В блок-схемах і програмах передбачити перевірку правильності знайденого розв’язку. При необхідності здійснити перестановку рівнянь за максимальним діагональним коефіцієнтом.
4. Розв’язати СЛАР та перевірити правильність знайденого розв’язку, використовуючи інструментальні засоби пакету MATLAB.
5. Оформити звіт з лабораторної роботи (див. Додаток).
Література
Заварыкин В.М. и др. Численные методы. - М.: Просвещение, 1990.
Брановицкая С.В. Вычислительная математика в химии и химической технологии. - К.: Высшая школа, 1986.
Гаврилюк М.А .и др. Прикладные программы и лабораторный практикум для персонального компьютера. - К.: УМК ВО, 1988.
Потемкин В.Г. Система MATLAB. Справочное пособие. М.: ДИАЛОГ-МИФИ, 1997.
Схема оформлення звіту
1. Дата, тема роботи.
2. Завдання до лабораторної роботи.
3. Знаходження визначника СЛАР, складеного із коефіцієнтів при невідомих заданої системи засобами MATLAB.
4. Реалізація методу Гауса згідно із завданням, що повинна містити:
блок-схему алгоритму;
програму мовою С;
розв’язок системи;
перевірку правильності отриманого розв’язку СЛАР.
5. Реалізація методу Гауса-Зейделя згідно із завданням, що повинна містити:
блок-схему алгоритму;
програму мовою С;
розв’язок системи;
перевірку правильності отриманого розв’язку СЛАР .
6. Розв’язок СЛАР засобами MATLAB, а також перевірка правильності отриманого розв’язку.
7. Результати розрахунку параметра для кожного компонента та назви газів, що входять у газову суміш.
Завдання на самостійну роботу
Дано n невідомих газів (газ1, газ2, ... ,газn), з яких утворили п сумішей з відомими концентраціями ai,j компонентів :
суміш1: [a00 a10 ... aп-1,0]
суміш2: [a01 a11 ... aп-1,1]
...
сумішп: [a0,п-1 a1,п-1 ... a п-1,п-1]
Для кожної суміші експериментальним шляхом встановлено значення параметра X {M, ρ, cp, κ, K}.
Розрахувати значення параметра для кожного газу X0, X1, ... , Xп-1 та за допомогою таблиці 1 ідентифікувати ці гази, вважаючи що параметр Х для газових сумішей має властивість адитивності:
Таблиця 1. Теплофізичні параметри газів (при р=0,1 МПа та Т=280 K)
Назва газу
Молярна маса М, кг/кмоль
Густина
ρ, кг/м3
Теплоємність ср, кДж/(кг·K)
Показник адіабати κ
Коефіцієнт стисливості K
Водень (Н2)
2,02
0,09
14,23
1,409
1,002
Азот (N2)
28,01
1,20
1,04
1,401
1,000
Диокс.вугл. (СО2)
44,01
1,90
0,83
1,296
0,994
Гелій (Не)
4,00
0,17
5,19
1,665
1,001
Аргон (Ar)
39,95
1,72
0,52
1,669
0,999
Метан (СН4)
16,04
0,69
2,19
1,311
0,998
Таблиця 2. Індивідуальні завдання
№ варіанту
Назва
параметра Р,
розмірність
Кількість компонентів, п
Концентрації компонентів у сумішах
Значення
параметра Х
для сумішей
1
М, кг/кмоль
4
[10,204; 34,210; 24,610; 9,016]
2
ρ, кг/м3
[1,531; 0,601; 1,639; 1,219]
3
ср, кДж/(кг·K)
[2,187; 1,185; 3,987; 1,371]
4
κ
[1,5789; 1,3551; 1,4181; 1,4229]
5
K
[0,9982; 0,9958; 0,9994; 1,0006]
6
М, кг/кмоль
5
[34,9053; 11,1783; 38,3052; 27,7452; 9,4539]
7
ρ, кг/м3
[0,8168; 1,4966; 0,4790; 1,6208; 1,1741]
8
ср, кДж/(кг·K)
[2,8657; 4,8457; 1,8436; 1,9822; 11,0488]
9
κ
[1,34784; 1,58412; 1,3299; 1,3992; 1,40742]
10
K
[0,99862; 0,99928; 1,00063; 0,99997; 1,00141]
11
М, кг/кмоль
4
[9,4837; 34,6900; 25,3303; 8,2363]
12
ρ, кг/м3
[1,5256; 0,5491; 1,6444; 1,1980]
13
ср, кДж/(кг·K)
[2,0970; 1,0449; 4,0770; 1,2402]
14
κ
[1,58694; 1,35195; 1,41006; 1,42314]
15
K
[0,99814; 0,99562; 0,99946; 1,00066]
16
М, кг/кмоль
5
[34,2268; 10,8593; 36,8658; 26,4658; 9,5723]
17
ρ, кг/м3
[0,8461; 1,5156; 0,5081; 1,6326; 1,1776]
18
ср, кДж/(кг·K)
[3,0671; 5,0171; 2,1831; 2,3196; 10,8931]
19
κ
[1,34817; 1,58087; 1,33842; 1,40667; 1,41187]
20
K
[0,9987; 0,99935; 1,00065; 1,0000; 1,0013]
21
М, кг/кмоль
4
[9,8444; 33,8504; 24,9696; 10,3360]
22
ρ, кг/м3
[1,5552; 0,6252; 1,6148; 1,2020]
23
ср, кДж/(кг·K)
[2,2532; 1,2512; 3,9208; 1,4248]
24
κ
[1,5758; 1,3520; 1,4212; 1,41528]
25
K
[0,9984; 0,9960; 0,9992; 1,00048]
Додаток
Приклад оформлення звіту
15.03.2008 р.
Тема: Ідентифікація компонентів газових сумішей
шляхом розв’язування системи лінійних рівнянь
Завдання:
Дано 4 невідомих гази (газ1, газ2, газ3, газ4), з яких утворили 4 суміші з відомими концентраціями аi,j:
суміш1: [0,07 0,10 0,10 0,73]
суміш2: [0,07 0,10 0,73 0,10]
суміш3: [0,10 0,73 0,10 0,07]
суміш4: [0,73 0,07 0,10 0,10]
Для кожної суміші експериментальним шляхом встановлено значення теплоємності ср, кДж/(кг·K): [1,0544; 3,9965; 1,2653; 1,3883].
Розрахувати значення теплоємності для кожного газу ср0, ср1, ср2, ср3 та ідентифікувати ці гази (див. табл.1), якщо теплоємність для газових сумішей має властивість адитивності.
Виконання роботи
Щоб розрахувати значення теплоємності для кожного газу ср0, ср1, ср2, ср3 та ідентифікувати ці гази, необхідно розв’язати наступну систему лінійних алгебраїчних рівнянь:
1. Знайдемо визначник заданої СЛАР засобами MATLAB.
Програма знаходження визначника заданої СЛАР засобами MATLAB:
У результаті виконання програми отримаємо значення визначника даної матриці, що рівне 0,262521. Отже, система має єдиний розв’язок.
2. Реалізація методу Гауса.
Оскільки задана СЛАР не розв’язується методом Гауса, то необхідно попередньо здійснити перестановку рівнянь за максимальним діагональним коефіцієнтом.
Блок-схема алгоритму знаходження розв’язку СЛАР методом Гауса з перестановкою рівнянь за максимальним діагональним коефіцієнтом та перевіркою правильності отриманого розв’язку
Програма знаходження розв’язку СЛАР методом Гауса мовою С (файл FRM_L4_G.CPP):
Програму необхідно писати відповідно до складеного алгоритму.
Приклад початку програми:
Результати виконання програми:
Матриця заданої СЛАР
0,07 0,10 0,10 0,73 1,0544
0,07 0,10 0,73 0,10 3,9965
0,10 0,73 0,10 0,07 1,2653
0,73 0,07 0,10 0,10 1,3883
Матриця заданої СЛАР після перестановки
0,73 0,07 0,10 0,10 1,3883
0,10 0,73 0,10 0,07 1,2653
0,07 0,10 0,73 0,10 3,9965
0,07 0,10 0,10 0,73 1,0544
Зведена трикутна матриця заданої СЛАР
0,73 0,07 0,10 0,10 1,39
0,00 5,26 0,63 0,41 7,85
0,00 0,00 39,98 4,69 209,95
0,00 0,00 0,00 355,16 184,68
Розв’язок СЛАР
1,04 0,83 5,19 0,52
Перевірка знайденого розв’язку
1,3883 1,2653 3,9965 1,0544
3. Реалізація методу Гауса-Зейделя.
Оскільки задана СЛАР не розв’язується методом Гауса-Зейделя, то необхідно попередньо здійснити перестановку рівнянь за максимальним діагональним коефіцієнтом.
Блок-схема алгоритму знаходження розв’язку СЛАР методом Гауса-Зейделя з перестановкою рівнянь за максимальним діагональним коефіцієнтом та перевіркою правильності отриманого розв’язку
Програма знаходження розв’язку СЛАР методом Гауса-Зейделя мовою С (файл FRM_L4_Z.CPP):
Програму необхідно писати відповідно до складеного алгоритму.
Результати виконання програми:
Матриця заданої СЛАР
0,07 0,10 0,10 0,73 1,0544
0,07 0,10 0,73 0,10 3,9965
0,10 0,73 0,10 0,07 1,2653
0,73 0,07 0,10 0,10 1,3883
Матриця заданої СЛАР після перестановки
0,73 0,07 0,10 0,10 1,3883
0,10 0,73 0,10 0,07 1,2653
0,07 0,10 0,73 0,10 3,9965
0,07 0,10 0,10 0,73 1,0544
eps=0,0001 k=6
Розв’язок СЛАР
1,04 0,83 5,19 0,52
Перевірка знайденого розв’язку
1,3883 1,2653 3,9965 1,0544
4. Розв’язок СЛАР засобами MATLAB.
Програма знаходження розв’язку СЛАР засобами MATLAB:
Результати виконання програми:
Розв’язок СЛАР
1,04 0,83 5,19 0,52
Перевірка знайденого розв’язку
1,0544 3,9965 1,2653 1,3883
5. Результати розрахунку теплоємності для кожного газу та назви газів, що входять у газову суміш:
Теплоємність газу,
ср, кДж/(кг·K)
Назва ідентифікованого газу
Метод
Гауса
Метод
Гауса-Зейделя
Таблиця 1
газ1
1,04
1,04
1,04
Азот (N2)
газ2
0,83
0,83
0,83
Диоксид вуглецю (СО2)
газ3
5,19
5,19
5,19
Гелій (Не)
газ4
0,52
0,52
0,52
Аргон (Ar)
НАВЧАЛЬНЕ ВИДАННЯ
Ідентифікація
Методичні вказівки до виконання
ЛАБОРАТОРНОЇ РОБОТИ
з дисципліни "Алгоритмізація і програмування"
для студентів базового напряму 6.050202
"Автоматизація та комп'ютерно-інтегровані технології"
Укладачі Теплюх Зеновій Миколайович
Ділай Ігор Володимирович
Федоришин Роман Миронович
Редактор
Комп’ютерне верстання