scipy.linalg.interpolative.interp_decomp¶
- scipy.linalg.interpolative.interp_decomp(A, eps_or_k, rand=True)[源代码]¶
矩阵的计算ID。
矩阵的ID A 是由等级定义的因子分解 k ,列索引数组 idx 和插值系数 proj 以便::
numpy.dot(A[:,idx[:k]], proj) = A[:,idx[k:]]
然后可以将原始矩阵重建为::
numpy.hstack([A[:,idx[:k]], numpy.dot(A[:,idx[:k]], proj)] )[:,numpy.argsort(idx)]
或者通过例程
reconstruct_matrix_from_id
。它可以等效地写成::numpy.dot(A[:,idx[:k]], numpy.hstack([numpy.eye(k), proj]) )[:,np.argsort(idx)]
根据骨架和插值矩阵:
B = A[:,idx[:k]]
和:
P = numpy.hstack([numpy.eye(k), proj])[:,np.argsort(idx)]
分别为。另请参阅
reconstruct_interp_matrix
和reconstruct_skel_matrix
。ID可以计算为任何相对精度或等级(取决于 eps_or_k )。如果指定了精度 (eps_or_k < 1 ),则此函数具有输出签名::
k, idx, proj = interp_decomp(A, eps_or_k)
否则,如果指定了排名 (eps_or_k >= 1 ),则输出签名为::
idx, proj = interp_decomp(A, eps_or_k)
- 参数
- A :
numpy.ndarray
或scipy.sparse.linalg.LinearOperator
使用 rmatvec带有rmatvec的numpy.ndarray或scipy.parse.linalg.LinearOperator 要分解的矩阵
- eps_or_k浮点型或整型
相对误差(如果 eps_or_k < 1 )或排名(如果 eps_or_k >= 1 )的近似值。
- rand布尔值,可选
如果出现以下情况,是否使用随机采样 A 类型为
numpy.ndarray
(如果满足以下条件,则始终使用随机化算法 A 类型为scipy.sparse.linalg.LinearOperator
)。
- A :
- 退货
- k集成
如果满足以下条件,则需要排名才能达到指定的相对精度 eps_or_k < 1 。
- idx :
numpy.ndarray
numpy.ndarray
列索引数组。
- proj :
numpy.ndarray
numpy.ndarray
插值系数。