### Navigation

- index
- modules |
- modules |
- next |
- previous |
- SciPy v0.12 Reference Guide (DRAFT) »
- Sparse matrices (`scipy.sparse`) »
- scipy.sparse.linalg »

# scipy.sparse.linalg.LinearOperator

class `scipy.sparse.linalg.``LinearOperator`(shape, matvec, rmatvec=None, matmat=None, dtype=None)

  Common interface for performing matrix vector products

  Many iterative methods (e.g. cg, gmres) do not need to know the individual entries of a matrix to solve a linear system A*x=b. Such solvers only require the computation of matrix vector products, A*v where v is a dense vector. This class serves as an abstract interface between iterative solvers and matrix-like objects.

  Parameters : | shape : tuple Matrix dimensions (M,N) matvec : callable f(v) Returns returns A * v.
  Other Parameters:
  | rmatvec : callable f(v) Returns A^H * v, where A^H is the conjugate transpose of A. matmat : callable f(V) Returns A * V, where V is a dense matrix with dimensions (N,K). dtype : dtype Data type of the matrix.

  See also

  `aslinearoperator`
    Construct LinearOperators

  Notes

  The user-defined matvec() function must properly handle the case where v has shape (N,) as well as the (N,1) case. The shape of the return type is handled internally by LinearOperator.

  Examples

      >>> from scipy.sparse.linalg import LinearOperator
      >>> from scipy import *
      >>> def mv(v):
      ...     return array([ 2*v[0], 3*v[1]])
      ...
      >>> A = LinearOperator( (2,2), matvec=mv )
      >>> A
      <2x2 LinearOperator with unspecified dtype>
      >>> A.matvec( ones(2) )
      array([ 2.,  3.])
      >>> A * ones(2)
      array([ 2.,  3.])

  Methods

  `matmat`(X) | Matrix-matrix multiplication
  `matvec`(x) | Matrix-vector multiplication

### Navigation

- index
- modules |
- modules |
- next |
- previous |
- SciPy v0.12 Reference Guide (DRAFT) »
- Sparse matrices (`scipy.sparse`) »
- scipy.sparse.linalg »