Supplied objective function must return a scalar value in fmincon
    2 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
Hey guys please help me I am getting this error in my optimization problem
Below is the Data File
global SL V p r k m n C Z s 
SL = 0.75;
V = 94100;
p = [0.07,0.18,0.2,0.3];
r = [55,47,45,49];
k = [33,28,29,30];
m = 4;
n= 4;
C = [78,69,70,73;
    64,68,56,59;
    34,39,42,41;
    52,47,48,45];
Z =[250	250	250	250;
    320	320	320	320;
    440	440	440	440;
    350	350	350	350];
s = [110,95,99,100;
    110,95,99,100;
    110,95,99,100;
    110,95,99,100];
bguess = randi(4,4);
bguess = (bguess<2);
Q0 = [zeros(4,4) bguess];
% call the solver
xopt = fmincon(@EP, Q0,[],[],[],[],[],[]);
Below is the Objective Function File
function G =  EP(Q,b)
global s r k C m n 
rng;
y = rand(4);
b = randi(4,4);
b = (b<2);
q = 0;
for i = 1:m
    for j = 1:n
        q = q + y(i,j)*Q(i,j);
    end
end
x = sym('x',[1,4]); %x as symbolic variable
f1 = 0;
for i = 1:m
    for j = i:n 
        f1  = f1 + s(i,j)*b(i,j)*x(j);
    end
end       
f2 = 0;
for i = 1:m
    for j = 1:n
        f2 = f2+C(i,j)*b(i,j)*y(i,j)*Q(i,j);
    end
end
f3 = 0;
        f3a = 0;
        for i = 1:m
            for j = 1:n
                f3a = f3a + y(i,j)*Q(i,j)-x(j);
            end
        end
for i  = 1:m
    for j = 1:n
        f3 = f3 + b(i,j)*r(j)*f3a;
    end
end
f4 = 0;
for i = 1:m
    for j = 1:n
        f4 = f4+ s(j)*b(i,j)*y(i,j)*Q(i,j);
    end
end
f5 = 0;
        f5a = 0;
        for i = 1:m
            for j = 1:n
                f5a = f5a + x(j) -y(i,j)*Q(i,j);
            end
        end
for i  = 1:m
    for j = 1:n
        f5 = f5 + b(i,j)*k(j)*f5a;
    end
end
F1 = int(((f1 - f2 + f3).*normpdf(x, 400, 100)),0,q);
F2 = int(((f4 - f2 - f5).*normpdf(x, 400, 100)),q,Inf);
G = -(F1 +F2);
end

This is the error I am getting. Please help me.
9 comentarios
  Walter Roberson
      
      
 el 23 de Jul. de 2020
				"(reminder to myself)" indicates that I need to return to this question and give you a reply when I have more time. I have been working on so many questions recently that the ones I still need to do more work on, are scrolling off the first three pages of the lists of my activity.
Respuestas (0)
Ver también
Categorías
				Más información sobre Conversion Between Symbolic and Numeric en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





