Supplied objective function must return a scalar value

5 visualizaciones (últimos 30 días)
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 comentarios
Dyuman Joshi
Dyuman Joshi el 8 de En. de 2024
Editada: Dyuman Joshi el 8 de En. de 2024
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 el 8 de En. de 2024
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!

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 8 de En. de 2024
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 comentarios
EDOARDO GELMI
EDOARDO GELMI el 8 de En. de 2024
It makes sense, thank you very much!
Star Strider
Star Strider el 8 de En. de 2024
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Productos


Versión

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by