A variety of nonlinear solvers can be found on this website. Some are ported from FORTRAN to C, e.g. from MINPACK, and others have been custom written for some special benefit -- generally performance.
This port of the Jenkins-Traub method to C++ language can also be downloaded from other pages on this web site. A link is included here for convenience.
This archive contains nonlinear Newton solvers for equations involving double precision numeric types. The archive includes a set of solvers with different features, a linear solver using Gaussian elimination and a header file. Here is a complex version.
This archive includes a nonlinear least squares solver used for parameter estimation. It takes a target function (model), a vector of parameter estimates, and returns a vector of parameters giving the best fit in a least squares sense. A complex version is also available.
Broyden's method is a robust alternative to Newton's method for solving systems of nonlinear equations. A C version of Broyden's method is available on this site. The 'zip' archive includes the Broyden solver, a supporting Gaussian elimination linear solver, and a simple test program.
A complex version of Broyden's method has also been created. Complex Broyden solvers appear to be fairly rare, as I have been unable to find any other versions elsewhere. This archive includes the complex Broyden solver, a supporting complex Gaussian elimination linear solver, and a simple test program.
This method for finding real and complex roots of real polynomials is particularly well suited for engineering applications. In those applications, the problem of roots with high multiplicity rarely arise. A simple DOS application for finding all roots of real polynomial based on Bairstow's method is available for download.