Finding optimum in nonlinear regression (with only one global optimum)
gradient descent method (use gradient) --- good to far away from equilibrium
Gauss-Newton method (use intersection between y=0 and tangential line) --- good to close to equilibrium
Levenberg-Marquardt (Combination between method 1. and 2.) --- there is a control parameter which called lambda, limiting values reproduce method 1 or 2., There are many libraries, and you can just use them not writing the code.
Finding optimum in nonlinear regression (with only multiple optima)
use multiple initial conditions
Markov chain Monte Carlo method --- In general (based on experience), MCMC is faster than gradient descent method when the number of parameters greater than 5.
Genetic algorithm
DiRect (searching grid and increase resolution, the condition for searching is min(S/V) where S is the objective function and V is volume of parameter space) --- for bounded parameter range