We often talk about solving a linear system
The linear operators described on this page are ways of describing the matrix lineax.MatrixLinearOperator][], which simply holds the matrix
Meanwhile if lineax.DiagonalLinearOperator][]: for efficiency this only stores the diagonal of
Or, perhaps we only have a function lineax.MatrixLinearOperator][], that may be very memory intensive. Instead, we may prefer to use [lineax.FunctionLinearOperator][]. Many linear solvers (e.g. [lineax.CG][]) only use matrix-vector products, and this means we can avoid ever needing to materialise the whole matrix
??? abstract "lineax.AbstractLinearOperator"
::: lineax.AbstractLinearOperator
options:
members:
- mv
- as_matrix
- transpose
- H
- in_structure
- out_structure
- in_size
- out_size
::: lineax.MatrixLinearOperator options: members: - init
::: lineax.PyTreeLinearOperator options: members: - init
::: lineax.JacobianLinearOperator options: members: - init
::: lineax.FunctionLinearOperator options: members: - init
These operators represent matrices with a particular structure, storing only the nonzero entries (for memory efficiency) and using a specialised matrix-vector product (for speed).
::: lineax.IdentityLinearOperator options: members: - init
::: lineax.DiagonalLinearOperator options: members: - init
::: lineax.TridiagonalLinearOperator options: members: - init
These operators wrap another operator to attach extra information.
::: lineax.TaggedLinearOperator options: members: - init