fminsearch modifed for higher scale smooth function
This modification of fminsearch solves an issue with this simplex implementation when the function to minimize is smooth at a high scale, but rough at a low scale, i.e. when plotted with the parameters axis being (?10,10), there is a clear global extremum, but when zoomed (-0.1,0.1), the function is very rough an there are many local extremum.
The regular fminsearch initializes the first trials very close to each other, which might not be suitable for all the cases. The modification includes:
% (1) the DiffMinChange option is taken into account to limit contraction
% (2) two new options are added to initialize the starting trials (usual_delta,zero_term_delta).
% (3) there is a possibility to display patches for the cases with 2 parameters (might work for 3 parameters)
Example of calling:
options = optimset('Display','iter',...
'Diagnostics','on',...
'TolFun',0.1,...
'DiffMinChange',1,...
'DiffMaxChange',20,...
'LargeScale','off');
options.zero_term_delta = 3;
options.usual_delta = -3; % when negative, uses absolute, in this case the first % patch is {(3,0),(0,3),(0,0)} for two parameters
P = fminsearchOS(@funregister,P0,options,P1,P2)
Note: in some cases it gets stuck between contraction and shrinkage (a better modifications is probably needed), but the max number of evaluation stops it eventually.
引用格式
Olivier Salvado (2024). fminsearch modifed for higher scale smooth function (https://www.mathworks.com/matlabcentral/fileexchange/5157-fminsearch-modifed-for-higher-scale-smooth-function), MATLAB Central File Exchange. 检索来源 .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!版本 | 已发布 | 发行说明 | |
---|---|---|---|
1.0.0.0 |