Merge pull request 'kadyrov_aydar_lab_6' (#177) from kadyrov_aydar_lab_6 into main
Reviewed-on: #177
This commit is contained in:
commit
46e167424e
@ -1,20 +1,17 @@
|
|||||||
# Лабораторная работа 6. Определение детерминанта матрицы с помощью параллельных вычислений
|
Лабораторная работа 6. Определение детерминанта матрицы с помощью параллельных вычислений
|
||||||
|
Задание
|
||||||
## Задание
|
|
||||||
|
|
||||||
Требуется сделать два алгоритма: обычный и параллельный. В параллельном алгоритме предусмотреть ручное задание количества потоков, каждый из которых будет выполнять нахождение отдельной группы множителей.
|
Требуется сделать два алгоритма: обычный и параллельный. В параллельном алгоритме предусмотреть ручное задание количества потоков, каждый из которых будет выполнять нахождение отдельной группы множителей.
|
||||||
|
|
||||||
### Описание работы программы
|
Описание работы программы
|
||||||
|
Программа реализует вычисление детерминанта квадратной матрицы с использованием двух алгоритмов: обычного и параллельного.
|
||||||
|
|
||||||
Программа реализует вычисление детерминанта квадратной матрицы с использованием двух алгоритмов: *обычного и параллельного*.
|
1. Обычный алгоритм
|
||||||
|
|
||||||
1. Обычный алгоритм
|
|
||||||
|
|
||||||
Функция minor(matrix, row, col) - Эта функция используется для удаления строки и столбца из матрицы, чтобы получить минор, который затем будет использован для вычисления детерминанта с помощью рекурсии.
|
Функция minor(matrix, row, col) - Эта функция используется для удаления строки и столбца из матрицы, чтобы получить минор, который затем будет использован для вычисления детерминанта с помощью рекурсии.
|
||||||
|
|
||||||
Функция determinant(matrix) - Эта функция вычисляет детерминант матрицы с использованием метода Лапласа. Если матрица — это 2x2, то вычисление происходит напрямую. Для больших матриц она рекурсивно вызывает себя для подматриц.
|
Функция determinant(matrix) - Эта функция вычисляет детерминант матрицы с использованием метода Лапласа. Если матрица — это 2x2, то вычисление происходит напрямую. Для больших матриц она рекурсивно вызывает себя для подматриц.
|
||||||
|
|
||||||
2. Параллельный алгоритм
|
2. Параллельный алгоритм
|
||||||
|
|
||||||
parallel_determinant(matrix, num_threads=4) — Это функция, которая распределяет вычисления по нескольким потокам для ускорения работы.
|
parallel_determinant(matrix, num_threads=4) — Это функция, которая распределяет вычисления по нескольким потокам для ускорения работы.
|
||||||
|
|
||||||
@ -28,14 +25,11 @@ minor(matrix, row, col) — Вспомогательная функция, ко
|
|||||||
|
|
||||||
Для каждого размера матрицы программа выводит время выполнения обычного и параллельного алгоритмов, а также соответствующие значения детерминантов.
|
Для каждого размера матрицы программа выводит время выполнения обычного и параллельного алгоритмов, а также соответствующие значения детерминантов.
|
||||||
|
|
||||||
### Результат работы программы:
|
Результат работы программы:
|
||||||
|
|
||||||
Результаты работы программы в png картинках проекта.
|
Результаты работы программы в png картинках проекта.
|
||||||
|
|
||||||
#### Вывод
|
Вывод
|
||||||
|
|
||||||
Параллельное выполнение нахождения детерминанта может привести к ускорению(но на больших данных, корректной настройки и оптимизации самого процесса), особенно на больших матрицах. Однако, для некоторых матриц, результаты детерминантов могут отличаться между обычным и параллельным выполнением.
|
Параллельное выполнение нахождения детерминанта может привести к ускорению(но на больших данных, корректной настройки и оптимизации самого процесса), особенно на больших матрицах. Однако, для некоторых матриц, результаты детерминантов могут отличаться между обычным и параллельным выполнением.
|
||||||
|
|
||||||
# ВК
|
ВК
|
||||||
|
|
||||||
https://vk.com/video64471408_456239209?list=ln-EEX5GM4Xv1HnCnf9P1
|
https://vk.com/video64471408_456239209?list=ln-EEX5GM4Xv1HnCnf9P1
|
@ -1,4 +1,5 @@
|
|||||||
import threading
|
import threading
|
||||||
|
#fix
|
||||||
import time
|
import time
|
||||||
import random
|
import random
|
||||||
import numpy as np
|
import numpy as np
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Loading…
Reference in New Issue
Block a user