scipy.linalg.

invhilbert#

scipy.linalg.invhilbert(n, точный=False)[источник]#

Вычисление обратной матрицы Гильберта порядка n.

Элементы обратной матрицы Гильберта являются целыми числами. Когда n превышает 14, некоторые элементы обратной матрицы превышают верхний предел 64-битных целых чисел. The точный аргумент предоставляет два варианта обработки этих больших целых чисел.

Параметры:
nint

Порядок матрицы Гильберта.

точныйbool, необязательно

Если False, тип данных возвращаемого массива — np.float64, и массив является приближением обратной матрицы. Если True, массив является точным целочисленным обратным массивом. Для представления точной обратной матрицы при n > 14 возвращаемый массив является объектным массивом длинных целых чисел. Для n <= 14 точная обратная матрица возвращается как массив с типом данных np.int64.

Возвращает:
invh(n, n) ndarray

Тип данных массива — np.float64, если точный равно False. Если точный если True, тип данных будет либо np.int64 (для n <= 14), либо object (для n > 14). В последнем случае объекты в массиве будут длинными целыми числами.

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

hilbert

Создать матрицу Гильберта.

Примечания

Добавлено в версии 0.10.0.

Примеры

>>> from scipy.linalg import invhilbert
>>> invhilbert(4)
array([[   16.,  -120.,   240.,  -140.],
       [ -120.,  1200., -2700.,  1680.],
       [  240., -2700.,  6480., -4200.],
       [ -140.,  1680., -4200.,  2800.]])
>>> invhilbert(4, exact=True)
array([[   16,  -120,   240,  -140],
       [ -120,  1200, -2700,  1680],
       [  240, -2700,  6480, -4200],
       [ -140,  1680, -4200,  2800]], dtype=int64)
>>> invhilbert(16)[7,7]
4.2475099528537506e+19
>>> invhilbert(16, exact=True)[7,7]
42475099528537378560