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.comb
與 exact=False 計算。結果會是一個浮點數陣列,且對於大的 n,陣列中的值不會是精確的係數。
- 傳回:
- invp(n, n) ndarray
Pascal 矩陣的反矩陣。
另請參閱
註解
在版本 0.16.0 中新增。
參考文獻
[1]“Pascal matrix”,https://en.wikipedia.org/wiki/Pascal_matrix
[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.]])