Thanks for the suggestions Olaf. I've carried them out. See below for the results and comments.
On 14 May 2010 10:50, Olaf Till <[email protected]> wrote: > On Fri, May 14, 2010 at 09:45:55AM +0100, Gary wrote: >> Hi Olaf, >> >> Thanks for responding so quickly. I'm sorry if I didn't make it clear >> in my previous message, but the script calls an external program and >> has a lot of code that handles that aspect of the procedure. In this >> script, the bounds are only sometimes violated. Unfortunately, I >> cannot supply you with a simple self-contained script that reproduces >> the error. I could post the entire script, but due to licensing issues >> I cannot post the external program. > > I suggest you insert into the script, just after the call to leasqr, a > check for what you call an error (violation of bounds?), interrupting > the script in case of that error: > > if (check_for_the_error_here) > keyboard; > endif Yes, by error I meant violation of bounds. There haven't been any errors. Sorry for the lose terminology. > >From the debugging prompt you'll get, check the values of all > arguments to leasqr and of all return-values of leasqr. Post all this > information to the list, together with the exact command line which > calls leasqr. > > Do you mean that the model function passed to leasqr calls an external > program which is restrictively licensed? This might make it impossible > to help. If possible, post the model function and information on any > global variables set for the model function. Unfortunately, yes, this is the case. The model function is not expressible in an analytical form. It is the result a numerical simulation. However, the program produces the correct output for the given input, even after violation of bounds. >> I have started rectifying the parameters before passing them to the >> external program. This allows the previously failing optimisation run >> to complete and seems to produce sensible results. Though I cannot say >> the optimisation is working correctly, > > A failing optimization does not necessarily mean that the optimizer is > buggy. I'm more interested in checking that bounds work correctly. By failing I was meaning the violation of bounds bug. Again, sorry for the poor choice of words. > Olaf > > ------------------------------------------------------------------------------ > > _______________________________________________ > Octave-dev mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/octave-dev > === DEBUGGING === call to leasqr: [f,p,kvg,iter,corp,covp,covr,stdresid,Z,r2] = leasqr(expt_Vg_all, expt_data, pin, 'F', stol, niter, wt, dp, dFdp, options); The input and return parameters after violation of bounds are in the attached file, 21_debug.ods.tar.gz. I have a movie of the optimisation run that displays some of the fitting parameters, the experimental data and the fitted data at each call to the fitting function, but it's too big to post here. If you'd like to see it, I could send it directly to you if you let me know your email address. The movie shows some parameters within the bounds, outwith the bounds and being bounded. Thanks for your help, Gary
21_debug.ods.tar.gz
Description: GNU Zip compressed data
------------------------------------------------------------------------------
_______________________________________________ Octave-dev mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/octave-dev
