Backslash for solving linear systems

For a square matrix \(A\), the command A\b is mathematically equivalent to \(A^{-1}b\). This command is not part of the core Julia, though, so it has to be explicitly loaded before the first use in a session.

using LinearAlgebra
A = [1 0 -1; 2 2 1; -1 -3 0]
3×3 Array{Int64,2}:
  1   0  -1
  2   2   1
 -1  -3   0
b = [1,2,3]
3-element Array{Int64,1}:
 1
 2
 3
x = A\b
3-element Array{Float64,1}:
  2.1428571428571432
 -1.7142857142857144
  1.1428571428571428

One way to check the answer is to compute a quantity known as the residual. It is (hopefully) close to machine precision, scaled by the size of the entries of the data.

residual = b - A*x
3-element Array{Float64,1}:
 -4.440892098500626e-16
 -4.440892098500626e-16
  0.0

If the matrix \(A\) is singular, you may get an error (“exception” in Julia-speak).

A = [0 1; 0 0];
b = [1,-1];
# x = A\b causes LAPACKException

It’s not exactly user-friendly here. Moreover, detecting singularity is a lot like checking whether two floating point numbers are exactly equal: because of roundoff, it could be missed. We’re headed toward a more robust way to fully describe the situation.