optimization problem with interdependent variables

I have the following function f(k) to maximize:
max { f(k)=(q(k))^2*H(Y(k))+F(Y(k)) }
s.t.
q(k) = argmax H(X(q)) + q^2*k*F(X(q))
k>=0
q(k)>0.01
How can I do that?
Thanks!

 採用された回答

Torsten
Torsten 2023 年 4 月 7 日
編集済み: Torsten 2023 年 4 月 7 日

0 投票

Use "fmincon".
The primary optimization variable is k.
Specify the lower bound for k to be 0 in the variable "lb".
The objective function of the primary optimization problem is
f(k)=(q(k))^2*H(Y(k))+F(Y(k)) -> max
In order to specify the value of the objective function for a given value of k, you have to determine q(k).
Thus within the objective function, call "fmincon" (or "fminunc") again with the secondary optimization variable q and the objective function
H(X(q)) + q^2*k*F(X(q)) -> max
In the primary optimization problem, use the function "nonlcon" to impose the constraint
c(1) = 0.01 - q(k)
Here, the value of q(k) has to be determined by again solving the secondary optimization problem
H(X(q)) + q^2*k*F(X(q)) -> max
using "fmincon" (or "fminunc") with the given value for k.
Maybe within the primary optimization you don't need to call "fmincon" (or "fminunc") twice in the objective function and in the constraint function by using the strategy explained here:

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeNonlinear Optimization についてさらに検索

質問済み:

Pri
2023 年 4 月 7 日

コメント済み:

Pri
2023 年 4 月 9 日

Community Treasure Hunt

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

Start Hunting!

Translated by