Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #7
0
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)
Beispiel #8
0
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)