You are now following this Submission
- You will see updates in your followed content feed
- You may receive emails, depending on your communication preferences
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.
Cite As
Olivier Salvado (2026). fminsearch modifed for higher scale smooth function (https://uk.mathworks.com/matlabcentral/fileexchange/5157-fminsearch-modifed-for-higher-scale-smooth-function), MATLAB Central File Exchange. Retrieved .
Acknowledgements
Inspired: Chromatography Model Parameters Optimizer (EDM, LI)
General Information
- Version 1.0.0.0 (4.6 KB)
MATLAB Release Compatibility
- Compatible with any release
Platform Compatibility
- Windows
- macOS
- Linux
| Version | Published | Release Notes | Action |
|---|---|---|---|
| 1.0.0.0 |
