finite difference step size value in fmincon
56 views (last 30 days)
Show older comments
Hi
I'm using fmincon to solve an optimization problem.
I have question regarding step size in fmincon. When I use finite difference step size (ds) of the magnitude 1e-03, design variable (x) changes from x to x+ds.
But when I use step size (ds) of the magnitude 1, design varible(x) changes from x to 2x or when ds = 2, design variable changes from x to 3x.
Because of this very large change in design variables, the solver exceeds the upper bound (ub) and the solver tries to adjust the bounds which leads to errors.
Why is this happening?
TIA...
3 Comments
Hainan Wang
on 10 Apr 2021
Hi, Mario
I am curious for the equation in the document:
delta = v.*sign′(x).*max(abs(x),TypicalX);
What does v, x, and TypicalX mean?
Please enlight me, thank you!
Mario Malic
on 11 Apr 2021
v is the actual FiniteDifferenceStepSize scalar, or vector, if you would like to set the step size for each of your variables.
x is the value of your optimization variable(s) at current iteration
TypicalX is described well in the documentation.
Accepted Answer
Matt J
on 4 Aug 2020
Edited: Matt J
on 4 Aug 2020
You might try the sqp or interior point algorithm, instead of whatever fmincon algorithm setting you are currently using. According to the documentation, the sqp algorithm in particular will take finite differencing steps that respect bounds
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!