Re: FindMinimum on a potentially Complex-valued function

*To*: mathgroup at smc.vnet.net*Subject*: [mg8783] Re: FindMinimum on a potentially Complex-valued function*From*: Paul Abbott <paul at physics.uwa.edu.au>*Date*: Thu, 25 Sep 1997 12:26:17 -0400*Organization*: University of Western Australia*Sender*: owner-wri-mathgroup at wolfram.com

Luci Ellis wrote: > I have recently written a function that involves minimizing a > log-likelihood function. The function to be minimised is the log of an ugly > high-order polynomial in three variables. > > It works as expected for some data, but for other data sets, the > FindMinimum function ends up going to parameters that give complex-number > values of the objective function, and I get an error. (This also happens in > Gauss so it's not just a Mathematica problem). > > Is there some way of telling the FindMinimum function that if it hits > parameter values that give complex-valued results, it should move to some > other initial guesses for the FindMinimum and try again? FindMinumum has a 4 parameter calling-sequence, FindMinimum[f,{x,xstart,xmin,xmax}] which stops searching if x gets outside the range {xmin, xmax}. > eg, something like: If[FindMinimum[expr,{a,a0},{b,b0}]==Message[whatever > the name of the message that comes up > is],FindMinimum[expr,{a,a0+1},{b,b0+1}],FindMinimum[expr,{a,a0},{b,b0}]] > > And presumably put it in a While Loop, to keep progressively trying > starting values until it stops falling off the real line. Can you not modify expr so that it includes a Throw and use an enclosing Catch? See section 2.5.9 of the Mathematica book. Cheers, Paul ____________________________________________________________________ Paul Abbott Phone: +61-8-9380-2734 Department of Physics Fax: +61-8-9380-1014 The University of Western Australia Nedlands WA 6907 mailto:paul at physics.uwa.edu.au AUSTRALIA http://www.pd.uwa.edu.au/~paul God IS a weakly left-handed dice player ____________________________________________________________________