Skip to content

Latest commit

 

History

History
21 lines (14 loc) · 1.64 KB

File metadata and controls

21 lines (14 loc) · 1.64 KB

+++ title = "Linear Solvers" +++

Linear Solvers

This section will be split into two categories; Numerical linear solvers, and symbolic linear solvers.

Numerical Linear Solvers

A linear problem is of the form $Ax=b$ for some matrix $A$, known vector $b$ and unknown vector $x$. This can be solved by A\b in base Julia, which is good enough in many cases. If you need more control over the solver algorithm, there are dedicated packages that provide such functionality.

The most complete one is LinearSolve.jl, which is part of the SciML ecosystem. It takes the role of a meta-package, and build on top of other packages that implement the actual algorithms. The benefit is that you can define the problem once, and then solve it with a number of different solvers by changing a keyword argument.

Specific solvers providing their own API's include Paradiso.jl, MKL.jl, BandedMatrices.jl, and more.

See https://discourse.julialang.org/t/solving-sparse-linear-systems-fast/83071/9 for a relevant discussion on the options for solving numerical linear equations.

Symbolic Linear Solvers

You can use Symbolics.jl to solve a single or multiple equations in one or more variables. See the documentation for solve_for for more detail.

You can also use SymPy.jl