We implement a robust, globally convergent root search method for transcendental equations guaranteed to locate all complex roots within a specified search domain, based on Cauchy’s residue theorem. Although several implementations of the argument principle already exist, ours has several advantages: it allows singularities within the search domain and branch points are not fatal to the method. Furthermore, our implementation is simple and is written in MATLAB, fulfilling the need for an easily integrated implementation which can be readily modified to accommodate the many variations of the argument principle method, each of which is suited to a different application. We apply the method to the step index fiber dispersion relation, which has become topical due to the recent proliferation of high index contrast fibers. We also find modes with permittivity as the eigenvalue, catering to recent numerical methods that expand the radiation of sources using eigenmodes.Program summaryProgram Title: disproots (Dispersion Roots)Program Files doi:http://dx.doi.org/10.17632/32297nv5kk.1Licensing provisions: CC BY NC 3.0Programming language: MATLABNature of problem: Locating the complex roots of a general transcendental equation is often a non-trivial task. Iterative methods such as Newton’s method face numerous difficulties because the existence of roots with narrow and otherwise difficult attraction basins requires very accurate initial guesses to locate. Robust location of a complete set of roots thus becomes problematic. In optics, modes of a circular fiber are obtained from a transcendental equation, the dispersion relation. Several recent advancements in optics have necessitated its robust solution, including the fabrication of high index contrast fibers and analytical methods that expand radiating sources using eigenmodes.Solution method: We employ the argument principle method, a robust globally convergent method guaranteed to locate all roots in the specified search domain. It is based on the Cauchy residue theorem, and projects the locations of the roots on to a polynomial basis. Unlike previous implementations of the argument principle method [1,2] and related methods [3], our implementation has two features vital for solving the fiber dispersion relation. It allows isolated singularities within the search domain, and allows the search domain to approach arbitrarily close to branch points without experiencing failure. Furthermore, our simple MATLAB implementation is designed to be easily modified and integrated for a variety of applications.Additional comments including Restrictions and Unusual features: The specified search domain must be meromorphic, in other words be complex analytic containing at most isolated singularities. The locations and orders of these singularities must be known analytically, so we describe how they are determined for our fiber dispersion relation. Branch points and branch cuts must be avoided, though the search domain may be arbitrarily close. We exploit knowledge of our dispersion relation, specifically that roots are located close to singularities, to simplify the method. [1]L. C. Botten, M. S. Craig, R. C. McPhedran, Complex zeros of analytic functions, Comput. Phys. Commun. 29 (3) (1983) 245–259.[2]P. Kravanja, M. Van Barel, O. Ragos, M. N. Vrahatis, F. A. Zafiropoulos, ZEAL: A mathematical software package for computing zeros of analytic functions, Comput. Phys. Commun. 124 (2–3) (2000) 212–232.[3]C. J. Gillan, A. Schuchinsky, I. Spence, Computing zeros of analytic functions in the complex plane without using derivatives, Comput. Phys. Commun. 175 (4) (2006) 304–313.
Read full abstract