fmincon:Supplied objective function must return a scalar value.
Afficher commentaires plus anciens
%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 commentaires
Walter Roberson
le 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
le 15 Nov 2020
Walter Roberson
le 15 Nov 2020
f = @(x)x*sigma*x';
x0 = ones(1,N);
Ylenia Placella
le 15 Nov 2020
Réponses (0)
Catégories
En savoir plus sur Surrogate Optimization dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!