You are on page 1of 9

КПІ ім.

Ігоря Сікорського

Інститут прикладного системного аналізу

Кафедра Системного проектування

Лабораторна робота №3

«Методи чисельного рішення розріджених і великих систем лінійних

рівнянь»

Виконала:
Студент групи ДА-21
НТУ "КПІ", ННК "ІПСА"

Фоменко М.М

Київ – 2023
Мета роботи: отримання практичних навичок в чисельному рішенні систем
лінійних рівнянь з стрічковими матрицями і рішення великих розріджених
систем рівнянь методом визначальних величин. Визначення можливості
застосування засобів стандартних пакетів для отримання результатів.

Порядок виконання роботи

1. Обрати варіант завдання згідно зі списком групи.

2. Запрограмувати на мові пакету Mathematica рішення заданої системи


рівнянь шостого порядку методом спрощеного LU–розкладу (5.1) - (5.3) і
впевнетися, що ненульова структура розрідженої матриці не змінються.

3. Корстуючись функцією LinearSolve пакету Mathematica вирішити ту ж


систему рівнянь шостого порпядку і порівняти результати з отриманими в
пункті 2.

4. Користуючись стандартними операторами пакету Mathematica для формул


метода прогонки (5.4) - (5.7), знайти рішення заданої системи рівнянь
шостого порпядку методом прогонки і порівняти результати з отриманими в
пункті 3.

5. Привести задану систему рівнянь до блочно-діагональної форми за


зразком, наведеним у прикладі 5.2, і знайти визначальні величини для вашого
прикладу.

6. Користуючись стандартними операторами пакету Mathematica, знайти


рішення системи рівнянь шостого порпядку методом визначальних величин
(5.8) - (5.11) і порівняти результати з отриманими в пункті 3.

7. Користуючись стандартними операторами пакету Mathematica, знайти


рішення заданої системи рівнянь, користуючись вбудованою процедурою
обробки розріджених матриць
Варіант 3

Компоненти Компоненти Компоненти Вектор правої


частини
діагоналі b i діагоналі a i діагоналі c i
d=[ ¿t

2 3 1 -2, 2, 6, 4, -2, -5

Завдання 2

Запрограмуємо метод спрощеного LU - розкладу.


bk
α 1=a1 ; βk= ; α k =a k− β k c k −1 ; k=2 , 3 , .. . ,n .
α k −1
Скористаємось формулами :
Завдання 3

Перевіримо, дану відповідь стандартним оператором :

Результати однакові

Завдання 4

Метод прогонки :

Запрограмуємо метод прогонки використовуючи формули :


ci
w i=− ,i=2, 3 , .. . .n ;
bi w i−1 +a i
d −b v
v i= i i i−1 , i=2 , 3 ,. . .. n .
b i wi−1 +ai ; -- для прямого ходу
ci
w i=− ,i=2, 3 , .. . .n ;
bi w i−1 +a i
d −b v
v i= i i i−1 , i=2 , 3 ,. . .. n .
b i wi−1 +ai ; -- для зворотнього
Результати однакові

Завдання 5-6

Запишемо кількість ненульових елементів по стовпцям:


1 2 3 4 5 6

( |
1 2
00 00 00
2 3 1

)
3
1 ¿ 1 ¿ 00
3 2 3 ¿ 3
3 3 1 ¿1
4 ¿ 2 3
¿ 2 2 3 3
5 ¿ 00 00 3
¿ 00 00 2
6 2

Побудуємо допоміжну таблицю, де в стовпцях будемо відмічати нові номери


рядків Nн (рівнянь), їх старі номери Nc , складові вектора X1 і складові вектора
змінних зв’язку X2 .
Починаючи з першого рядка, який містить найменшу кількість ненульових
елементів, заповнюємо таблицю:
Nн Nc X1 X2
1 1 1 2
2 6 3
3 3 4
4 4 5
5 5 6
6 2

Після упорядкування згідно послідовності компонентів векторів X1 та X2


отримуємо:

1 3 4 5 6 2

(
1

)
00 00 00 ¿ 1
6 3 1 ¿ 1 ¿ 00 ¿ 3
3 2 1 ¿ ¿
3 3 ¿ 1 ¿ 2
4 ¿ 3
2 2 −¿ 3 ¿¿ ¿
5 ¿−¿ 00 −¿
¿−¿ 00 −¿ 00 −¿ 2
−¿ 2

Маємо систему у блочно–діагональній формі з обрамленням:

( )( ) ( )
30000 ¿1 x1 −2
21000 ¿3 x3 2
03100 ¿2 x4 = 6
02310 ¿0 x5 4
00231 ¿0 x6 −2
00023 ¿0 x2 −5

Звідси знайдемо інші невідомі:


Маємо значення змінних, які відрізняються від отриманих результатах
минулих способів
Використання LinearSolve
Маємо значення змінних, які відрізняються від отриманих результатах
минулих способів

Висновки:

При обчисленнях у перших двох методах не виникало похибок, тобто вони


були ідентичними, але при використання інших методів виникала похибка,
через що і відповіді не сходяться.

Використані у роботі методи:


1. Спрощений LU-розклад дозволяє розкласти тридіагональну матрицю
на дві дводіагональні, використовуючи для цього менше операцій, ніж
при звичайному такому розкладі. Тут складність лінійно залежить від
розмірності матриці, а обчислення містять лише три арифметичні
операції.
Спрощений LU-розклад потребує О(3n) операцій (з них O(2n) –
множення/ділення) на розклад, також О(5n) на власне розв’язок (з
них O(3n) – множення/ділення), тому загальна оцінка – О(8n).

2. Метод прогонки передбачає обчислення аналогічно до метода Гауса із


використанням прогоночних коефіцієнтів
Метод прогонки повністю виконується за O(9n) операцій (з них
O(5n) – множення/ділення).

3. Метод визначальних величин потребує попереднього приведення


матриці до блочно-діагонального вигляду (складність O(mn), де m –
кількість визначальних величин), після чого необхідно розв’язати m+1
трикутних систем рівнянь розмірності n-m (складність
O((m+1)n(n+1))=O(m n2 ), потім систему рівнянь розмірності m (O(m2)) і
обчислення невизначальних величин (O(2n(n+1))=O(n2)).
Остаточно отримуємо приблизну оцінку складності O (mn2).

Отже, спрощений LU-розклад та метод прогонки приблизно еквівалентні та


вибір конкретного методу залежить від користувача, але спрощений LU-
розклад простіший, так як виконує на n менше операцій . На відміну від них,
метод визначальних величин потребує більшої кількості операцій та
попередньої підготовки матриці коефіцієнтів, але дає можливість
розв’язувати будь-які розріджені системи рівнянь, а не лише стрічкові

You might also like