numpy.linalg.cond#

linalg.условие(x, p=None)[источник]#

Вычислить число обусловленности матрицы.

Эта функция способна возвращать число обусловленности, используя одну из семи различных норм, в зависимости от значения p (см. параметры ниже).

Параметры:
x(..., M, N) array_like

Матрица, чье число обусловленности ищется.

p{None, 1, -1, 2, -2, inf, -inf, ‘fro’}, опционально

Порядок нормы, используемой при вычислении числа обусловленности:

p

норма для матриц

None

2-норма, вычисленная напрямую с использованием SVD

‘fro’

Норма Фробениуса

inf

max(sum(abs(x), axis=1))

-inf

min(sum(abs(x), axis=1))

1

max(sum(abs(x), axis=0))

-1

min(sum(abs(x), axis=0))

2

2-норма (наибольшее сингулярное значение)

-2

наименьшее сингулярное значение

inf означает numpy.inf объект, а норма Фробениуса является нормой корня из суммы квадратов.

Возвращает:
c{float, inf}

Число обусловленности матрицы. Может быть бесконечным.

Смотрите также

numpy.linalg.norm

Примечания

Число обусловленности x определяется как норма x умноженное на норму обратной матрицы x [1]; норма может быть обычной L2-нормой (корень из суммы квадратов) или одной из ряда других матричных норм.

Ссылки

[1]

G. Strang, Linear Algebra and Its Applications, Орландо, Флорида, Academic Press, Inc., 1980, стр. 285.

Примеры

>>> import numpy as np
>>> from numpy import linalg as LA
>>> a = np.array([[1, 0, -1], [0, 1, 0], [1, 0, 1]])
>>> a
array([[ 1,  0, -1],
       [ 0,  1,  0],
       [ 1,  0,  1]])
>>> LA.cond(a)
1.4142135623730951
>>> LA.cond(a, 'fro')
3.1622776601683795
>>> LA.cond(a, np.inf)
2.0
>>> LA.cond(a, -np.inf)
1.0
>>> LA.cond(a, 1)
2.0
>>> LA.cond(a, -1)
1.0
>>> LA.cond(a, 2)
1.4142135623730951
>>> LA.cond(a, -2)
0.70710678118654746 # may vary
>>> (min(LA.svd(a, compute_uv=False)) *
... min(LA.svd(LA.inv(a), compute_uv=False)))
0.70710678118654746 # may vary