2
$\begingroup$

I am trying to solve a system of $9$ polynomial equations in $9$ unknowns over the non-negative reals.

Since the equations are quite large and I would like to use VBA, I prefer an algorithm that avoids partial derivatives. Hence, I tried to use the Nelder-Mead (downhill simplex) algorithm. Unfortunately, it doesn't converge. Before investigating my code, I would like to know if Nelder-Mead is even suitable for my task. If not, could you recommend a better algorithm?

P. S. I already solved the problem using Mathematica, so it is solvable but I would like to implement it in MS Excel.

$\endgroup$
5
  • 1
    $\begingroup$ scicomp.stackexchange.com $\endgroup$ Commented Sep 23, 2020 at 8:56
  • 1
    $\begingroup$ wolfram.com/products/applications/excel_link $\endgroup$ Commented Sep 23, 2020 at 9:11
  • $\begingroup$ Minimum-finding routines (wich is what Nelder-Mead/downhill-simplex is) are generally poorly suited to finding zeros of equation systems -- if you add the squares of all equations, you get many spurious local minima in addition to the global minimum corresponding to the zero (assuming your equations have a unique zero). $\endgroup$
    – gmvh
    Commented Sep 23, 2020 at 10:00
  • $\begingroup$ @gmvh ok that is probably the reason for the poor performance $\endgroup$
    – Zorg
    Commented Sep 23, 2020 at 10:56
  • $\begingroup$ Maybe just post (a link to) your system of equations?! Are you looking for all solution of just a single soluion? $\endgroup$ Commented Sep 23, 2020 at 11:20

1 Answer 1

2
$\begingroup$

Minimum-finding routines (which is what Nelder-Mead/downhill-simplex is) are generally poorly suited to finding zeros of equation systems — if you add the squares of all equations, you get many spurious local minima in addition to the global minimum corresponding to the zero (assuming your equations have a unique zero).

If you can't afford to evaluate the Jacobian, your best hope would appear to be Broyden's method.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .