An efficient algorithm for determining the dispersion characteristics of single-mode optical fibers