scipy.linalg.

invpascal#

scipy.linalg.invpascal(n, kind='symmetric', exact=True)[原始碼]#

傳回 n x n Pascal 矩陣的反矩陣。

Pascal 矩陣是一個以二項式係數作為元素的矩陣。

參數:
n整數

要建立的矩陣大小;也就是說,結果會是一個 n x n 矩陣。

kind字串,選填

必須是 ‘symmetric’、‘lower’ 或 ‘upper’ 其中之一。預設值為 ‘symmetric’。

exact布林值,選填

如果 exact 為 True,則結果會是 numpy.int64 類型的陣列 (如果 n <= 35) 或是 Python 整數的物件陣列。如果 exact 為 False,則矩陣中的係數會使用 scipy.special.combexact=False 計算。結果會是一個浮點數陣列,且對於大的 n,陣列中的值不會是精確的係數。

傳回:
invp(n, n) ndarray

Pascal 矩陣的反矩陣。

另請參閱

pascal

註解

在版本 0.16.0 中新增。

參考文獻

[2]

Cohen, A. M., “The inverse of a Pascal matrix”,Mathematical Gazette,59(408),pp. 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 和 exact 的範例

>>> 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.]])