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=bAx=b for some matrix AA, known vector bb and unknown vector xx. 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

This website is a community effort covering a lot of ever-changing information. It will therefore never be complete or without error. If you see something wrong, or have something to contribute, please see the "Contributing" section in the github repository.

Last modified: May 03, 2024. Built with Franklin.jl