scipy.linalg.

invpascal#

scipy.linalg.invpascal(n, kind='symmetric', точный=True)[источник]#

Возвращает обратную матрицу Паскаля размера n x n.

Матрица Паскаля — это матрица, содержащая биномиальные коэффициенты как свои элементы.

Параметры:
nint

Размер создаваемой матрицы; то есть, результат - матрица n x n.

kindstr, optional

Должно быть одним из 'symmetric', 'lower' или 'upper'. По умолчанию 'symmetric'.

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

Если точный is True, результат является либо массивом типа numpy.int64 (если n <= 35) или объектный массив целых чисел Python. Если точный равно False, коэффициенты в матрице вычисляются с использованием scipy.special.comb с exact=False. Результатом будет массив с плавающей запятой, и для больших n, значения в массиве не будут точными коэффициентами.

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

Обратная матрица Паскаля.

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

pascal

Примечания

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

Ссылки

[2]

Коэн, А. М., «Обратная матрица Паскаля», Математический вестник, 59(408), стр. 111-112, 1975.

Примеры

>>> from scipy.linalg import invpascal, pascal
>>> invp = invpascal(5)
>>> invp
array([[  5, -10,  10,  -5,   1],
       [-10,  30, -35,  19,  -4],
       [ 10, -35,  46, -27,   6],
       [ -5,  19, -27,  17,  -4],
       [  1,  -4,   6,  -4,   1]])
>>> p = pascal(5)
>>> p.dot(invp)
array([[ 1.,  0.,  0.,  0.,  0.],
       [ 0.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.,  0.],
       [ 0.,  0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  0.,  1.]])

Пример использования kind и точный:

>>> invpascal(5, kind='lower', exact=False)
array([[ 1., -0.,  0., -0.,  0.],
       [-1.,  1., -0.,  0., -0.],
       [ 1., -2.,  1., -0.,  0.],
       [-1.,  3., -3.,  1., -0.],
       [ 1., -4.,  6., -4.,  1.]])