Linear Problems


Defines a linear system problem. Documentation Page:

Mathematical Specification of a Linear Problem

Concrete LinearProblem

To define a LinearProblem, you simply need to give the AbstractMatrix $A$ and an AbstractVector $b$ which defines the linear system:

\[Au = b\]

Matrix-Free LinearProblem

For matrix-free versions, the specification of the problem is given by an operator A(u,p,t) which computes A*u, or in-place as A(du,u,p,t). These are specified via the AbstractSciMLOperator interface. For more details, see the SciMLBase Documentation.

Note that matrix-free versions of LinearProblem definitions are not compatible with all solvers. To check a solver for compatibility, use the function xxxxx.

Problem Type


Optionally, an initial guess $u₀$ can be supplied which is used for iterative methods.


isinplace optionally sets whether the function is in-place or not, i.e. whether the solvers are allowed to mutate. By default this is true for AbstractMatrix, and for AbstractSciMLOperators it matches the choice of the operator definition.

Parameters are optional, and if not given, then a NullParameters() singleton will be used, which will throw nice errors if you try to index non-existent parameters. Any extra keyword arguments are passed on to the solvers.


  • A: The representation of the linear operator.
  • b: The right-hand side of the linear system.
  • p: The parameters for the problem. Defaults to NullParameters. Currently unused.
  • u0: The initial condition used by iterative solvers.
  • kwargs: The keyword arguments passed on to the solvers.