Build kaczmarz module


In [41]:
!./build-module.sh


running build_ext

In [42]:
import numpy
import kaczmarz
import math
from scipy.sparse import csr_matrix
from scipy.sparse import csc_matrix
from scipy.sparse import coo_matrix
import numpy as np
from scipy.sparse import rand
from scipy.linalg import norm

Setup an m x n sparse matrix


In [43]:
m, n, iters = 1000, 100, 10000
density = 0.7
np.random.seed(0)
A = rand(m, n, density=density, format="csr")
xopt = np.random.rand(n)
b = A.dot(xopt)

Kaczmarz method


In [44]:
x = np.zeros(n, dtype=np.double)
x_approx = kaczmarz.solve(A, x, b, iters)
print("l_2 error is {}".format(norm(x_approx - xopt)))


l_2 error is 1.0247489680895709e-12

Extended Kaczmarz


In [45]:
x = np.zeros(n, dtype=np.double)
x_approx = kaczmarz.solve(A, x, b, iters)
print("l_2 error is {}".format(norm(A.dot(x_approx - xopt))))


l_2 error is 9.207204772051176e-12

In [ ]: