# Is there any way to derive the analytic gradient of constraint function in "fmincon" or we have to input it manually ?

9 views (last 30 days)
Chantrea Lean on 27 May 2015
Commented: Walter Roberson on 28 May 2015
Dear sir,
i have worked on optimization problem using command fmincon,and i have to input the analytic gradient of constraint function manually so can we create other function for calling the analytic gradient from other sources?
as we have this problem:
c(1) = 1.5 + x(1) * x(2) - x(1) - x(2); % Inequality constraints
c(2) = -x(1) * x(2)-10;
% No nonlinear equality constraints
ceq=[]; % Gradient of the constraints: if nargout > 2
DC= [x(2)-1, -x(2);
x(1)-1, -x(1)];
DCeq = [];
end
for the analytic gradient of constraint function DC.so can we call that value from other function without input manually like this?
Best Regards!

Alan Weiss on 27 May 2015
I am not sure what you are asking. If you would like MATLAB to calculate gradients for you, and you have Symbolic Math Toolbox, then you can use the techniques of this example using function files, or this example using function handles.
Alan Weiss
MATLAB mathematical toolbox documentation
##### 3 CommentsShow 1 older commentHide 1 older comment
Alan Weiss on 28 May 2015
I am sorry, but I still have a hard time understanding what you are asking. If you are asking whether you can write a program to calculate your constraint function gradients, then the answer is yes, go ahead and write the function yourself. Sorry if this is not helpful, but it seems to me that is what you are asking.
If you are asking whether there is any built-in way to calculate gradients automatically, then the answer is yes, see my previous answer about using Symbolic Math Toolbox.
If you are asking something else, then I am afraid that we are not communicating well. Perhaps someone else might be able to understand and help you.
Alan Weiss
MATLAB mathematical toolbox documentation
Walter Roberson on 28 May 2015
Could you give an example of the inputs you do have, that you would like the constraint functions to be automatically written from?