Supplied objective function must return a scalar value

5 ビュー (過去 30 日間)
EDOARDO GELMI
EDOARDO GELMI 2024 年 1 月 8 日
コメント済み: Star Strider 2024 年 1 月 8 日
I have to minimize a function with FMINCON:
f = @(x,y) k*x.*(teta_in-y)
i create this script to apply fmincon:
x0 = [2000,10];
A = [1 0;0 -1];
b = [25;2273];
f = cell(2,1)
f{1} = @(x) k*x.*(teta_in-y)
f{2} = @(x) k*x.*(teta_in-y)
[xmin,fval] =fmincon(f,x0,A,b)
But the programme give me the error: Supplied objective function must return a scalar value
If you have a different way to minimize that function with fmincon i appreciate that
  2 件のコメント
Dyuman Joshi
Dyuman Joshi 2024 年 1 月 8 日
編集済み: Dyuman Joshi 2024 年 1 月 8 日
What are the values of k and teta_in?
Why do you use the same function twice?
Also, share the mathematical definition of the objective function you have to minimize.
EDOARDO GELMI
EDOARDO GELMI 2024 年 1 月 8 日
K and teta_in are two constants. Previously i had an error which said that i had to use a double in order to solve the problem with fmincon, so i created a cell (i searched on the internet but i wasn't sure about it).
What do you mean by "share the mathematical definition..."? I don't understand your request.
Thank you!

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

採用された回答

Star Strider
Star Strider 2024 年 1 月 8 日
The function needs to return one parameter vector. One way to do that is to create a second function to map the inpouts to to such a vector:
ffcn = @(b)f(b(1),b(2));
Then, providing random values for the missing constants ‘k’ and ‘teta_in’ and running it produces —
k = rand
k = 0.0666
teta_in = rand
teta_in = 0.3083
f = @(x,y) k*x.*(teta_in-y);
ffcn = @(b)f(b(1),b(2));
x0 = [2000,10];
A = [1 0;0 -1];
b = [25;2273];
[xmin,fval] =fmincon(ffcn,x0,A,b)
Local minimum found that satisfies the constraints. Optimization completed because the objective function is non-decreasing in feasible directions, to within the value of the optimality tolerance, and constraints are satisfied to within the value of the constraint tolerance.
xmin = 1×2
1.0e+07 * 0.0000 7.7169
fval = -1.2840e+08
.
  11 件のコメント
EDOARDO GELMI
EDOARDO GELMI 2024 年 1 月 8 日
It makes sense, thank you very much!
Star Strider
Star Strider 2024 年 1 月 8 日
As always, my pleasure!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by