On Thu, Jul 23, 2009 at 5:30 PM, Jonathan Stickel<jjstic...@vcn.com> wrote: > Jaroslav Hajek wrote: >> >> On Wed, Jul 22, 2009 at 5:54 PM, Jonathan Stickel<jjstic...@vcn.com> >> wrote: >>> >>> I just checked in a small bug fix to the nelder_mead_min function >>> regarding some trouble with parsing the list or cell arguments. Someone >>> more familiar with the function might want to check that I didn't >>> break anything. I did check that the test script test_nelder_mead_min_1 >>> passes all tests. > > I found that my fix was not quite right. I have checked in another change. > >>> >>> Many of the minimization functions make use of lists in their argument >>> passing. This results in the warning >>> >>> warning: list objects are deprecated; use cell arrays instead >>> >>> It would be helpful if the authors of these functions could clean the >>> functions up to use exclusively cell arrays. >>> >>> One last note: I noticed that someone ('highegg') recently changed the >>> names of fminunc and fzero to fminunc_compat and fzero_compat. Why the >>> name change? Wouldn't Matlab compatibility be better achieved by using >>> exactly the same name used in Matlab? I use fminunc in some of work, >>> including the data smoothing functions I contributed to the data >>> smoothing package. >>> >> >> the change is due to the fact that fminunc and fzero are now in core >> Octave, so to avoid a name clash. >> I think Octave's fzero is more Matlab compatible than the one in >> OctaveForge, but otherwise roughly equivalent in functionality, so >> maybe fzero_compat can be dropped. fminunc_compat (former fminunc) is >> a mere wrapper to minimize. >> > > OK, good to know about fminunc and fzero in octave proper. I know that the > old fminunc was a wrapper for minimize, but I preferred the user interface > of fminunc. I seem to have found a bug for the new fminunc that I will > report on the bugs list. > > BTW, I find it confusing that optimization functions are split between > Octave and the octave-forge package. At one point, I thought there was a > plan to keep associated functions together, either all in Octave or in the > appropriate octave-forge package. I guess the split remains more > development oriented: polished functions make it to Octave where as rough > contributions remain in octave-forge. > >
Er, not really. Yes, the dev status is a factor; for instance, source must conform to Octave guidelines. However, it's also about what is more and what is less common. For instance, you have linear algebra in the core, but you also have other advanced linear algebra in packages. It's the same with optimization; I don't see what's confusing on that. My intent was to bring to core Octave the 1D equation solver / optimizer (fzero / fminbnd) and the local unconstrained solver/optimizer (fsolve / fminunc). These both use established techniques - bracketing + inverse interpolation in 1D, and local Newton/BFGS iterations with trust-region step limiting and factorized updating (Broyden/BFGS). There's a lot of similarity between the fsolve and fminunc code. Both are designed for small-to-medium-size problems (they use full matrices), and are local iterative methods. Starting from a sufficiently good initial guess, with a smooth, reasonably behaved problem, these methods will probably work well. The optim package, on the contrary, should provide a variety of other methods, for expert usage and more difficult problems, with bound/linear/equality/inequality constrants, noisy functions, etc. It is believed amongst numerical analysts that there is no single best method, so there's no problem if optim contains competing methods. I encourage you to use the fminunc from core if local unconstrained search is enough for your purposes. So far it didn't get much testing, so don't be too surprised if problems arise, but I hope it will improve over time, when real usage is seen. regards -- RNDr. Jaroslav Hajek computing expert & GNU Octave developer Aeronautical Research and Test Institute (VZLU) Prague, Czech Republic url: www.highegg.matfyz.cz ------------------------------------------------------------------------------ _______________________________________________ Octave-dev mailing list Octave-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/octave-dev