Курсова робота
На тему:
"Дослідження методу ортогоналізації й методу сполучених градієнтів"
Введення
До рішення систем лінійних алгебраїчних рівнянь приводяться багато задач чисельного аналізу.
Відоме з курсу вищої алгебри правило Крамера для рішення систем лінійних алгебраїчних рівнянь практично невигідно, тому що вимагає занадто великої кількості арифметичних операцій і записів. Тому було запропоновано багато різних способів, більше придатних для практики.
Використовувані практично методи рішення систем лінійних алгебраїчних рівнянь можна розділити на дві більші групи: так звані точні методи й методи послідовних наближень. Точні методи характеризуються тим, що з їхньою допомогою принципово можливо, проробивши кінцеве число операцій, одержати точні значення невідомих. При цьому, звичайно, передбачається, що коефіцієнти й праві частини системи відомі точно, а всі обчислення виробляються без округлень. Найчастіше вони здійснюються у два етапи. На першому етапі перетворять систему до того або іншого простого виду. На другому етапі вирішують спрощену систему й одержують значення невідомих.
Методи послідовних наближень характеризуються тим, що із самого початку задаються якимись наближеними значеннями невідомих. Із цих наближених значень тим або іншому способу одержують нові «поліпшені» наближені значення. З новими наближеними значеннями надходять точно також і т.д. Розглянемо два точних методи: метод ортогоналізації й метод сполучених градієнтів.
1. Метод ортогоналізації
1.1 Метод ортогоналізації у випадку симетричної матриці
Нехай дана система
(1)
порядку n. Щоб уникнути надалі плутанини, над векторами поставимо риски. Рішення системи будемо розшукувати у вигляді
, (2)
де – n векторів, що
задовольняють умовам
при
(3)
Тут
розглядається звичайний скалярний добуток векторів в n-мірному векторному
просторі, тобто якщо й
, те
. Нехай такі вектори
знайдені. Як це робиться, буде показано нижче. Розглянемо скалярний добуток
обох частин системи (1) з
(4)
Використовуючи (2) одержимо:
(5)
або,
у силу вибору векторів ,
. (6)
Отже,
для визначення коефіцієнтів одержали
систему із трикутною матрицею. Визначник цієї системи дорівнює
. (7)
Отже,
якщо , те
можливо знайти й
перебувають вони без праці.
Особливо
легко визначаться , якщо матриця А
симетрична. У цьому випадку, мабуть,
(8)
і, отже,
=0 при
. (9)
Тоді
система для визначення прийме вид
(10)
. (11)
Метод
можна узагальнити. Нехай якимсь образом удалося знайти систему 2n векторів так, що
=0 при
. (12)
Множачи
обидві частини рівності (1) на й
використовуючи подання
через
, як і раніше, одержимо:
. (13)
Знову
вийшла система лінійних алгебраїчних рівнянь із трикутною матрицею для
визначення . Трохи ускладнивши
обчислення можна одержати систему діагонального виду. Для цього побудуємо три
системи векторів
, так що мають
місце рівності:
(14)
(15)
(16)
Тоді
, (17)
тому
що при i і при
i>r Таким
чином, Зупинимося докладніше на першому з
описаних методів. Розглянемо випадок, коли матриця А симетрична й позитивно
певна. Останнє означає, що для будь-якого вектора Це побудова можна здійснити в такий
спосіб. Виходимо з якоїсь системи лінійно незалежних векторів Далі проводимо «ортогоналізацію».
Приймаємо З умови Шукаємо Умови Далі надходимо також. Процес буде здійсненний, тому що все Неважко перевірити, що уведене таким
способом скалярний добуток буде задовольняти всім вимогам, які до нього
пред"являються. При рішенні системи n рівнянь за
справжньою схемою потрібно зробити операцій множення й ділення. 1.2
Метод ортогоналізації у випадку несиметричної матриці У випадку несиметричної матриці процес
ортогоналізації проводиться точно також. Нехай вектори Коефіцієнти Система у випадку несиметричної матриці
буде трикутною. Аналогічно будується система
«біортогональних» векторів, тобто система 2n векторів, що задовольняють умові
(12). При цьому Коефіцієнти Також надходимо, відшукуючи коефіцієнти
При цьому одержимо дві системи: з яких і визначаємо Зупинимося ще на одному методі
ортогоналізації. Будемо розглядати рядки матриці А як вектори: Перше рівняння системи де Друге рівняння системи заміниться на де Аналогічно надходимо далі. Рівняння з
номером i прийме вид де Процес буде здійсненний, якщо система
рівнянь лінійно незалежна. У результаті ми прийдемо до нової системи Таким чином, рішення системи можна
записати у вигляді Практично, внаслідок помилок
округлення, СС¢ буде відмінна від
одиничної матриці й може виявитися доцільним зробити кілька ітерацій для
системи 2.
Метод сполучених
градієнтів 2.1 Перший алгоритм методу Нехай потрібно вирішити систему
лінійних алгебраїчних рівнянь с позитивно певною матрицею A порядку
n. Розглянемо функціонала багаточлен, що представляє, другого
порядку відносно x1, x2…, xn,… Позначимо через
При цьому знак рівності можливий лише
при Для відшукання такого вектора
застосуємо наступний метод. Нехай – вектор не в"язань системи.
Покажемо, що вектор не в"язань має найбільше значення. Але Але серед векторів Вектор і приймаємо за нове наближення до
рішення. У методі сполучених градієнтів наступне
наближення і через Вектор Гіперплощина (7) проходить через крапку
При кожному або Вектор має напрямок нормалі до перетину
поверхні Вектор приймемо за нове наближення до рішення має напрямок нормалі до поверхні Розглянемо гіперплощину (n-2) – х
вимірів минаючу через крапку Вектор Підберемо або Вектор буде мати напрямок нормалі до перетину
поверхні приймемо за нове наближення к. Продовжуючи процес, одержимо
послідовності векторів Для цих векторів мають місце наступні
співвідношення: Справді, у силу самої побудови при i (j Далі, при i>j Якщо i=j+1, то права частина дорівнює
нулю, у силу визначення Продовжуючи зниження індексу у вектора Тому що в n-мірному векторному простори
не може бути більше n взаємно ортогональних векторів, то на деякому кроці На мал. 1 показана геометрична
картина нашої побудови при n=3. Мал. 1 2.2 Другий алгоритм методу Приведемо інший алгоритм методу. Будемо
позначати послідовні наближення до рішення через Перші два наближення Припустимо, що вже відомо наближення Будемо шукати мінімум функціонала (2)
на множині векторів Дорівнюючи до нуля частки похідні від або, з огляду на (25), Позначимо через і за (i+1) – е наближення до рішення
приймемо: Із системи (27) треба, що а тому що те з (31) треба: Доведемо, що якщо те при всіх i що буде доводити й збіжність, і
кінцівка другого алгоритму. Справді, при умовах (33) т.ч. умова (24) виконано. Припустимо,
що вже доведено рівності і доведемо рівність При припущенні (35) Але зі співвідношень (20) маємо: Доведемо коллінеарність векторів З (20) і (29) маємо: а це й доводить коллінеарність векторів
(36). Вектор Це й доводить справедливість (34) при
всіх i. На перший погляд здається, що перший
алгоритм краще, тому що на кожному кроці він вимагає лише одного множення
матриці А на вектор Метод сполучених градієнтів доцільно
використовувати для рішення систем рівнянь, у яких матриця А має багато
нульових елементів. При рішенні системи по цьому методі елементи матриці беруть
участь в арифметичних операціях лише при множенні матриці на вектор, а множення
матриці на вектор можна організувати так, щоб в арифметичних операціях брали
участь тільки ненульові елементи. Висновок У даній роботі були розглянуті метод
ортогоналізації й метод сполучених градієнтів, а також представлена програма
мовою програмування С++, що реалізує метод ортогоналізації на ЕОМ, і її
результати роботи. Список літератури 1. Березин І.С. і Жидков Н.П. Методи
обчислень. – К., 2003 2. Воєводін В.В. Чисельні методи алгебри (теорія
й алгоритми). – К., 2004 3. Подбельський В.В. і
Фомін С.С. Програмування мовою С ++. – К., 2002 4. Каліткін М.М. Чисельні методи. – К., 2003 (18)
(19)
(20)
квадратична
форма його компонент
більше або
дорівнює нулю, причому рівність нулю можливо в тім і тільки тім випадку, якщо
вектор
нульової. Як ми бачили
раніше, потрібно побудувати систему векторів
,
що задовольняють умовам
=0
. (21)
, наприклад із системи
одиничних векторів, спрямованих по координатних осях:
(22)
й шукаємо
у вигляді
. (23)
знаходимо:
(24)
у
вигляді
. (25)
спричиняють
(26)
. Це ж забезпечить нам
можливість розв"язання системи для визначення коефіцієнтів
. Помітимо, що в нашім
випадку це буде процес справжньої ортогоналізації, якщо в просторі векторів
увести новий скалярний добуток за допомогою співвідношення
. (26)
(28)
вже побудовані. Тоді
шукається у вигляді
(29)
визначаються
із системи
(30)
– n довільних
лінійно незалежних векторів, а вектори
будуються
послідовно у вигляді
(31)
перебувають
із системи
(32)
й
, при побудові систем
векторів (14) і (15), що задовольняють умовам (16).
(33)
й
.
(34)
ділимо на
. При цьому одержимо
(35)
(36)
(37)
(38)
(39)
(40)
, де матриця З буде
ортогональної, тобто має властивість СС¢=I.
. (41)
.
(1)
, (2)
рішення системи (1), тобто
. У силу симетричності й
позитивної визначеності матриці, маємо:
. Таким чином, задача
рішення рівняння (1) зводиться до задачі відшукання вектора
, що обертає в мінімум
функціонал (2).
–
довільний початковий вектор, а
(4)
має
напрямок нормалі до поверхні
в
крапці
. Справді, напрямок нормалі
збігається з напрямком найшвидшої зміни функції
в
крапці
. Це напрямок ми знайдемо,
якщо знайдемо серед векторів
, для
яких
, такий вектор, що
постійний довжини
досягає максимального
значення, якщо
має напрямок
вектора
або йому протилежне.
Твердження доведене. Будемо рухатися із крапки
в
напрямку вектора
доти, поки
функція
досягає мінімального
значення. Це буде при
, тобто
при
. (5)
(6)
перебуває так. Через
крапку
проведемо гіперплощину (n-1) –
го виміру
(7)
позначимо
нове не в"язання системи
. (8)
спрямований
по нормалі до поверхні
в
крапці
, а вектор
паралельний дотичної
площини в цій крапці. Тому
. (9)
, тому що
.
вектор
паралельний деякої
нормальної площини до поверхні
в
крапці
. Знайдемо серед них той,
котрий лежить у гіперплощині (7), тобто ортогональний к.
З умови ортогональності
маємо:
,
. (10)
(11)
гіперплощини (7) у крапці
. Будемо рухатися із крапки
в напрямку вектора
доти, поки функція
досягне мінімуму. Це буде
при
. (12)
системи. Вектор не в"язань
(13)
в крапці
. Покажемо, що він буде
ортогональний до
і
. Справді, використовуючи
(9), (11), (12), (13), маємо:
, (14)
. Ця гіперплощина містить і
, тому що ми раніше бачили,
що
, а
.
при
кожному
паралельний гіперплощини
(7), тому що
.
так,
щоб він був паралельний і гіперплощини (14), тобто зажадаємо ортогональності до
вектора
. Будемо мати:
,
(15)
(16)
гіперплощиною (14) у крапці
. Із крапки
змістимося в напрямку
цього вектора так, щоб функція
досягла
мінімального значення. Це буде при
, (17)
(18)
Новий вектор не в"язань
буде:
. (19)
,
,
, обумовлені рекурентними
співвідношеннями:
(20)
(21)
(22)
, якщо ж
i>j+1, те
, по доведеному, і
.
, через кілька кроків
прийдемо до скалярного добутку
(по
визначенню
). Таким чином,
співвідношення (21) доведені. Для доказу (22), у силу рівноправності індексів i
і j, припустимо, що i>j. Тоді
.
одержимо
, тобто
буде рішенням системи (1).
і
введемо позначення:
. (23)
й
візьмемо так, щоб
. (24)
(i³1), обчислена
й
справедливо рівність
. (25)
. (26)
по
й
для визначення
й
, одержимо систему:
(27)
(28)
рішення цієї системи:
(29)
(30)
, (31)
(32)
(33)
(34)
(35)
і, отже,
і
(36)
дає
мінімум функціонала в площині, що проходить через
і
на вектори
й
, а ми показали, що цей
мінімум лежить на прямій, що проходить через
у
напрямку вектора
. Але на цієї
прямий мінімум функціонала досягається на векторі
.
Це й означає, що
, а в другому
алгоритмі потрібно два множення матриці А на вектор
і
, але досвід показав, що
застосування першого алгоритму приводить до швидкого нагромадження помилок
округлення, так що для матриць великого порядку можливо істотне відхилення від
точного рішення. Другий алгоритм менш чутливий до помилок округлення й тому
вимагає меншого кількість кроків для одержання гарного наближеного рішення.