## FITFUN Fit a Function

Section: Optimization and Curve Fitting

### Usage

Fits `n` (non-linear) functions of `m` variables using least squares and the Levenberg-Marquardt algorithm. The general syntax for its usage is

      [xopt,yopt] = fitfun(fcn,xinit,y,weights,tol,params...)

Where `fcn` is the name of the function to be fit, `xinit` is the initial guess for the solution (required), `y` is the right hand side, i.e., the vector `y` such that:

the output `yopt` is the function `fcn` evaluated at `xopt`. The vector `weights` must be the same size as `y`, and contains the relative weight to assign to an error in each output value. Generally, the ith weight should reflect your confidence in the ith measurement. The parameter `tol` is the tolerance used for convergence. The function `fcn` must return a vector of the same size as `y`, and `params` are passed to `fcn` after the argument `x`, i.e.,

Note that both `x` and `y` (and the output of the function) must all be real variables. Complex variables are not handled yet.