scipy.linalg.invpascal

scipy.linalg.invpascal(n, kind='symmetric', exact=True)[源代码]

返回n x n Pascal矩阵的逆。

帕斯卡矩阵是包含二项式系数作为其元素的矩阵。

参数
n集成

要创建的矩阵的大小;即,结果为n x n矩阵。

kind字符串,可选

必须是“对称”、“较低”或“较高”之一。默认值为“对称”。

exact布尔值,可选

如果 exact 为True,则结果为以下类型的数组 numpy.int64 (如果 n <=35)或Python整数的对象数组。如果 exact 为false,则矩阵中的系数是使用 scipy.special.comb 使用 exact=False 。结果将是一个浮点数组,对于大型 n ,则数组中的值将不是精确的系数。

退货
invp(n,n)ndarray

帕斯卡矩阵的逆。

参见

pascal

注意事项

0.16.0 新版功能.

参考文献

1

“帕斯卡矩阵”,https://en.wikipedia.org/wiki/Pascal_matrix

2

科恩,A.M.,“帕斯卡矩阵的逆”,“数学公报”,第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.]])

的用法示例 kindexact

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