Splitting Algorithms For Convex Optimization And Applications To Sparse Matrix Factorization