How to compute cost function for fmincon?

6 views (last 30 days)
hinami
hinami on 21 Sep 2020
Edited: hinami on 21 Sep 2020
Hi all, I'm performing an optimization using fmincon as follows:
r=[0.22 9.94 0.08;
0.16 0.95 0.08;
0.07 0.87 0.08];
R = [0.49; 0.42; 0.19];
x = fmincon(@(x) norm(r*x-R)^2, ones(3,1)/3, [], [], ones(1,3), 1, zeros(3,1), []);
Here, I wan to use a cost function for this optimization.
where , and x is a vector of initial guess values.
Could you somebody help me with this?
  1 Comment
Matt J
Matt J on 21 Sep 2020
The cost function you have shown is vector-valued. Do you mean to minimize its Euclidean norm?

Sign in to comment.

Accepted Answer

Matt J
Matt J on 21 Sep 2020
Edited: Matt J on 21 Sep 2020
r=[0.22 9.94 0.08;
0.16 0.95 0.08;
0.07 0.87 0.08];
R = [0.49; 0.42; 0.19];
omega=0.1;
gamma=150;
fun=@(x) norm( (r*x-R) + omega*(1-tanh(x*gamma)-gamma*tanh(x-1) ) )^2 ;
x = fmincon(@(x) fun, ones(3,1)/3, [], [], ones(1,3), 1, zeros(3,1), []);
  4 Comments
hinami
hinami on 21 Sep 2020
Edited: hinami on 21 Sep 2020
Now it works fine with
r=[0.22 9.94 0.08;
0.16 0.95 0.08;
0.07 0.87 0.08];
R = [0.49; 0.42; 0.19]
omega=0.1;
gamma=150;
x = fmincon(@(x) norm( r*x-R + omega*(1-tanh(x*gamma)-tanh((x-1)*gamma)) )^2, ones(3,1)/3, [], [], ones(1,3), 1, zeros(3,1), []);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!