Знаходження рангу матриці в середовищі програмування Delphi

Розглядуваний delphi-проект призначений для знаходження рангу матриці за методом обвідних мінорів та методом елементарних перетворень (теоретична частина по даних методах міститься за посиланням Ранг матриці та способи його обчислення). Після запуску програми на екрані комп’ютера появиться вікно, яке складається з насутпних елементів:

  1. Панелі інструментів (містить область зміни розмірності матриці; область вибору методу; кнопки «Знайти ранг матриці» та «Очистити матрицю»).
  2. Робочої області (містить компонент для відображення даних в табличній формі).
  3. Статусного рядка (призначений для виводу результатів роботи програми).

rank_matrix_delphi1

Інтерфейс delphi-проекту "Знаходження рангу матриці за методом обвідних мінорів та методу елементарних перетворень"

Для знаходження рангу матриці з допомогою даного delphi-проекту, необхідно виконати наступні дії: задати розмірність матриці, вибрати метод для розв'язку, заповнити таблицю даними та скористатись кнопкою «Знайти ранг матриці».

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

Обернена матриця методом алгебраїчних доповнень в середовищі Delphi

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

Інтерфейс delphi-проекту, який з допомогою методу алгебраїчних доповненть знаходить обернену матрицю

Інтерфейс delphi-проекту, який з допомогою методу алгебраїчних доповненть знаходить обернену матрицю до заданої

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

Ранг матриці. Обчислення рангу матриці за методом обвідних мінорів та методу елементарних перетворень

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

  1. Ранг існує для будь-якої матриці Ранг матриці розмірності Ранг матриці, причому Ранг матриці.
  2. Ранг матриці тоді і тільки тоді, коли коли всі елементи матриці Ранг матриці рівні нулю.
  3. Для квадратної матриці Ранг матриці-го порядку ранг дорівнює Ранг матриці тоді і тільки тоді, коли матриця невироджена, тобто її визначник відмінний від нуля.

Серед алгоритмів для знаходження рангу матриці виділяють два: метод обвідних мінорів та метод елементарних перетворень. Перший з них полягає в наступному: на першому кроці, знаходимо будь-який мінор rang_matrici10 першого порядку (тобто елемент матриці) відмінний від нуля. Якщо такого мінора немає то матриця являється нульовою і ранг такої матриці, як було вище сказано рівний нулю. Якщо ж серед мінорів першого порядку існух хоча б один відмінний від нуля, то переходимо до обчислення мінорів другого порядку, які містять в собі rang_matrici10 (обводять rang_matrici10) до тих пір, поки не знайдем мінор rang_matrici111 відмінний від нуля. Якщо такого мінора немає, то rang_matrici12, якщо є, то rang_matrici13 і так далі продовжуючи даний процес, переходимо до обчислення мінорів rang_matrici14-го порядку, якщо вони існують, які обводять мінор rang_matrici15. Якщо таких мінорів немає, або вони всі дорівнюють нулю, то Ранг матриці, якщо хочаб один мінор rang_matrici16, то rang_matrici17 і так далі.

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

Знаходження оберненої матриці з допомогою алгебраїчних доповненень

Нехай Знаходження оберненої матриці — квадратна матриця obernena_matr2-го порядку. Квадратна матриця obernena_matr3, також obernena_matr2-го порядку, називається оберненою до Знаходження оберненої матриці, якщо obernena_matr4. Нагадаємо, що для будь-якої квадратної матриці існує обернена, при чому єдина, в тому випадку, коли вона являється невиродженою, тобто визначник даної матриці відмінний від нуля.

Для знаходження оберненої матриці будемо використовувати наступний алгоритм:

  1. З допомогою методу Гаусса чи методу розкладу визначника, знаходимо детермінант матриці obernena_matr5.
  2. Знаходимо транспоновану матрицю obernena_matr6 (отримують з вихідної матриці шляхом заміни її рядків на стовпці).
  3. Для кожного елемента транспонованої матриці обчислюємо алгебраїчні доповнення (алгебраїчне доповнення елемента — це мінор, взятий зі знаком "+" якщо сума номера рядка і стовпця елемента парне число, і зі знаком "-" — у протилежному випадку, де мінор елемента матриці — це визначник (n-1)-го порядку, який утворюється з початкового визначника, шляхом закреслення рядка та стовпця, в яких міститься даний елемент).
  4. На наступному кроці, знаходимо обернену матрицю використовуючи наступну формулу:

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

Обчислення детермінанта квадратної матриці методом розкладу по першому рядку в середовищі Delphi

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

Головне вікно проекту складається з панелі інструментів та таблиці (компонент StringGrid), яку необхідно заповнити значеннями елементів матриці. Розмірність даної таблиці залежить від значення яке міститься в полі "Розмірність матриці". Тобто від користувача вимагається вказати розмірність матриці, детермінант якої необхідно обчислити, заповнити таблицю значеннями її елементів після чого натиснути кнопку "Знайти визначник". Результатом виконання програми є вивід в статусному рядку отриманого значення.

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

Обчислення визначників високих порядків за схемою розкладу визначника по рядку чи стовпці

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

Детермінант матриці з допомогою алгебраїчних доповнень

тобто, від добутку елементів, що стоять на головній діагоналі, віднімаємо добуток елементів бічної дівгоналі.

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

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

Алгоритм провірки приналежності точки відрізку

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

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

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