В этом репозитории я написал код нахождения некоторых штук из линала, чтобы писать идз можно было быстрее:)
В файлике permutation.py
лежит класс Permutation
.
В файлике matrix.py
лежит два класса - Matrix
и SquareMatrix
.
Этот класс описывает перестановки и некоторые дополнительные вещи.
-
конструктор: принимает на вход массив с самой перестановкой, массив размера N, в котором должны быть все числа от 0 до N-1, иначе выбросит ошибку.
-
умножение: классическое умножение перестановок. Находится в работе.
-
возведение в степень: классическое возведение перестановок в степень. Находится в работе.
-
get_inversed_permutation
: возвращает перестановку, обратную данной. Находится в работе. -
get_permutation_sign()
: возвращает -1 или 1, в зависимости от знака перестановки. -
get_permutations(n, has)
: дурацкий статический метод, который генерирует все перестановки размера n. Нужно передать сам n и массив has со всеми числа от 0 до n - 1. Возвращает список всех перестановок, в виде массивов, где значение в i-ом индексе означает куда перейдет i после применения перестановки. -
get_all_subsets(arr, n)
: еще один дурацкий статический метод, который возвращает все подмножества массива arr размера k.
Этот класс описывает минимальные операции для матриц. В будущем сделаю его неизменяемым.
-
конструктор: принимает на вход двумерный массив, возвращает ошибку, если размеры строчек не равны между собой
-
умножение: класс поддерживает матричное умножение, выкидывает ошибку, если размеры матриц неправильные
-
multiply_on_number(x)
: умножение матрицы на действительное числоx
-
get_transposed()
: возвращает транспонированную матрицу, саму матрицу не изменяет -
rank()
: возвращает ранг матрицы
Этот класс описывает операции для квадратных матриц, является наследником Matrix
. В будущем сделаю его неизменяемым.
-
конструктор: возвращает ошибку, если на входе не квадратный двумерный массив
-
compute_det()
: возвращает определитель матрицы -
get_minor(i, j)
: возвращает дополнительный минор для i-ой строки и j-ого столбца -
get_r(arr_i)
: возвращает матрицу у которой вычеркнуты все столбцы и строчки, индексы которых есть в массиве arr_i -
get_characteristic_polynomial()
: возвращает коэффициенты характеристического многочлена матрицы -
get_e(n)
: возвращает единичную матрицу n*n -
возведение в степень: поддерживаю возведение в целые степени, для отрицательных он считает степень обратной матрицы
-
get_cofactor_matrix()
: возвращает матрицу алгебраических дополнений -
get_adjugate_matrix()
: возвращает дополнительную (союзную) матрицу -
get_inverse_matrix()
: возвращает обратную матрицу