What kind of optimization algorithm?
이전 댓글 표시
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?
답변 (2개)
Babak
2013년 3월 20일
0 개 추천
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
Babak
2013년 3월 20일
and if you want to find the min or max of the function itself (not the data points) after finding the min or max, do an interpolation or extrapolation to find the right point of the function itself that the min or max happens
Mahdi
2013년 3월 20일
Babak
2013년 3월 20일
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
Sean de Wolski
2013년 3월 20일
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
카테고리
도움말 센터 및 File Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!