det#
- scipy.linalg.det(a, overwrite_a=False, check_finite=True)[источник]#
Вычислить определитель матрицы
Определитель - это скаляр, который является функцией коэффициентов связанной квадратной матрицы. Значение определителя равно нулю для вырожденных матриц.
- Параметры:
- a(…, M, M) array_like
Входной массив для вычисления определителей.
- overwrite_abool, необязательно
Разрешить перезапись данных в a (может повысить производительность).
- check_finitebool, необязательно
Проверять ли, что входная матрица содержит только конечные числа. Отключение может повысить производительность, но может привести к проблемам (сбоям, незавершению) если входные данные содержат бесконечности или NaN.
- Возвращает:
- det(…) float или complex
Определитель a. Для сложенных массивов скаляр возвращается для каждого среза (m, m) в последних двух измерениях входных данных. Например, входные данные формы (p, q, m, m) дадут результат формы (p, q). Если все размерности равны 1, скаляр возвращается независимо от ndim.
Примечания
Определитель вычисляется путём выполнения LU-факторизации входа с подпрограммой LAPACK 'getrf', а затем вычисления произведения диагональных элементов U-фактора.
Даже если входной массив имеет одинарную точность (float32 или complex64), результат будет возвращён в двойной точности (float64 или complex128), чтобы предотвратить переполнение.
Примеры
>>> import numpy as np >>> from scipy import linalg >>> a = np.array([[1,2,3], [4,5,6], [7,8,9]]) # A singular matrix >>> linalg.det(a) 0.0 >>> b = np.array([[0,2,3], [4,5,6], [7,8,9]]) >>> linalg.det(b) 3.0 >>> # An array with the shape (3, 2, 2, 2) >>> c = np.array([[[[1., 2.], [3., 4.]], ... [[5., 6.], [7., 8.]]], ... [[[9., 10.], [11., 12.]], ... [[13., 14.], [15., 16.]]], ... [[[17., 18.], [19., 20.]], ... [[21., 22.], [23., 24.]]]]) >>> linalg.det(c) # The resulting shape is (3, 2) array([[-2., -2.], [-2., -2.], [-2., -2.]]) >>> linalg.det(c[0, 0]) # Confirm the (0, 0) slice, [[1, 2], [3, 4]] -2.0