fmincon function with two non-linear constraints

조회 수: 3 (최근 30일)
Ben
Ben 2014년 12월 18일
댓글: Ben 2014년 12월 21일
hi all, I am trying to use the fmincon function to optimise a function with two non-linear constraints. The cost function is
for n = 1:N
e = e + (norm(x(:, n) - o - dot(x(:, n), a)*a) - r)^2
end
where x is 3 by N matrix, o and a are three-dimension vectors and r is a scalar.
There are two constraints used
dot(a, o) == 0
norm(a) == 1
Can I use fmincon with two non-linear equal constraints? I saw the constraint function should contain a equal and non-equal constraints. How can I write the constraint function for my case?
Thank you

답변 (1개)

Matt J
Matt J 2014년 12월 18일
편집: Matt J 2014년 12월 18일
Only one of your constraints is nonlinear. You could write it like so,
function [c,ceq]=nonlcon(a)
c=[];
ceq=norm(a)^2-1;
end
Your objective function is non-differentiable, however. You'll probably have to use instead
e = e + (norm(x(:, n) - o - dot(x(:, n), a)*a)^2 - r^2)^2
  댓글 수: 3
Matt J
Matt J 2014년 12월 18일
편집: Matt J 2014년 12월 18일
As I mentioned, you only have 1 nonlinear constraint. The other one is linear. Use the Aeq and beq inputs to specify that one.
Ben
Ben 2014년 12월 21일
Thank you. I will have a try

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Nonlinear Optimization에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by