### Rustem Devletov (view profile)

on 27 Apr 2019
Latest activity Commented on by Rustem Devletov

on 27 Apr 2019

### Matt J (view profile)

I was assingned the following task. The goal is to supply gradient to objective function, but from another file. I don't understand how to implement this.
It should be smth like this:
file 1 - objective function
file 3 constraints
file 4 fmincon
Let's take as an example the rosenbrock function
file 1
% Calculate objective f
f = 100*(x(2) - x(1)^2)^2 + (1-x(1))^2;
if nargout > 1 % gradient required
g = [-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1));
200*(x(2)-x(1)^2)];
end
file 2
% here the gradient should go, but for now it's in the file 1. The problem is I have to supply it from this file into file 1
file 3
function [c,ceq] = unitdisk(x)
c = x(1)^2 + x(2)^2 - 1;
ceq = [ ];
file 4
x0 = [-1,2];
A = [];
b = [];
Aeq = [];
beq = [];
lb = [-2,-2];
ub = [2,2];
nonlcon = @unitdisk;
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
I'm feeling really really despondent. My deadline is upcoming soon and all my thesis paper will be based on fmincon. If I don't implement the code, I won't be able to proceed further.

on 27 Apr 2019
Edited by Matt J

### Matt J (view profile)

on 27 Apr 2019

The goal is to supply gradient to objective function, but from another file.
I find this requirement difficult to interpret, but here is my best guess:
file 1
% Calculate objective f
f = 100*(x(2) - x(1)^2)^2 + (1-x(1))^2;
if nargout > 1 % gradient required
end
file 2
g = [-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1));
200*(x(2)-x(1)^2)];
end

Rustem Devletov

### Rustem Devletov (view profile)

on 27 Apr 2019
Matt, thanks a lot. What if I don't want to specify gradient myself,but I want Matlab to find it?
Matt J

### Matt J (view profile)

on 27 Apr 2019
Then leave SpecifyObjectiveGradient at its default setting.
Rustem Devletov

### Rustem Devletov (view profile)

on 27 Apr 2019
Could you contact me please? I have a personal offer for you. My e-mail rustemdevletov@gmail.com My WhatsApp +79274235999