def test_adjoint_vectorarray_op_apply_inverse_lstsq(): np.random.seed(1234) O = np.random.random((3, 5)) op = VectorArrayOperator(NumpyVectorSpace.make_array(O), adjoint=True) V = op.range.random() U = op.apply_inverse(V, least_squares=True) v = V.to_numpy() u = np.linalg.lstsq(O, v.ravel())[0] assert np.all(almost_equal(U, U.space.from_numpy(u)))
def test_vectorarray_op_apply_inverse(): np.random.seed(1234) O = np.random.random((5, 5)) op = VectorArrayOperator(NumpyVectorSpace.make_array(O)) V = op.range.random() U = op.apply_inverse(V) v = V.to_numpy() u = np.linalg.solve(O.T, v.ravel()) assert np.all(almost_equal(U, U.space.from_numpy(u)))