From: Charbel on 2 Mar 2010 06:44 Hi all, I'm trying to fit a function to experimental results. the solver i'm using is 'lsqcurvefit'.... The question is how can i be sure that the results is converging to a global solution (unique one) and not to a Local Minimum Solution. i've already checked the lsqcurvefit documentation, and i can say i understand now all the inputs and outputs required, but still, there's not a better way to identify if the answer corresponds to Local Minimum? my function contains linear and non linear parameters, and i'm using the R2006b i know with the recent versions of Matlab R2009b the optimisation toolbox is easier than my version, but my license correspond to R2006b. It's been now several months that i'm using this solver (lsqcurvefit), but now i'm not trusting the solution it's giving me!!!! Any sugggestion (another solver, minimise Tolerance, change in options, etc....) is appreciated... Best Regards
From: Alan Weiss on 2 Mar 2010 07:56 As explained in the documentation http://www.mathworks.com/access/helpdesk/help/toolbox/optim/ug/br44i40.html#brhkghv-65 you have no guarantees that your solution is a global minimum. Optimization Toolbox(TM) solvers attempt to find local minima. To give yourself some assurance that the solution you get is one you want, start lsqcurvefit from a number of different initial points. You should be able to bound the initial points, and then use a starting point x0 equal to a random point in the initial region. I mean, if L is your vector of lower bounds on the components of the vector x0, and U is the vector of upper bounds, take x0 = L + rand(size(U)).*(U-L); Alan Weiss MATLAB mathematical toolbox documentation Charbel wrote: > Hi all, > I'm trying to fit a function to experimental results. > the solver i'm using is 'lsqcurvefit'.... > The question is how can i be sure that the results is converging to a > global solution (unique one) and not to a Local Minimum Solution. > i've already checked the lsqcurvefit documentation, and i can say i > understand now all the inputs and outputs required, but still, there's > not a better way to identify if the answer corresponds to Local Minimum? > my function contains linear and non linear parameters, and i'm using the > R2006b > i know with the recent versions of Matlab R2009b the optimisation > toolbox is easier than my version, but my license correspond to R2006b. > > It's been now several months that i'm using this solver (lsqcurvefit), > but now i'm not trusting the solution it's giving me!!!! > > Any sugggestion (another solver, minimise Tolerance, change in options, > etc....) is appreciated... > > Best Regards
From: Charbel on 2 Mar 2010 10:05 > you have no guarantees that your solution is a global minimum. > Optimization Toolbox(TM) solvers attempt to find local minima. > > To give yourself some assurance that the solution you get is one you > want, start lsqcurvefit from a number of different initial points. You > should be able to bound the initial points, and then use a starting > point x0 equal to a random point in the initial region. I mean, if L is > your vector of lower bounds on the components of the vector x0, and U is > the vector of upper bounds, take > x0 = L + rand(size(U)).*(U-L); > > Alan Weiss > MATLAB mathematical toolbox documentation > Thank U Alan, i've already started this method, and i'm trying to identify the optimal solution. i think that's the only way... i reduced my model to 6 parameters instead of 8, but the fitting result i found is not well accurate as the experiemental curve. now i'm trying to get back to 8 parameters to see, if it will help by doing so. anyway, best Regards. CSA
|
Pages: 1 Prev: String argument is an unknown option Next: Mex File question |