- •Державний заклад “Київський коледж зв’язку”
- •„Алгоритми та методи обчислень”
- •6.091500 - "Комп’ютерні системи та мережі",
- •6.050102 - "Комп’ютерна інженерія"
- •Розробив викладач
- •1. Мета завдання.
- •1Еом типу ibm pc, математичний пакет Mathcad.
- •Основні поняття
- •Метод виключення Гаусса
- •Приклад 1
- •Метод Холецького
- •Прилади та обладнання.
- •Перелік посилань
Приклад 1
У пакеті MATHCAD можна виконувати багато матричних операцій, які дозволяють дуже просто обчислювати визначник матриці, обернену матрицю і розв'язувати систему рівнянь за наведеними вище формулами (3), (4). Продемонструємо можливості пакета на простих прикладах. Введемо розширену матрицю системи рівнянь Ах = b:
Елементи розширеної матриці вводяться послідовно у вигляді списку. Для наочності вона зображена традиційно. Перші три стовпчики в ній — це матриця системи А, останній стовпчик — вектор правих частин рівнянь b. Виділимо з розширеної матриці матрицю системи А:
Знайдемо визначник матриці А:
Det(A) = 142.999
В
ін
відмінний від нуля. За правилом Крамера
знайдемо значення невідомих. Для цього
замінимо в матриці системи А стовпець,
що відповідає номеру невідомої, на
стовпець правих частин системи рівнянь.
Отримаємо таку матрицю для першої
невідомої:
Тепер за правилом Крамера можемо знайти значення першої невідомої:
x1= Det(A1) / Det(A) = 9.51471
Аналогічно знаходимо значення решти невідомих:
x2 = -0.0899587
хз = -1.50637
Використаємо для розв'язання системи формулу (3). Спочатку знайдемо обернену матрицю А-1, яку позначимо АІ, а потім значення невідомих:
ІП[]: = АІ = ІПУЄГ5Є[А];
х = АІ * b
Якщо це необхідно, можна вивести на екран і обернену матрицю AI:
Легко перевірити, що, помноживши цю обернену матрицю на її саму, отримаємо одиничну матрицю.
Похибки обчислення елементів оберненої матриці малі, і можна вважати, що зображена матриця є одиничною. Аналогічні команди і матричні операції присутні й в інших математичних пакетах. Розглянемо більш детально алгоритми, реалізовані такими матричними операціями.
Метод виключення Гаусса
Розв'язання системи лінійних алгебраїчних рівнянь методом Гаусса полягає в послідовному виключенні невідомих х1,х2,..., хп із цієї системи. Припустимо, що визначник матриці А відмінний від нуля, що свідчить про те, що система (1) має єдиний розв'язок. Якщо а11 ≠ 0, то, поділивши перше рівняння (1) на а11, отримаємо:
(5)
Розглянемо решту рівнянь системи (1)
(6)
і у кожному з них виключимо невідому х1, виконавши таку послідовність дій. Помножимо (5) на аi1 і віднімемо отримане рівняння від i-го рівняння системи (6), і = 2, 3....,n.
У результаті отримаємо таку систему рівнянь:
(7)
Тут
позначено
(8)
У
системі (7) невідома х1
є
тільки в першому рівнянні, тому надалі
достатньо мати справу зі скороченою
системою рівнянь:
(9)
У такий спосіб здійснено перший крок методу Гаусса. Якщо а22 (1)≠ 0, то з системи (9) аналогічно можна виключити х2 і перейти до системи, яка еквівалентна (1). При цьому перше рівняння системи (7) залишиться без змін.
Виключаючи послідовно в такий спосіб невідомі х3, х4.....хn, прийдемо остаточно до системи рівнянь, яка має такий вигляд:
(10)
У матриці цієї системи, що еквівалентна системі (1), всі елементи, які розташовані нижче головної діагоналі, дорівнюють нулю. Такі матриці називаються верхніми трикутними, на відміну від нижніх трикутних матриць, у яких дорівнюють нулю всі елементи, розташовані вище головної діагоналі.
Перехід
від системи (1) до системи (10) являє собою
прямий хід методу Гаусса. Зворотний хід
полягає в знаходженні невідомих
х1,x2,...,хn
з
системи
(10). Це зробити дуже просто, оскільки
матриця системи трикутна і за її допомогою
можна послідовно, починаючи з хn,
знайти
всі невідомі. Загальні формули зворотного
ходу мають такий вигляд:
(11)
Тепер виведемо розрахункові формули прямого ходу. Припустимо, що виконані перші k-1 кроків, тобто вже виключені змінні x1, x2, …, хk-1. Тоді для виключення матимемо аналогічну (9) скорочену систему:
(12)
Нехай
аkk(k-1)≠
0.
Поділивши обидві частини k-го
рівняння на аkk(k-1),
отримаємо
(13)
д
е
Помножимо рівняння (13) на аik(k-1)і віднімемо отримане співвідношення з і-го рівняння скороченої системи (12), де і = k + 1, k + 2,..., п. У результаті група рівнянь (12) набуде такого вигляду:
Отже, під час прямого ходу методу Гаусса коефіцієнти системи рівнянь обчислюються за наведеними нижче формулами:
(14)
(15)
О
бчислення
правих частин системи (10) здійснюється
за такими формулами:
(16)
Основним обмеженням методу є припущення про те, що всі елементи аkk(k-1), на які проводиться ділення на кожному кроці методу, відмінні від нуля. Елемент аkk(k-1) називається ведучим елементом на k-му кроці виключення. Слід мати на увазі, що навіть якщо якийсь ведучий елемент не дорівнює нулю, а просто близький до нього, в процесі обчислень може відбуватися значне накопичення похибок. Уникнути цього дозволяє метод Гаусса з вибором головного елемента. Ідея методу полягає в тому, щоб на черговому кроці виключати ту невідому, коефіцієнт за якої найбільший за модулем. Отже, ведучим елементом тут вибирається головний, тобто найбільший за модулем елемент матриці. Тим самим, якщо det А ≠ 0, то в процесі обчислень не відбуватиметься ділення на нуль.
Для зменшення помилок округлювання чинять так. Серед елементів першого рядка аkj(k-1) кожної проміжної матриці (12) вибирають найбільший за модулем елемент mах | аkj(k-1)|, j = k, k + 1,..., п і роблять цей елемент ведучим. Вказаний спосіб виключення називається методом Гаусса з вибором головного елемента по рядку. Він еквівалентний застосуванню звичайного методу Гаусса до системи, в якій на кожному кроці виключення проводиться відповідна перенумерація змінних.
Застосовується
також метод із вибором головного елемента
по
стовпцю (рис.
1, а).
Він
еквівалентний застосуванню звичайного
методу Гаусса до системи, в якій на
кожному кроці виключення проводиться
відповідна перенумерація рівнянь.
(17)
Проте
головний елемент можна вибирати і серед
всіх елементів неперетво-реної частини
матриці (рис. 1, б):
(18)
а б
Рис. 2.1. Вибір головного елемента: а - серед елементів стовпця матриці;
б - серед елементів неперетвореної частини матриці
Визначимо складність алгоритму, що реалізує метод Гаусса на однопроцесор-ній ЕОМ. Розглянемо задачу розв'язання системи лінійних рівнянь з р правими частинами:
На кожному k-му кроці прямого ходу Гаусса необхідно виконати (п - k) ділень, (п - k)(п - k + р + 1) множень та додавань. Використовуючи формулу для ряду 12 + 22 + 32 +... + т2 = т(т + 1) (2т + 1)/6, отримаємо
П
ід
час зворотного ходу необхідно виконати
п
ділень
та множень і додавань, тому, коли p = 1, маємо
(19)
Отже, для реалізації методу Гаусса потрібно близько n3/3 операцій множення. Це поліномний алгоритм, але навіть він для великої розмірності задачі ускладнює обчислювальний процес, про що свідчать дані табл. 2.1. У ній наведено тривалість прямого і зворотного ходів залежно від розмірності розв'язуваної системи рівнянь для комп'ютера з середньою швидкістю виконання операції ділення/множення 15 мкс.
Алгоритм Гаусса є послідовним алгоритмом, орієнтованим на виконання на однопроцесорній ЕОМ.
