# Лабораторная работа №6 - Определение детерминанта матрицы с помощью параллельных вычислений ## Разработка приложения Для разработки был выбран язык Python. Для разработки приложения были использованы библиотки: - Numpy - библиотека для работы с массивами - Multiprocessing - библиотека для запуска нескольких процеесов, что позволяет паралельно запускать функции Для поиска детерминанты будем последовательно понижать порядок матрицы, путем вывода миноров и поиска их детерминант Суть алгоритма: 1) задаем размер матриц 2) задаем кол-во потоков 3) алгоритм ище строку или столбец с наибольшим кол-вом нулей, для того, чтобы можно было пропускать 4) теперь будет алгоритм рекурсивно делить матрицу на миноры, которые тоже в свою очередь будет делить их на миноры и искать уже их детерминанты 5) рекурсия останавливается когда в нее попадает матрица размеров 2х2, возращается детерминанта данной матрицы 6) складываем все полученные значения ## Тестирование Тест 1. Размер матрицы 6х6 ![image (1).png](images%2Fimage%20%281%29.png) Тест 2. Размер матрицы 8х8 ![image (2).png](images%2Fimage%20%282%29.png) Тест 2. Размер матрицы 11х11 ![image (3).png](images%2Fimage%20%283%29.png) ## Вывод Паралельной алгоритм поиска детерминанты матрицы работает эффективнее, чем обычный. НО выполение больших матриц (когда размер стороны превышает 11) становится очень большим, что даже несколько потоков уже не спасает. ## Запись тестирования Работа приложения представлена в [видео](https://disk.yandex.ru/i/kkNVNzvOaOmCOQ)