Search code examples
mathequationgslnonlinear-functionsceres-solver

Can I solve a system of non-linear equations with Google Ceres Solver?


Google Ceres Solver solves robustified non-linear bounds constrained least squares problems.

Can I use a non-linear least squares solver to find the solutions of a system of non-linear equations?

From Wikipedia: "The method of least squares is a standard approach to the approximate solution of overdetermined systems, i.e., sets of equations in which there are more equations than unknowns."

Now, since a "normal" system of non-linear equations should be in the set of overdetermined systems (in the degenerate case where the number of unknowns is equal to the number of equations), can I deduce I can use a non-linear least squares solver for this purpose?

This question comes from the fact that I have to use the Google Ceres Solver library that only seems to provide methods for non-linear least squares.

References:
Ceres Solver tutorial
Non-linear least squares solver to solve a system of non-linear equations?


Solution

  • Yes. Just formulate it as if you want to minimize the sum squared norm of each equation. Of course there are always issues of convergence to a local minimum of the resulting optimization problem, but the only way to get around it is to come up with a decent initial guess of the solution.