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

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

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

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

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

Після того, к з теорією розібрались, переходимо до delphi-програми і розглянемо її роботу на прикладі рішення системи чотирьох рівнянь з чотрима невідомими:

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

Заповнення елементів головної форми вхідними даними

Далі, скориставшись кнопкою «Розв'язати систему рівнянь» (компонент типу TButton, який реалізує метод LU-факторизації), знаходимо шукане рішення (виводиться у компоненті TMemo).

Розв'язок системи лінійних рівнянь використовуючи метод LU-розкладання

Скачати delphi-проект метод LU-факторизації.

Матеріал був корисним, поділись в соціальних мережах:
Якщо тобі сподобалась дана тема, залиш свій коментар