- •1.2. Алгоритмічна та програмна реалізація метода Ньютона
- •Порядок виконання роботи
- •2.2. Алгоритмічна і програмна реалізація метода Гауса
- •Порядок виконання роботи
- •Заняття № 3 Розробка програми розв’язання слар методом подвійної факторизації
- •3.1. Теоретичні відомості
- •. Алгоритмічна і програмна реалізація метода подвійної факторизації
- •3. Інші елементи рядка і відповідно до (3.5);
- •4. Елемент матриці відповідно до (3.4);
- •Алгоритмічна та програмна реалізація метода Зейделя
- •Порядок виконання роботи
- •5.2. Алгоритмічна та програмна реалізація метода Ньютона-Рафсона (для системи 3-х нелінійних рівнянь з трьома невідомими)
- •6.2. Алгоритмічна та програмна реалізація інтерполяційного полінома Лагранжа
- •6.3. Порядок виконання роботи
- •Заняття № 7 Розробка програми чисельного інтегрування функцій методом трапецій
- •7.1. Теоретичні відомості
- •7.Алгоритмічна та програмна реалізація методу трапецій
- •7.3. Порядок виконання роботи
- •8.2. Алгоритмічна та програмна реалізація формули Сімпсона
- •8.3. Порядок виконання роботи
- •Розробка програми чисельного диференціювання функцій
- •9.1. Теоретичні відомості
- •9.2. Алгоритмічна та програмна реалізація чисельного диференціювання функцій
- •9.3. Порядок виконання роботи
- •10.2. Алгоритмічна та програмна реалізація методів Ейлера для розв’язання здр
- •10.3. Порядок виконання роботи
- •11.2. Алгоритмічна та програмна реалізація методу Рунге-Кутта четвертого порядку
- •12.2. Алгоритмічна та програмна реалізація градієнтного методу
- •12.3. Порядок виконання роботи
- •Список літератури
Порядок виконання роботи
Вибрати індивідуальне завдання. Номер варіанту в Таблиці 2.1.
відповідає номеру студента у списку групи;
Ознайомитись із теоретичним матеріалом по методу Гауса (методика і алгоритм розв’язання СЛАР);
Виконати «ручне» розв’язання заданої системи рівнянь методом Гауса. Перевірити правильність отриманого результату;
Скласти докладний алгоритм розв’язання системи рівнянь методом Гауса;
Скласти і відлагодити програму на мові Pascal, яка реалізує введення вихідних даних, розв’язання заданої системи рівнянь методом Гауса, виведення результатів на екран і в файл у зручній формі. Основні фрагменти програми оформити як процедури і функції;
Описати розроблений алгоритм і програму (основні змінні, масиви, процедури і функції, особливості реалізації, склад і структура вхідних і вихідних даних тощо);
Розв’язати задану систему рівнянь за допомогою розробленої програми, порівняти отримані результати із результатами ручних розрахунків;
Сформулювати висновки по роботі.
Результати виконання кожного пункту завдання докладно описати у звіті по роботі.
Таблиця 2.1. Варіанти завдань до занять №2 і №3.
Варіант |
Система лінійних рівнянь |
Варіант |
Система лінійних рівнянь |
1 |
|
16 |
|
2 |
|
17 |
|
3 |
|
18 |
|
4 |
|
19 |
|
5 |
|
20 |
|
6 |
|
21 |
|
7 |
|
22 |
|
8 |
|
23 |
|
9 |
|
24 |
|
10 |
|
25 |
|
11 |
|
26 |
|
12 |
|
27 |
|
13 |
|
28 |
|
14 |
|
29 |
|
15 |
|
30 |
|
Заняття № 3 Розробка програми розв’язання слар методом подвійної факторизації
Мета роботи: Закріплення знань із застосування метода подвійної факторизації для розв’язання СЛАР, вивчення алгоритму метода, розробка відповідної комп’ютерної програми на мові Pascal і використання її для розв’язання заданої системи рівнянь
3.1. Теоретичні відомості
Метод подвійної факторизації розв’язання
Метод подвійної факторизації є прямим методом розв’язання СЛАР. Використовує обернену матрицю коефіцієнтів.
Для системи лінійних рівнянь (2.2) це розв’язання має вигляд:
(3.1)
Метод дозволяє зменшити обчислювальні проблеми, що виникають при оберненні матриці коефіцієнтів, яка в практичних задачах може мати велику розмірність і малу заповненість. Метод включає два основних етапи:
Обернення матриці коефіцієнтів методом подвійної факторизації;
розв’язання системи рівнянь перемноженням оберненої матриці А-1 на вектор вільних членів системи В відповідно до (3.1).
Подвійна факторизація (елімінативна форма оберненої матриці) - це подання оберненої матриці як добутку послідовності елементарних верхніх та нижніх трикутних матриць, в яких не дорівнює нулю тільки один стовпець чи рядок:
,
(3.2)
де k - номер кроку перетворення матриці А (крок факторизації);
Rk, Lk - верхні та нижні трикутні матриці на k-му кроці перетворення (факторні матриці).
Верхня трикутна матриця (права факторна матриця) має таку структуру:
-
1
1
i
1
Rk=
1
…
a
k
k,n
1
1
n
1
j
Це матриця з одиничною діагоналлю та відмінними від нуля над- діагональними елементами в k-му рядку. Усі інші елементи матриці дорівнюють нулю.
Нижня трикутна матриця (ліва факторна матриця) має структуру:
1 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
1 |
|
|
|
|
… |
|
1 |
|
|
|
|
|
|
1 |
i
n
n
k
1
j
j
Її діагональні елементи дорівнюють одиниці, за винятком k-го стовпця. У ньому елементи, що розташовані на діагоналі і нижче її, відмінні від нуля. Усі інші елементи матриці дорівнюють нулю.
Елементи факторних
матриць
на k-му
кроці
факторизації обчислюються за формулами:
Матриця
:
(3.3)
Матриця
:
(3.4)
де
- номери
рядка та стовпця матриці коефіцієнтів
k - номер кроку факторизації k=1, …, n;
J - елементи матриці коефіцієнтів на k-му кроці факторизації.
На кожному кроці факторизації виконується перерахунок усіх елементів не перетвореної раніше частини матриці (Рис. 3.1) за формулою:
(3.5)
k
j
i, j=k+1,…,n
i
|
|
|
k |
|
|
|
|
|
Рис. 3.1.
В
результаті
виконання n
кроків
перетворення отримуємо (n-1)
праву факторну матрицю R
і n
лівих
факторних матриць L
(всього
2n-1
елементарних трикутних матриць). Їх
елементи розташовані на полі
вихідної матриці
А
і утворюють
факторизовану
матрицю
.
Одиниці на їх головній діагоналі
передбачаються.
….……/
R2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис 3.2.
*→…
Загальний алгоритм подвійної факторизації матриці передбачає виконання таких кроків:
визначення номера чергового кроку факторизації k (k=1, …, n);
вибір чергового опорного елемента . Це діагональний елемент, що розташований на перетині k-го рядка і k-го стовпця (опорні рядок та стовпець);
обчислення елементів k-ої факторної матриці за формулами (3.3);
обчислення інших елементів матриці А, що не входили в опорні рядок і стовпець на цьому і попередніх кроках перетворення. Використовується формула (3.5);
обчислення елементів k-ої факторної матриці
;якщо таким чином виконано n кроків перетворення і сформовано факторизовану матрицю що містить елементи (n-1) матриці R і n матриць L, то подвійна факторизація завершується.
В іншому випадку - повернення до пункту 1) і виконання наступного кроку перетворення.
Після завершення
факторизації з факторизованої матриці
можна виділити
факторні матриці
R,
L
і
визначити обернену матрицю
відповідно до (3.2).
Приклад розв’язання СЛАР методом подвійної факторизації
Розв’яжемо СЛАР (2.16) методом подвійної факторизації. Матриця коефіцієнтів системи має вигляд:
5 |
-4 |
3 |
1 |
8 |
-7 |
2 |
-1 |
1 |
А=
Виконуємо факторизацію матриці відповідно до алгоритму.
Необхідно виконати 3 кроки факторизації (n=3).
Перший крок
факторизації (к=1). Опорний елемент
.
Визначаємо елементи лівої факторної
матриці
за формулами (3.3).
к=1; і=2,3; j=2,3.
Переобчислюємо елементи матриці,що не увійшли у опорний рядок і стовпець, за формулою (3.5):
Визначаємо елементи правої факторної матриці R, за формулою (3.4):
В результаті
виконання 1-го кроку факторизації,
визначені елементи факторних матриць
і
.
Вони розташовані на полі вихідної
матриці. Перетворена матриця на цьому
етапі має вигляд:
0.2 |
0.8 |
-0.6 |
-0.2 |
8.8 |
-7.6 |
-0.4 |
0.6 |
-0.2 |
=
Другий
крок факторизації (к=2). Опорний елемент
.
k=2, i=3; j=3.
В результаті
другого кроку факторизаціїї визначені
елементи факторних матриць
і
.
Матриця набуває вигляду:
0.2 |
0.8 |
-0.6 |
-0.2 |
0.1136 |
0.8634 |
-0.4 |
-0.0682 |
0.3182 |
Третій
крок
факторизації (к=3). Опорний елемент
.
.
В результаті
останнього, третього, кроку визначено
елемент вакторної матриці
.
Отримано факторизовану
матрицю, яка
має остаточний вигляд:
0.2 |
0.8 |
-0.6 |
-0.2 |
0.1136 |
0.8634 |
-0.4 |
-0.0682 |
3.1427 |
Її елементами є
елементи факторних матриць
Розв’язуємо
систему
рівнянь відповідно до алгоритму.
Розв’язок
визначаємо
в результаті
послідовного перемноження матриць
на вектор вільних членів В
(відповідно до формул (3.2) і (3.1)):
1 |
0.8 |
-
* |
|
1 |
* |
|
|
1 |
1 |
|
|
|
1 |
0.8634 |
|
|
1 |
1 |
|
* |
|
1 |
|
|
|
3.1427 |
1 |
|
|
|
0.1136 |
|
|
-0.068 |
1 |
0.2 |
|
|
-0.2 |
1 |
* |
-0.4 |
|
1 |
*
4 |
2 |
2 |
*
Таким чином, розв’язком системи рівнянь є вектор:
Для перевірки правильності розв’язання системи необхідно елементи вектора Х підставити у вихідну систему рівнянь. Рівняння системи перетворюється на тотожності, тобто вона розв’язана вірно.
