scipy.linalg.
invpascal#
- scipy.linalg.invpascal(n, kind='symmetric', exact=True)[源代码]#
返回 n x n 帕斯卡矩阵的逆。
帕斯卡矩阵是一个包含二项式系数作为其元素的矩阵。
- 参数:
- n整型
要创建矩阵的大小;即结果为 n x n 矩阵。
- kind字符串,可选
必须是 'symmetric'(对称),'lower'(下三角)或 'upper'(上三角)之一。默认为 'symmetric'。
- exact布尔型,可选
如果 exact 为 True,结果将是
numpy.int64
类型的数组(如果 n <= 35)或 Python 整数的对象数组。如果 exact 为 False,矩阵中的系数将使用scipy.special.comb
并设置 exact=False 进行计算。结果将是浮点数组,对于较大的 n,数组中的值将不是精确系数。
- 返回:
- invp(n, n) ndarray
帕斯卡矩阵的逆。
另请参阅
说明
在 0.16.0 版本中新增。
参考
[1][2]Cohen, A. M., “帕斯卡矩阵的逆”, 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.]])