How to define an objective function in the fmincon?

12 ビュー (過去 30 日間)
Mingyang Sun
Mingyang Sun 2021 年 12 月 7 日
コメント済み: Matt J 2021 年 12 月 7 日
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 件のコメント
Matt J
Matt J 2021 年 12 月 7 日
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

サインインしてコメントする。

回答 (1 件)

Rik
Rik 2021 年 12 月 7 日
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 件のコメント
Mingyang Sun
Mingyang Sun 2021 年 12 月 7 日
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 2021 年 12 月 7 日
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(:).

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索

タグ

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by