You are on page 1of 14

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ


«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ
імені ІГОРЯ СІКОРСЬКОГО»
Навчально-науковий інститут прикладного системного аналізу
Кафедра системного проектування

Розрахункова робота
з дисципліни «Чисельні методи»
на тему «Ітераційний метод Якобі для розв'язку систем лінійних
алгебраїчних рівнянь»

Виконав:
студент II курсу
групи ДА-22
Жадько Микита Сергійович
Варіант №9

Київ – 2023
2

ЗМІСТ

Вступ 3

Прямі методи вирішення систем лінійних рівнянь 4

Ітераційні методи вирішення систем лінійних рівнянь 5

Поглиблено про метод Якобі для розв'язку систем лінійних рівнянь 6

Ручне обчислення першої ітерації методу Якобі 7

Обчислення ітераційними методами у Wolfram Mathematica 10

Висновки 13
3

Вступ

Система лінійних алгебраїчних рівнянь – це набір рівнянь, де кожне


рівняння є лінійним, тобто ступінь змінних у ньому не перевищує першого.

Наприклад, система двох лінійних рівнянь з двома невідомими може


виглядати так:
2x + 3y = 12
{
4x − y = 5

Розв'язання систем лінійних алгебраїчних рівнянь – це знаходження


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

Загалом, розв'язання систем лінійних алгебраїчних рівнянь має широкий


спектр застосувань у різних сферах життя, де важливо вирішувати проблеми з
використанням математичних моделей та методів. Розглянемо детальніше:

 Економіка та фінанси. У фінансових областях можуть виникати системи


рівнянь для прогнозування доходів, витрат та інших фінансових
показників. Розподіл ресурсів у компанії або бюджету може бути
представлений системою лінійних рівнянь.
 Транспорт і логістика. Планування маршрутів транспорту часто може
вимагати розв'язання систем лінійних рівнянь для оптимізації часу та
витрат.
 Медицина. У фармацевтиці може виникати потреба у розв'язанні систем
лінійних рівнянь для визначення оптимальних доз лікарських препаратів.
Моделювання роботи деяких систем у медицині може вимагати
використання лінійної алгебри.
 Соціальні науки. У соціології можна використовувати системи лінійних
рівнянь для моделювання взаємодії різних соціальних груп або динаміки
популяцій. Економетрика також може включати системи рівнянь для
вивчення економічних явищ.
4

Прямі методи вирішення систем лінійних рівнянь

Прямі методи вирішення систем лінійних рівнянь — це клас


алгоритмів, які шукають точний розв'язок системи лінійних рівнянь за
обмежений час.

Ці методи забезпечують точні розв'язки, але є деякі обмеження. Вони


можуть бути обтяжливими для великих та розріджених систем рівнянь. Також
важливо враховувати чисельну стійкість алгоритму, особливо при роботі з
числами з обмеженою точністю, оскільки це може призвести до накопичення
помилок.

Розглянемо основні прямі методи:

 Метод виключення Гауса. Прямий метод розв'язання систем лінійних


рівнянь, де за допомогою елементарних операцій над рядками матриці
системи рівнянь приводиться до трикутної форми, і подальша зворотна
підстановка дозволяє знайти значення невідомих.
 Матрична форма методу Гауса з вибором головного елемента. Є
модифікацією першого методу. Використовує матричний підхід для
представлення системи рівнянь у вигляді Ax=b, де елементарні матриці
використовуються для забезпечення нуля під головним елементом на
кожному кроці для зменшення похибки кінцевого результату.
 LU–розклад без операцій матричного множення. Включає розклад
матриці A у добуток двох матриць LU, де L є нижньотрикутною, а U —
верхньотрикутною. Цей метод дозволяє ефективно розв'язувати системи
лінійних рівнянь, зберігаючи інформацію про матрицю та зменшуючи
кількість операцій матричного множення. Після розкладу можна знайти
також визначник матриці та обернену матрицю за дуже оптимальний час.
5

Ітераційні методи вирішення систем лінійних рівнянь

Ітераційні методи вирішення систем лінійних рівнянь – це клас


алгоритмів, які засновані на ітеративному покращенні початкового наближення
до точного розв'язку. Замість прямого отримання точного розв'язку, ці методи
використовують ітерації для наближеного знаходження відповіді. Основна ідея
полягає у тому, щоб почати з початкового наближення, а потім ітеративно
оновлювати його, зближуючи його до точного розв'язку системи.

Ітераційні методи можуть бути корисними в ситуаціях, коли прямі методи,


такі як метод Гауса чи LU-розклад, неефективні або непридатні через розмір
системи або особливості матриці. Широко використовуються для розв'язання
систем лінійних рівнянь в різних областях, таких як фізика, інженерія та
економіка, де часто важливо знайти наближений розв'язок системи за допомогою
ітераційного процесу. Однак важливо враховувати, що швидкість та стійкість
ітераційних методів може залежати від конкретних властивостей системи
рівнянь.

Розглянемо основні ітеративні методи:

 Метод простої ітерації. Ітераційний підхід до розв'язання систем лінійних


рівнянь, де початкове наближення постійно оновлюється за певним
правилом до досягнення достатньої точності.
 Метод верхньої релаксації. Розширення методу простої ітерації, в якому
кожне оновлення робиться з додатковим параметром (релаксацією), що
дозволяє контролювати швидкість збіжності.
 Метод Якобі. Метод, де система лінійних рівнянь розв'язується шляхом
оновлення невідомих на кожному кроці. В кожній ітерації
використовуються попередні значення невідомих для оновлення нових
значень згідно з формулою, що базується на початковому рівнянні.
 Метод Гауса–Зейделя. Вдосконалення методу Якобі, де нові значення
невідомих використовуються одразу при їх обчисленні на кожному етапі
ітерації. Це дозволяє прискорити швидкість збіжності методу, але важливо
враховувати, що він може не збігатися для всіх систем рівнянь.
6

Поглиблено про метод Якобі для розв'язку систем лінійних рівнянь

Метод Якобі є ітераційним методом для розв'язання систем лінійних


рівнянь. Основна ідея методу полягає у тому, щоб розкласти матрицю системи на
три компоненти: матрицю діагональних елементів, нижньотрикутну матрицю та
верхньотрикутну матрицю. Потім, використовуючи цю розкладку, проводяться
ітерації для оновлення наближеного розв'язку системи.

Загальна формула вектору відповіді k-ї ітерації методом Якобі виглядає


так:
(𝑘)
(𝑘+1) 𝑏𝑖 − ∑𝑛𝑗=1, 𝑖≠𝑗 𝑎𝑖𝑗 ∙ 𝑥𝑖
𝑥𝑖 = , 𝑖 = ̅̅̅̅̅
1, 𝑛
𝑎𝑖𝑖

Поділ матриці на три різних:

𝐴 = 𝐷(𝐿 + 𝐼 + 𝑈)
𝑎12 𝑎1𝑛
𝑎11 0 ⋯ 0 0 0 ⋯ 0 0 ⋯
𝑎21 𝑎11 𝑎11
0 𝑎22 ⋯ 0 0 ⋯ 0 𝑎2𝑛
𝑎22
𝐷=(
⋯ ⋯ ⋯ ⋯
) 𝐿= ⋯ ⋯ ⋯ ⋯ 𝑈= 0 0 ⋯
𝑎22
𝑎𝑛1 𝑎𝑛2
⋯ 0 ⋯ ⋯ ⋯ ⋯
0 0 ⋯ 𝑎44
(𝑎𝑛𝑛 𝑎𝑛𝑛 ) (0 0 ⋯ 0)
Тоді маємо:
(𝑘+1) (𝑘)
𝑥𝑖 = −(𝐿 + 𝑈) ∙ 𝑥𝑖 + 𝐷−1 ∙ 𝑏, 𝑖 = ̅̅̅̅̅
1, 𝑛

Метод Якобі підходить не для всіх матриць. Щоб перевірити, чи збігається


рішення за цим методом, проведемо наступні операції. Обчислимо 𝑀:

𝑀 = −(𝐿 + 𝑈)

Тепер треба лише перевірити, що норма матриці менша за 1. Тобто:

||𝑀|| < 1

Або є простіший спосіб. Якщо у матриці А на головній діагоналі


знаходяться найбільші числа в рядку (вона має домінуючу діагональ), то ця
матриця точно збіжна за методом Якобі.
7

Ручне обчислення першої ітерації методу Якобі

Візьмемо деяку систему рівнянь у матричному вигляді:

4 −1 0 0 1 3
−1 4 −1 0 1 2
( )( ) = ( ), де
0 −1 4 −1 1 2
0 0 −1 4 1 3
4 −1 0 0 3 1
−1 4 −1 0 2 1
𝐴=( ) 𝑏=( ) 𝑥=( )
0 −1 4 −1 2 1
0 0 −1 4 3 1
Матриці та вектори підібрані таким чином, що в рівнянні 𝐴𝑥 = 𝑏
відповіддю буде вектор цілих чисел, що складається з одиниць (легко
аналізувати). Числа в матриці та векторах також цілі для зручної роботи.

І, звісно, дана система вирішується трьома основними ітераційними


способами (верхня релаксація, метод Якобі та метод Гауса-Зейделя).

Спробуємо знайти рішення даної системи з точністю 𝑒𝑝𝑠 = 0,001.

Зараз спробуємо вирішити деяку систему рівнянь методом Якобі:


4 −1 0 0 𝑥1 3
−1 4 −1 0 𝑥2 2
( ) (𝑥 ) = ( )
0 −1 4 −1 3 2
0 0 −1 4 𝑥4 3
Перевіримо чи можливо розв’язати систему цим методом. На головній
діагоналі стоять числа, що є найбільшими за модулем у рядку, тож цю систему
можливо так розв’язати.

Спочатку знайдемо 𝐷𝐿𝑈 розклад матриці 𝐴:


𝑎11 0 0 0 4 0 0 0
0 𝑎22 0 0 0 4 0 0
𝐷=( )=( )
0 0 𝑎33 0 0 0 4 0
0 0 0 𝑎44 0 0 0 4
8

0 0 0 0 0 0 0 0 0 0 0 0
𝑎21 −1 1
0 0 0 0 0 0 − 0 0 0
𝑎22 4 4
𝐿 = 𝑎31 𝑎32
0 0 =
0 −1 = 1
𝑎33 𝑎33 0 0 0 − 0 0
4 4 4
𝑎41 𝑎42 𝑎43 0 0 −1 1
0 0)
(𝑎44 𝑎44 𝑎44 ) (4 4 4 ( 0 0 −
4
0)

𝑎12 𝑎13 𝑎14 −1 0 0 1


0 0 0 − 0 0
𝑎11 𝑎11 𝑎11 4 4 4 4
𝑎23 𝑎24 −1 0 1
0 0 0 0 0 0 − 0
𝑈= 𝑎22 𝑎22 = 4 4 = 4
𝑎34 −1 1
0 0 0 0 0 0 0 0 0 −
𝑎33 4 4
(0 0 0 0 ) (0 0 0 0 ) (0 0 0 0 )
Знайдемо матриці 𝑀 та 𝑔:
1 1
0 − 0 0 0 0 0
4 4
1 1 1 1
− 0 − 0 0 0
M = −(L + U) = − 4 4 = 4 4
1 1 1 1
0 − 0 − 0 0
4 4 4 4
1 1
( 0 0 −
4
0 ) (0 0
4
0)

1 3
0 0 0
4 4
1 3 1
0 0 0
4 2
𝑔 = 𝐷−1 ∙ 𝑏 = ( )= 2
1 2 1
0 0 0
4 3 2
1 3
( 0 0 0
4) (4)

Початкове наближення вектору 𝑥:

𝑥 (0) = 𝑔

Формула для обчислення 𝑥:


9

(𝑘+1) (𝑘) (𝑘)


𝑥𝑖 = −(𝐿 + 𝑈) ∙ 𝑥𝑖 + 𝐷−1 ∙ 𝑏 = 𝑀 ∙ 𝑥𝑖 +𝑔

Знайдемо першу ітерацію вектору 𝑥:


1 3 3 1 3 7
0 0 0
4 4 4 8 4 8
1 1 1 1 5 1 13
0 0
𝑥 (1) = 𝑀 ∙ 𝑥 (0) + 𝑔 = 4 4 2 + 2 = 16 + 2 = 16
1 1 1 1 5 1 13
0 0
4 4 2 2 16 2 16
1 3 3 1 3 7
(0 0
4
0) ( ) ( )
4 4 ( 8 ) (4) ( 8 )

Формула похибки обчислень:


||𝑀||
𝜀 (𝑘) = ∙ ||𝑥 (𝑘+1) − 𝑥 (𝑘) || = 𝑆 ∙ ||𝑥 (𝑘+1) − 𝑥 (𝑘) ||
1 − ||𝑀||

Знайдемо 𝑆 для даної задачі:


||𝑀|| 0,5 0,5
𝑆= = = =1
1 − ||𝑀|| 1 − 0,5 0,5

Тоді формула похибки:

𝜀 (𝑘) = ||𝑥 (𝑘+1) − 𝑥 (𝑘) ||

Обчислимо похибку для першої ітерації:

7 3 1
|| 8 4 | || 8 ||
13 1 | 5
5
𝜀 (1) = || 16 − 2 || = || 16 || =
13 1 5 16
16 2 | | 16 ||
|| 7 3 | | 1
( 8 ) (4) (8)

Далі проводитимемо обчислення у середовищі Wolfram Mathematica.


10

Обчислення ітераційними методами у Wolfram Mathematica

 Ініціалізація даних.

 Перевірка збіжності методу ітерацій (не збігається).

 Знаходження демпфуючого коефіцієнту та перевірка збіжності методу


верхньої релаксації (збігається).

 Обчислення методом верхньої релаксації.


11

 Перевірка збіжності методу Якобі через норму матриці 𝑀 (збігається)

 Обчислення за методом Якобі.


12

 Перевірка збіжності обчислень методом Гауса-Зейделя (збігається).

 Обчислення методом Гауса-Зейделя


13

Висновки

Складемо таблицю результатів обчислень різними ітераційними методами.

Назва методу Кількість ітерацій Кінцева похибка Результат

Проста ітерація - - -

0.999533
0.999244
Верхня релаксація 26 0.000944902 ( )
0.999244
0.999533
0.99979
0.99966
Якобі 8 0.000499725 ( )
0.99966
0.99979
0.999879
0.999921
Гауса-Зейделя 5 0.00030064 ( )
0.999921
0.999879

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


рівнянь, у багатьох із них вона просто не працює. Натомість її алгоритм є
найбільш зрозумілим з усіх.

Верхня релаксація, як уже було зазначено, є модифікацією попереднього


методу. Вона розширює діапазон матриць, придатних до вирішення. Як бачимо,
цей метод зміг вирішити задану систему із зазначеною точністю за 26 ітерацій.
Так, результат не дуже задовольнить людину, яка буде порівнювати його з
наступними методами. Проте цей метод є найбільш універсальним з чотирьох
представлених (охоплює найбільшу кількість типів матриць, придатних для
розв’язку).

Метод Якобі, якому, в більшості, і присвячена робота, показав дуже


непоганий результат у 8 ітерацій, що більш ніж у 3 рази менше ніж попередній
метод. Мінусом є, звісно, обчислення розкладу матриці на три різних, проте
асимптотика цього розкладу не є дуже великою (лише 𝑂(𝑛2 ), при множенні
матриці на вектор, наприклад, така ж асимптотика), тож цим можна знехтувати.
14

Значну ефективність цей метод здобуває за рахунок зменшення кола


застосування у різних матрицях (лише матриці з головною діагоналлю).

Метод Гауса-Зейделя є модифікацією методу Якобі. Він використовує


більш складні формули, але й ефективність його вища, порівняно з попереднім
методом (зазвичай, майже у 2 рази ефективніший). Тому, на мою думку, при
матриці з головною діагоналлю (як у нашому випадку) даний метод є найкращим
вибором.

Як висновок, можна сказати, що кожна система рівнянь унікальна і для


кожної варто підбирати свій спосіб вирішення (саме тому методів і існує так
багато). Метод Якобі є доволі ефективним, але водночас і не надто складним у
реалізації, що робить його гарним рішенням для певних систем рівнянь.

You might also like