interp_decomp#
- scipy.linalg.interpolative.interp_decomp(A, eps_or_k, rand=True, rng=None)[source]#
- Compute ID of a matrix. - An ID of a matrix A is a factorization defined by a rank k, a column index array idx, and interpolation coefficients proj such that: - numpy.dot(A[:,idx[:k]], proj) = A[:,idx[k:]] - The original matrix can then be reconstructed as: - numpy.hstack([A[:,idx[:k]], numpy.dot(A[:,idx[:k]], proj)] )[:,numpy.argsort(idx)] - or via the routine - reconstruct_matrix_from_id. This can equivalently be written as:- numpy.dot(A[:,idx[:k]], numpy.hstack([numpy.eye(k), proj]) )[:,np.argsort(idx)] - in terms of the skeleton and interpolation matrices: - B = A[:,idx[:k]] - and: - P = numpy.hstack([numpy.eye(k), proj])[:,np.argsort(idx)] - respectively. See also - reconstruct_interp_matrixand- reconstruct_skel_matrix.- The ID can be computed to any relative precision or rank (depending on the value of eps_or_k). If a precision is specified (eps_or_k < 1), then this function has the output signature: - k, idx, proj = interp_decomp(A, eps_or_k) - Otherwise, if a rank is specified (eps_or_k >= 1), then the output signature is: - idx, proj = interp_decomp(A, eps_or_k) - Parameters:
- Anumpy.ndarrayorscipy.sparse.linalg.LinearOperatorwith rmatvec
- Matrix to be factored 
- eps_or_kfloat or int
- Relative error (if - eps_or_k < 1) or rank (if- eps_or_k >= 1) of approximation.
- randbool, optional
- Whether to use random sampling if A is of type - numpy.ndarray(randomized algorithms are always used if A is of type- scipy.sparse.linalg.LinearOperator).
- rngnumpy.random.Generator, optional
- Pseudorandom number generator state. When rng is None, a new - numpy.random.Generatoris created using entropy from the operating system. Types other than- numpy.random.Generatorare passed to- numpy.random.default_rngto instantiate a- Generator. If- randis- False, the argument is ignored.
 
- A
- Returns:
- kint
- Rank required to achieve specified relative precision if - eps_or_k < 1.
- idxnumpy.ndarray
- Column index array. 
- projnumpy.ndarray
- Interpolation coefficients.