I've been raising this issue recently on several OO forums and have been invited to post this topic here.

I have been using Excel's Solver add in to optimize/minimize functions and am surprised that there is nothing like this for OO Calc. Specifically I am minimizing a function that represents the "residual error" or sums of squares of errors (SSE) between a set of data and a model for it consisting of several (four in my case) parameters. The model is non-linear, so an iterative routine that can improve/minimize the SSE is required.

I have found and tried several solver type add ins for Calc, all of which claimed to be "non linear solvers" only to find that the non-linear implementation was either missing, or was for systems of equations with constraints (the latter is often termed "non-linear programming"). I did eventually happen upon a post from a few years ago by someone named Robert ??? which is an OO Basic implementation of the Nelder-Mead Simplex algorithm. This works well, but must be called as a function. I would like to see something similar implemented as an extension, which would be straightforward for people to use.

I have experience with the Nelder Mead Simplex, and have written a simulated annealing optimization program in C++ and published a paper in which it was used for some very non-linear data fitting. Either of these could be implemented, although the simulated annealing routine is probably more complicated that what is really needed. If one or more people would be willing to help develop the parameter dialog interface and can do the bindings required to tie in the C++ code to open office so it can become an extension I would be very willing to work with them. I've read online about the process and it seems to be rather daunting to me. I am really just a scientist/engineer and I cannot pull off the OO interface on my own... I am used to writing for linux (Cygwin) and compiling under gcc.

Anyone want to help with this or form a project team on Sourceforge or similar?

-Charlie

Reply via email to