MATLAB: When to use cost function or error function for fitting

patternsearch

I have look around different ways to fit. So when do you know you have to use the cost function: sum((realdata-fittingdata).^2) or error = realdata-fittingdata? For example, for lsqnonlin, you would use 'error' to find do the optimization. However, for fminsearch or patternsearch, you would use the 'cost function.'

Best Answer

I'm sorry that you don't find the documentation clear on this issue.
  • If you are using lsqnonlin or lsqcurvefit, then your objective function should return the vector of function values (I mean fittingdata - realdata in your vocabulary).
  • If you are using any other nonlinear optimizer, then your objective function should be the sum of squares of the function values.
For an example comparing these approaches, including efficiency of each solver, see Nonlinear Data-Fitting.
Alan Weiss
MATLAB mathematical toolbox documentation
Related Question