fmincon:Supplied objective function must return a scalar value.
Ältere Kommentare anzeigen
%constraints c and ceq
for h=linspace(h_min,h_max,69);
x=zeros(N,1);
c=h-x(1)'*D*x(2);
end
function [c,ceq]= contr (x)
ceq=[];
c=c;
end
%function to optimize
[T,N]=size(RR)
629 69
f=@(x)x(1)'*sigma*x(2);
nonlcon=@contr;
Aeq=ones(1,N);
beq=1;
l_b=[];
u_b=[];
x0=ones(N,1);
A=[];
b=[];
sigma_2rao = zeros(1,length(h));
sigma_2rao(1)=var_min;
x_rao=zeros(N,length(h));
for h=linspace(h_min,h_max,69)
[x_rao(:,h),sigma_2rao(h)] = fmincon(f,x0,A,b,Aeq,beq,l_b,u_b,nonlcon);
end
4 Kommentare
Walter Roberson
am 15 Nov. 2020
You do not tell us anything about the size of the sigma that is being used in f
You are repeating the same fmincon every iteration of the for loop.
The c you use inside of contr does not appear to be connected to the c you assign in the code at the top. Also, if you were trying to use nested functions with shared variables, then because c is an output variable for contr then inside the function, c would only refer to the output variable, not to any shared variable.
Ylenia Placella
am 15 Nov. 2020
Walter Roberson
am 15 Nov. 2020
f = @(x)x*sigma*x';
x0 = ones(1,N);
Ylenia Placella
am 15 Nov. 2020
Antworten (0)
Kategorien
Mehr zu Surrogate Optimization finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!