Finite Difference Methods and Numerical Discretization Techniques