Iterative refinement using splitting methods