scipy.linalg.
invhilbert#
- scipy.linalg.invhilbert(n, exact=False)[source]#
计算 n 阶希尔伯特矩阵的逆矩阵。
希尔伯特矩阵的逆矩阵中的元素是整数。当 n 大于 14 时,逆矩阵中的某些元素超过 64 位整数的上限。 exact 参数提供了两种处理这些大整数的选项。
- 参数:
- nint
希尔伯特矩阵的阶数。
- exactbool,可选
如果为 False,则返回的数组的数据类型为 np.float64,并且数组是逆矩阵的近似值。如果为 True,则数组是精确的整数逆矩阵。为了表示 n > 14 时的精确逆矩阵,返回的数组是长整型对象的数组。对于 n <= 14,返回精确的逆矩阵,数据类型为 np.int64。
- 返回值:
- invh(n, n) ndarray
如果 exact 为 False,则数组的数据类型为 np.float64。如果 exact 为 True,则数据类型为 np.int64(对于 n <= 14)或 object(对于 n > 14)。在后一种情况下,数组中的对象将是长整数。
另请参阅
hilbert
创建希尔伯特矩阵。
备注
在版本 0.10.0 中添加。
示例
>>> from scipy.linalg import invhilbert >>> invhilbert(4) array([[ 16., -120., 240., -140.], [ -120., 1200., -2700., 1680.], [ 240., -2700., 6480., -4200.], [ -140., 1680., -4200., 2800.]]) >>> invhilbert(4, exact=True) array([[ 16, -120, 240, -140], [ -120, 1200, -2700, 1680], [ 240, -2700, 6480, -4200], [ -140, 1680, -4200, 2800]], dtype=int64) >>> invhilbert(16)[7,7] 4.2475099528537506e+19 >>> invhilbert(16, exact=True)[7,7] 42475099528537378560