How to see the current value of the variable in "fminsearch" optimization?
조회 수: 4 (최근 30일)
이전 댓글 표시
Hi,
I am running fminsearch command to find a minimum of a function. It is taking very long. However, I want to see the current value of the variable being serached. For example,"X=fminsearch(@fcn,init0,options)" showld display X in each interation. I looked into documentaiton of "optimset" but I couldn't find something helpful.
Advance, Thanks,
Ahmed.
댓글 수: 0
채택된 답변
Alan Weiss
2020년 7월 23일
You can do this using an Output Function. That example shows how to return the history of points, which is I think what you want.
Alan Weiss
MATLAB mathematical toolbox documentation
추가 답변 (1개)
Vladimir Sovkov
2020년 7월 23일
optimset('Display','iter');
From Matlab documentation:
'Display' — Level of display
'notify' (default) | 'final' | 'off' | 'none' | 'iter'
Level of display, specified as the comma-separated pair consisting of 'Display' and one of these values:
- 'notify' — Display output only if the function does not converge.
- 'final' — Display just the final output.
- 'off' or 'none' — Display no output.
- 'iter' — Display output at each iteration (not available for lsqnonneg).
Display is available for all optimization solvers.
Example: options = optimset('Display','iter')
Data Types: char | string
댓글 수: 2
Vladimir Sovkov
2020년 7월 23일
I do not think it is possible with fminsearch due to a (generally) multidimensional nature of the variable, which is hard to display in a compact form.
The things are easier with the 1D variable: this case you can use an alternative function such as fminbnd, which is able to output the X values at every next itereation via the same approach; besides, it must be faster in the 1D case.
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!