How to define an objective function in the fmincon?
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
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
Réponses (1)
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
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(:).
Voir également
Catégories
En savoir plus sur Solver Outputs and Iterative Display dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!