fmincon fails when I increase the lower and upper bounds

3 次查看(过去 30 天)
Hi,
I am running an optimisation routine with two variables. The solution converges to an optimal value when I use a very small range for my second variable but when I increase the bounds the solver fails saying, ''the size of the current step is less than the value of the step size tolerance but constraints are not satisfied to within the value of the constraint tolerance." However, it converged with the same options and step size tolerance when the bounds were small. Can someone explain the reason for this error and how to solve this?
Thanks.

回答(1 个)

Nipun
Nipun 2024-4-17
Hi Gekkouga,
I understand that you are facing an "infeasible solution" error while using the "fmincon" function in MATLAB.
Based on the shared information, the solver converges to a feasible solution for a specific lower and upper bound. However, as the bounds are increased, the solver is unable to provide with a solution.
"fmincon" is a gradient based solver based on the bounds provided. When changing the bounds, the gradient range may change affecting the solution. Since the bounds are increased, I assume that both lower and upper bound values are increased.
On increasing the lower bound, some range of the initial bound will be skipped. It may happen that the solution point lies in this skipped bound region for a specific set of equations and constraints.
Without knowing the equations and constraints, it is not possible to comment exactly on the cause of this error.
Hope this helps.
Regards,
Nipun

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

产品


版本

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by