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