It is well known that free vibration of a taut string having mass per unit m(x) and frequency $$\omega$$ is governed by ordinary differential equation $$y^{\prime \prime }+\omega ^2m(x)y=0.$$ In this paper, first we discretize the differential equation by using Numerov’s method to obtain a matrix eigenvalue problem of the form $$-Au=\Lambda B M u$$ , where A and B are constant tridiagonal matrices and M is a diagonal matrix related to mass function m(x). In direct problem, for a given m(x), we approximate the first N eigenvalues of the string equation by making a new correction on the eigenvalues of matrix pair $$(-A,BM)$$ . Also we obtain the error order of corrected eigenvalues. For inverse problem, we propose an efficient algorithm for constructing unknown mass function m(x) by using given spectra by solving a nonlinear system. We solve the nonlinear system by using modified Newton’s method and a regularization technique. The convergence of Newton’s method is proved. Finally, we give some numerical examples to illustrate the efficiency of the proposed algorithm.