Supplied objective function must return a scalar value
조회 수: 5 (최근 30일)
이전 댓글 표시
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
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.
채택된 답변
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
teta_in = rand
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)
.
댓글 수: 11
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!