Matlab fmincon violates nonlinear inequality during search

Click For Summary
SUMMARY

The discussion centers on the issue of Matlab's fmincon function violating nonlinear inequality constraints during optimization. The user reports that despite using the "interior-point" algorithm and setting bounds, fmincon still searches beyond the defined region, leading to undefined objective function values and errors. A suggestion is made to tighten the bounds or reduce the search step size to mitigate this issue.

PREREQUISITES
  • Familiarity with Matlab optimization functions, specifically fmincon
  • Understanding of nonlinear inequality constraints in optimization
  • Knowledge of the "interior-point" algorithm and its behavior
  • Experience with setting bounds in optimization problems
NEXT STEPS
  • Investigate Matlab's fmincon documentation for handling nonlinear constraints
  • Learn about alternative optimization algorithms in Matlab, such as "sqp" or "trust-region-reflective"
  • Explore techniques for defining and implementing tighter bounds in optimization problems
  • Research methods for debugging and handling errors in Matlab optimization routines
USEFUL FOR

Matlab users, optimization researchers, and engineers dealing with nonlinear programming and seeking to improve the reliability of optimization solutions.

cindydodolo
Messages
1
Reaction score
0
Hi everyone,

I am trying to solve an optimization problem using fmincon in Matlab with a nonlinear inequality restriction. Part of the objective function is undefined if this nonlinear inequality is violated. I also set up lower and upper bounds for fmincon. I use the "interior-point" algorithms so that the bounds are never violated. However, fmincon does search beyond the region defined by the nonlinear inequality. When it does, the objective function is not defined and Matlab reports an error. Is there any way to restrict the search within the region defined by the nonlinear inequality restriction?

Thanks a lot!

Cindy
 
Physics news on Phys.org
I haven't used this function so I'm guessing, but it might be the case that your method's search radius is such that when it is very close to the bounds, it gets evaluated out of bounds as well. Try tightening your bounds a little or defining a smaller search step :smile:
 

Similar threads

Replies
9
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 93 ·
4
Replies
93
Views
8K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
579
  • · Replies 13 ·
Replies
13
Views
4K
  • · Replies 37 ·
2
Replies
37
Views
5K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 2 ·
Replies
2
Views
9K
  • · Replies 13 ·
Replies
13
Views
2K