Search code examples
pythonscipymathematical-optimization

scipy.optimize.leastq Minimize sum of least squares


I have a least squares minimization problem that has the following form

enter image description here

Where the parameters I want to optimize over are x and everything else is known.

scipy.optimize.least_squares has the following form:

scipy.optimize.least_squares(fun, x0)

where x0 is an initial condition and fun is a "Function which computes the vector of residuals"

After reading the documentation, I'm a little confused about what fun wants me to return.

If I do the summation inside fun, then I'm afraid that it would compute RHS, which is not equivalent to the LHS (...or is it, when it comes to minimization?)

enter image description here

Thanks for any assistance!


Solution

  • According to the documentation of scipy.optimize.least_squares, the argument fun is to provide the vector of residuals with which the process of minimization proceeds. It is possible to supply a scalar that is the result of summation of squared residuals, but it is also possible to supply a one-dimensional vector of shape (m,), where m is the number of dimensions of the residual function. Note that squaring and summation is not done in this instance as least_squares handles that detail on its own. Only the residuals as such must be supplied in this instance.