Quick Start

Example 1 — Solve a general real linear system:

import numpy as np
from linearsystems import lslrg

a = np.array([[4.0, 1.0], [1.0, 3.0]])
b = np.array([1.0, 2.0])
result = lslrg(a, b)
print(result.x)        # solution vector
print(result.residual) # ‖Ax − b‖

Example 2 — Solve an SPD system via Cholesky:

import numpy as np
from linearsystems import lslsf

a = np.array([[4.0, 2.0, 0.0],
              [2.0, 3.0, 1.0],
              [0.0, 1.0, 2.0]])
b = np.array([1.0, 2.0, 3.0])
result = lslsf(a, b)
print(result.x)

Example 3 — Least-squares fit:

import numpy as np
from linearsystems import lsqrr

# 10 equations, 2 unknowns
a = np.column_stack([np.ones(10), np.linspace(0, 1, 10)])
b = 2.0 + 3.0 * np.linspace(0, 1, 10) + 0.01 * np.random.randn(10)
x, residuals, rank, sv = lsqrr(a, b)
print(x)   # approx [2.0, 3.0]

Example 4 — Iterative (CG) solver:

import numpy as np
from linearsystems import lsitcg

n = 20
a = 2*np.eye(n) - np.diag(np.ones(n-1), 1) - np.diag(np.ones(n-1), -1)
b = np.ones(n)
result = lsitcg(a, b, tol=1e-12)
print(result.success)  # True
print(result.n_iter)   # number of CG iterations