مهندس توی متلب function با برنامه اصلی باید جدا باشه.
الآن من به این صورت جدا کردم ولی خطا میده :
function ret = f(q)
alpha=.3; beta=1.2; k=.38; D=6.3;
global Q;global k;global D;global alpha;
ret=-sum(alpha.*q.^2+k.*(D-sum(Q)).*q);
end
efficiency=zeros(1,10);
for numsupplier=2:10
Q=ones(1,numsupplier)*.5;
lb=zeros(1,numsupplier);
ub=ones(1,numsupplier);
[x1, fx1]=fmincon(f,Q,[],[],[],[],lb,ub);
for tekrar=1:400
for supplier=1:numsupplier
[x2, fx2]=fminbnd(f,0,1);
Q(supplier)=x2;
end
end
efficiency(numsupplier)=fx2/fx1;
end
plot(2:10,efficiency(2:10).*(2:10)), grid
چطوری باید جدا بشه؟