How to define an objective function in the fmincon?

5 vues (au cours des 30 derniers jours)
Mingyang Sun
Mingyang Sun le 7 Déc 2021
Commenté : Matt J le 7 Déc 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 commentaire
Matt J
Matt J le 7 Déc 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

Connectez-vous pour commenter.

Réponses (1)

Rik
Rik le 7 Déc 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 commentaires
Mingyang Sun
Mingyang Sun le 7 Déc 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 le 7 Déc 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(:).

Connectez-vous pour commenter.

Catégories

En savoir plus sur Programming dans Help Center et File Exchange

Tags

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by