title: What is curve_fit's algorithm when fitting data to a post processed non-linear model?
body: <p>I am new to programming tools and Python, and have little knowledge on numerical calculation. I tried to understand the source code of Curve_fit, but it is too hard for me.</p>
  
  <p>If we are curve fitting a non-linear model straight away, by calculating the Hessian matrix, I guess we are able to find the critical point for all parameters, disregard to local or global, and minimum or maximum.</p>
  
  <p>However, if the function that contains the model is not able to be differentiated, how does the curve_fit actually compute the answer? </p>
  
  <p>I imagine the algorithm is finding the local minimum of Chi^2 in each interval of each parameter for all data point. If it is doing so, how big is the default interval, and what is the distance between each trial of parameter, and what is the maximum iteration? If it is like what I said, how does this iteration work among the multiple parameters? Are they tried each time as a set of individually?</p>
  
  <p>I want to understand the algorithm so that I can write a good function to apply curve_fit. Many dirty fix are exist in my function that I tried to fit to, different errors appears in different small changes so that I can't put my code here because I don't know the problem.</p>
  
  <p>Also, about the sigma input, if I don't have a clue of the y-error, what happen to the result if the default sigma is too big compare to the data value? Or, if the flexibility of the model doesn't affect much on the post process or the sigma is far less than the distance of the data to the function, what would happen?</p>