Sam, thanks for the reply. I set now each f_i to a large number whenever its x_i is outside the [0,1] range, but still get the "iteration is not making progress towards solution" error when starting with (0.1,0.1,0.1) or (0.0,0.1,0.2). I suspect that I've made a very simple mistake somewhere :-)
The other method (below), with the embedded cubes, finds the solution. Illes 2012/10/30 FARKAS, Illes <[email protected]> > Thanks Juan, > > The equations are smooth (const, linear and quadratic terms on the > r.h.s.), so the best I can come up with right now is to iterate with the > following method. > > (A) Initialize cube size to (1,1,1) and cube center to (x1=0.5, x2=0.5, > x3=0.5) > (B) Compute the function (f1,f2,f3) in all equidistant 11 * 11 * 11 grid > points of the cube > (C) Find shortest (f1,f2,f3) vector and based on that decide if we're done > (D) If we're not yet done, then: > - center cube on the (x1,x2,x3) location of the shortest (f1,f2,f3) > vector > - reduce cube size to 60% > - goto (B) > > Do you think this makes sense? > > Thanks > Illes > -- > http://hal.elte.hu/fij > > > 2012/10/30 Juan Pablo Amorocho <[email protected]> > >> Hi Illes, >> As far as I know, you can't tell Newton to stay within a "region of >> interest" ( @help-gnu If I'm wrong please correct me). All you can do is to >> provide the solver with a reasonable starting point. You could also take a >> look at your function around that region of interest, and see if it behaves >> nasty. Maybe this could help: >> >> http://en.wikipedia.org/wiki/Newton_iteration#Practical_considerations >> >> - Juan Pablo >> >> On Oct 30, 2012, at 6:40 AM, "FARKAS, Illes" <[email protected]> wrote: >> >> > 2012/10/29 FARKAS, Illes <[email protected]> >> > >> >> 2012/10/28 Rhys Ulerich <[email protected]> >> >> >> >>>> Can you please suggest a fast GSL method / algorithm to find the >> >>> solutions >> >>>> of a quadratic 3d system of algebraic equations? >> >>>> >> >>>> In the reduced form all 3 equations have zero on the l.h.s., and on >> the >> >>>> r.h.s. there are constant, linear and quadratic terms composed of x1, >> >>> x2, >> >>>> x3 (the three variables). >> >>> >> >>> Newton iteration, especially if you provide analytic Jacobian, should >> do >> >>> well here. There may be faster things that can return multiple >> solutions, >> >>> however. >> >>> >> >>> - Rhys >> >>> >> >> >> >> Thanks, I've chosen the hybrid algorithm< >> http://www.gnu.org/software/gsl/manual/html_node/Example-programs-for-Multidimensional-Root-finding.html >> > >> >> . >> > >> > >> > Hello, >> > >> > The 3 variables represent biochemical concentrations normalized to the >> > interval [0,1]. Can I tell the solver (or another solver) that it should >> > stay inside this interval? I keep receiving solutions outside this >> > interval, which are mathematically OK, but biochemically really >> nonsense. >> > Also, with some help I'm ready to read/write the source code. >> > >> > Many thanks! >> > >> > Illes >> >> > > > > > -- http://hal.elte.hu/fij
