Is there a special Matlab function existing to check feasibility of a Point (to a Optimization Problem)

4 views (last 30 days)
Hello, i have for example the following Problem
f1 = @(x) x(1)+x(2);
Aneq = [-1 0
0 -1
1 0
0 1];
bneq = [0; 0; 4; 3];
c = cell(1,1);
c{1} = @(x) (x(1)-2)^2 - 1 -x(2);
And i want to test if a specific Point is feasible, for example x = (0,0)?
Is there a better way existing than using infeas = infeasibility(constr,pt) for the nonlinear constraints and calculating Aneq*x=y and checking if y <= 0.

Accepted Answer

Matt J
Matt J on 30 Aug 2022
Edited: Matt J on 30 Aug 2022
If your problem is already in solver-based form (as is the case in your example), I wouldn't bother with infeasibility. I would just test the non-linear constraints directly:
function feas=testfeasible(x,c,Aneq,beq)
for i=1:numel(c)
feas=feas & all(c{i}(x)<=0);
This can obviously be generalized to include bounds and equality constraints, though equality constraints will need to be tested with a tolerance.
If the problem is in problem-based form, you can first convert to solver-based form using prob2struct and then proceed as above.

More Answers (1)

John D'Errico
John D'Errico on 30 Aug 2022
Why should there be a better way?
That is, does your check completely answer the question, in a simple way, as efficiently as possible? Is there a reason why some other scheme would even apply?
A simple rule of computing: If you have a solution that works, is efficient, does everything you need, then spending time looking for ANOTHER solution is a waste of programming time. Instead, spend that energy in improving your code in ways that do improve it.


Find more on Linear Programming and Mixed-Integer Linear Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by