Preconditioning methods : analysis and applications