Метод ортогоналізації на Delphi. Розв'язок систем лінійних рівнянь методом ортогоналізації засобами Delphi

Програма знаходить розв'язок системи лінійних алгебраїчних рівнянь викоритовуючи метод ортогоналізації (теоретична частина даного методу містяться за посиланням Рішення СЛАР методом ортогоналізації). Інтерфейс головної форми розглядуваного delphi-проекту не відрізняється від проектів, які реалізують інші чисельні методи признячені для рішення основної проблеми лінійної алгебри, а саме відшукання розв'язку лінійних систем. Тобто після запуску програми, на екраін появиться форма, в якій необхідно вказати розмірність системи, заповнити розширену матрицю коефіцієнтами при невідомих та елементами стовця вільних членів після чого шуканий розв'язок отримують скориставшись кнопкою "Розв'язати систему рівнянь".

Інтерфейс програми, яка використовуючи алгоритм методу ортогоналізації знаходить розв'язок СЛАР

Інтерфейс програми, яка використовуючи алгоритм методу ортогоналізації знаходить розв'язок СЛАР

Читати повністю

Метод ортогоналізації. Знаходження розв'язку СЛАР методом ортогоналізації

Нахай дано систему лінійних алгебраїчних рівнянь (СЛАР) Метод ортогоналізації, яку необхідно розв'язати використовуючи алгоритм методу ортогоналізації (заснований на процесі ортогоналізації системи векторів). Для цього, в першу чергу, приєднаємо вектор вільних членів Метод ортогоналізації до матриці коефіцієнтів Метод ортогоналізації, в результаті система (1) набуде наступного вигляду:

Метод ортогоналізації

де Метод ортогоналізації — вектор-рядки (Метод ортогоналізації); Метод ортогоналізації — вектор-стовпець. Далі, систему векторів Метод ортогоналізації доповнимо додатковим вектором Метод ортогоналізації після чого, до отриманої  системи векторів Метод ортогоналізації застосуємо процес ортогоналізації, який складається з побудови ортонормованої системи Метод ортогоналізації і який реалізується за наступними рекурентними формулами:

Читати повністю

Рішення систем рівнянь методом релаксації (реалізація в середовищі Delphi)

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

Головне вікно delphi-проекту

Переглянувши рисунок головної форми проекту бачимо, що крім текстових міток (компоненти типу TLabel), вона містить редактор введення цілих чисел (компонент типу TSpinEdit — відповідає за кількість рівнянь та невідомих системи), дві таблиці типу TStringGrid (призначені для введення коефіцієнтів при невідомих сисетми та значень стовпця вільних членів), дві кнопки типу TButton (призначені для рішення системи рівнянь та підготовки delphi-проекту до нового прикладу) і область виведення багаторядкового тексту (компонент типу TMemo — призначений для представлення результатів роботи програми).

Читати повністю

Розв'язок систем з трьохдіагональною матрицею (реалізація в середовищі Delphi)

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

Для рішення систем з подібними матрицями існує модифікація алгоритму Гаусса, яку називають методом прогонки. Перевагою даного способу є той факт, що для знаходження коренів системи  рівняння він вимагає порядку операцій, на відміну від стандартного алгоритму. Спробуємо коротко розібрати основну суть методу прогонки після чого розглянемо відповідну delphi-програму, яка, напевно, виявиться корисною для читача, що зіткнувся з необхідністю рішення систем з трьохдіагональною матрицею.

Отже, будь-яке рішення, отримане методом прогонки, описується рівнянням:

де  — прогоночні коефіцієнти. Зазначимо, що дані коефіцієнти визначаються на першому етапі роботи алгоритму — називається прямим ходом прогонки. У класичному варіанті методу Гаусса, цьому етапу відповідає приведення матриці до трикутного вигляду. Звернемо увагу, що, відповідно до рівняння, попередній корінь обчислюється виходячи з наступного. Така послідовність називається зворотним ходом алгоритму прогонки, в процесі якого безпосередньо шукається вектор рішень. Описані дії представлені нижче у вигляді delphi-програми.

Читати повністю

Рішення систем лінійних рівнянь методом Зейделя (реалізація в середовищі Delphi)

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

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

Головне вікно розглядуваного delphi-проекту

Виходячи з того, що інтерфейс головної форми розглядуваного delphi-проекту аналогічний проектам, що реалізують інші чисельні методи рішення лінійних систем, то розгляд його основних елементів та їх призначення не вимагає спеціальних пояснень. Все це можна прочитати перейшовши, наприклад, за посиланням рішення СЛАР методом ітерації (реалізація в середовищі delphi).

Читати повністю

Рішення систем рівнянь методом простої ітерації (реалізація в середовищі Delphi)

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

Всі методи розв'язку СЛАР можна розділити на дві великі групи: прямі та ітераційні. Прямі методи знаходять точне рішення (у відсутності помилок округлення) за скінченне число кроків. Ітераційні — на кожному кроці зменшують величину помилки між точним рішенням і знайденим на поточній ітерації.

Велика частина прямих методів грунтуються на процесі виключення невідомих, але для ряду практичних завдань, використання прямих методів являється недоречним (розв'язок СЛАР великої розмірності), так як їх обчислювальний процес являється занадто складним, або вони працюють занадто довго. У таких випадках використовують ітераційні методи: метод простої ітерації (метод Якобі), метод Зейделя, метод релаксації та інші. У даному параграфі розглянемо delphi-проект, що реалізує один з найвідоміших ітераційних методів, а саме метод простої ітерації.

Читати повністю

Розв'язок систем лінійних рівнянь методом LU-факторизації (реалізація в середовищі Delphi)

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

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

Отже, як уже зазначалося вище, основна ідея методу LU-розкладання — це подання матриці у вигляді добутку  (де  — нижня трикутна матриця з одиничною діагоналлю і  — верхня трикутна матриця). Відмітимо, що в такому випадку, початкова систему  записується у наступному вигляді: . Позначивши далі вектор через (), остання система набере вигляду , що свідчить про те, що процес знаходження вектора  за методом LU-факторизації зводиться до рішення двох систем лінійних рівняннь з трикутними матрицями коефіцієнтів: .

Читати повністю

Наступна сторінка »