This document is a thesis that proposes a robust and efficient iterative method for numerically solving the Helmholtz equation. It introduces the Helmholtz equation and boundary conditions. It describes using finite differences and iterative Krylov subspace methods like GMRES to solve the resulting linear systems. A key contribution is a shifted Laplace preconditioner that improves the convergence of GMRES. The thesis analyzes the preconditioner theoretically and applies multigrid methods to efficiently solve the preconditioning system. Numerical experiments on 1D, 2D and 3D model problems demonstrate the effectiveness of the approach.