How to define an objective function in the fmincon?

14 visualizaciones (últimos 30 días)
Mingyang Sun
Mingyang Sun el 7 de Dic. de 2021
Comentada: Matt J el 7 de Dic. de 2021
I would like to solve a large scale non-convex QCQP problem using fmincon, such that
min_x x.'H*x
s.t. x.'*R*x = 1
Ax<=b
where H and R are positive definite matrices. Because x has dimension of 5000, how can i define the objective function? I tried to pass
obj = @(x)x.'*H*x;
to the fmincon, it won't work.
many thanks
  1 comentario
Matt J
Matt J el 7 de Dic. de 2021
There's nothing obviously incorrect in what you've described. You should attach a .mat file with your H,R,A,b matrices and demonstrate what you've done using the Run button

Iniciar sesión para comentar.

Respuestas (1)

Rik
Rik el 7 de Dic. de 2021
Your objective function should return a scalar. To borrow a term from machine learning: it is a cost function.
One of the often used functions to compute a single cost for a set of observations is the ordinary least squares:
OLS=@(x) sum((fun(x)-target).^2);
  2 comentarios
Mingyang Sun
Mingyang Sun el 7 de Dic. de 2021
thank you for your replying, if x is a 5000 x 1 vector, then x.'H*x is a scalar. Because of the dimension of the x, it is impossible to define the objective function using anonymous function such that
@(x) x(1) + x(2) + x(3).....
how can I define the objective function efficiently?
Rik
Rik el 7 de Dic. de 2021
If it already returns a scalar, what is your question?
From the documentation:
fun Function to minimize
Function to minimize, specified as a function handle or function name. fun is a function that accepts a vector or array x and returns a real scalar f, the objective function evaluated at x.
fmincon passes x to your objective function and any nonlinear constraint functions in the shape of the x0 argument. For example, if x0 is a 5-by-3 array, then fmincon passes x to fun as a 5-by-3 array. However, fmincon multiplies linear constraint matrices A or Aeq with x after converting x to the column vector x(:).

Iniciar sesión para comentar.

Categorías

Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by