What kind of optimization algorithm?

3 visualizaciones (últimos 30 días)
Mahdi
Mahdi el 20 de Mzo. de 2013
Hi all I want to find maximum of a function that only could be calculated numerically (its gradient or hessian of aren't available). it is something like this: <https://www.dropbox.com/s/bjrrwnkx61o6nqk/untitled.jpg> and i don't mind finding global minimum or local ones (all local maximums are OK) what kind of algorithm do you suggest?

Respuestas (2)

Babak
Babak el 20 de Mzo. de 2013
Stick your numerical data in a vector and then call min(.) or max(.) of that vector. This gives you the global min or max.
  3 comentarios
Mahdi
Mahdi el 20 de Mzo. de 2013
Thank you for your answer. Your method works, but it is somehow amateur. I know the answer, but i'm supposed to use a numerical optimization method. I used Gradient Descent, but it didn't converge to the answer, just fluctuating because of the sharpness of the function. What do you think I could do?
Babak
Babak el 20 de Mzo. de 2013
if the function has ups and downs a lot (the gradient has lots of zeros), then you need to have more data points to be able to detect the min or max. After finding the min or max data point, do an interp1 (if data is 1D) or interp2 (if data is 2D),.. to find more data points near the obtained min or max point. Then run the same algorithm or finding the min or max data point again. Iterate on this procedure up to a point you reach a min acceptable error threshold or reach a min required precision

Iniciar sesión para comentar.


Sean de Wolski
Sean de Wolski el 20 de Mzo. de 2013
I recommend first trying fmincon() with the interior-point algorithm, If you know that you want a global optimization, then use patternsearch:
doc fmincon
doc optimoptions
doc patternsearch

Categorías

Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by