FindMinimum on a potentially Complex-valued function

*To*: mathgroup at smc.vnet.net*Subject*: [mg8719] FindMinimum on a potentially Complex-valued function*From*: Luci Ellis <elisha at dot.net.au>*Date*: Fri, 19 Sep 1997 02:48:00 -0400*Sender*: owner-wri-mathgroup at wolfram.com

Dear MathGroup, 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? 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. I was hoping to write a generalised function to minimise the log-likelihood function for any appropriate data vector, so I don't know what the "right" starting values are in any given case, though they are likely to be "small" (eg between -10 and 10). Failing this, if anyone has written a function to estimate the parameters of a GARCH model (which involves minimising this log-likelihood function), please let me know how you managed it! Please send any replies to my work address ellisl at rba.gov.au as well as my home address elisha at dot.net.au Thanks in anticipation, Luci Ellis. -------------- Luci Ellis: elisha at dot.net.au http://www.dot.net.au/~elisha