numpy.linalg.cond
numpy.linalg.cond(x, p=None)
Функция linalg.cond() вычисляет число обусловленности матрицы.
Данное число позволяет оценить насколько матрица далека от матрицы полного ранга или от невырожденности для квадратной матрицы. Число обусловленности может быть вычислено на основании одной из семи норм, которую можно указать в параметре p
.
-
- x - массив NumPy или подобный массиву объект.
- Это может быть как двумерный так многомерный массивй. В случае многомерных массивов, он рассматривается как массив матриц относительно его двух последних осей, и число обусловленности вычисляется для каждой такой подматрицы отдельно.
- p - {None, 1, -1, 2, -2, np.inf, -np.inf, ‘fro’} (необязательный параметр).
-
Позволяет указать необходимую при вычислении норму матрицы:
- None
- Установлен по умолчанию и вычисляет 2-ю норму, т.е. наибольшее сингулярное число матрицы;
- ‘fro’
- Норма Фробениуса;
- np.inf
- np.max(np.sum(np.abs(x), axis=1));
- -np.inf
- np.min(np.sum(np.abs(x), axis=1));
- 1
- np.max(np.sum(np.abs(x), axis=0));
- -1
- np.min(np.sum(np.abs(x), axis=0));
- 2
- Наибольшее сингулярное число матрицы;
- -2
- Наименьшее сингулярное число матрицы;
-
- результат - вещественное число или inf
- Число обусловленности матрицы, которое может быть равно inf.
Замечание
Чем ближе число обусловленности к 1, тем ближе матрица к невырожденности или полному рангу.
Смотрите так же:
norm
Примеры
>>> import numpy as np
>>> from numpy import linalg as LA
>>>
>>> a = [[1, 10], [100, 1001]]
>>>
>>> LA.cond(a)
1012102.000015063
>>>
>>> b = [[10, 3], [2, 11]]
>>>
>>> LA.cond(b)
1.6403882032022075
>>>
>>> c = [[1, 0], [0, 1]]
>>>
>>> LA.cond(c)
1.0