def test_cholesky(rng): m, n = 100, 100 A = rng.normal(size=(m, n)) b = rng.normal(size=(m, )) x0, _, _, _ = np.linalg.lstsq(A, b) x1, _ = cholesky(A, b, 0, transpose=False) x2, _ = cholesky(A, b, 0, transpose=True) assert np.allclose(x0, x1) assert np.allclose(x0, x2)
def test_conjgrad(rng): A, b = get_system(1000, 100, 2, rng=rng) sigma = 0.1 * A.max() x0, _ = cholesky(A, b, sigma) x1, _ = conjgrad(A, b, sigma, tol=1e-3) x2, _ = block_conjgrad(A, b, sigma, tol=1e-3) assert np.allclose(x0, x1, atol=1e-6, rtol=1e-3) assert np.allclose(x0, x2, atol=1e-6, rtol=1e-3)
def test_scipy_solvers(rng): A, b = get_system(1000, 100, 2, rng=rng) sigma = 0.1 * A.max() x0, _ = cholesky(A, b, sigma) x1, _ = conjgrad_scipy(A, b, sigma) x2, _ = lsmr_scipy(A, b, sigma) assert np.allclose(x0, x1, atol=2e-5, rtol=1e-3) assert np.allclose(x0, x2, atol=2e-5, rtol=1e-3)
def test_scipy_solvers(): rng = np.random.RandomState(4829) A, b = get_system(1000, 100, 2, rng=rng) sigma = 0.1 * A.max() x0, _ = cholesky(A, b, sigma) x1, _ = conjgrad_scipy(A, b, sigma) x2, _ = lsmr_scipy(A, b, sigma) assert np.allclose(x0, x1, atol=2e-5, rtol=1e-3) assert np.allclose(x0, x2, atol=2e-5, rtol=1e-3)
def test_scipy_solvers(rng): pytest.importorskip('scipy', minversion='0.11') # version for lsmr A, b = get_system(1000, 100, 2, rng=rng) sigma = 0.1 * A.max() x0, _ = cholesky(A, b, sigma) x1, _ = conjgrad_scipy(A, b, sigma) x2, _ = lsmr_scipy(A, b, sigma) assert np.allclose(x0, x1, atol=2e-5, rtol=1e-3) assert np.allclose(x0, x2, atol=2e-5, rtol=1e-3)