مرسی. فعلن ll و uu جواهای قابل قبولی هستن.
ll

ll =

Columns 1 through 7

0 0.8358 0.6716 0.5073 0.3431 0.1789 0.0333

Columns 8 through 10

0.0249 0.0193 0.0155

>> uu

uu =

Columns 1 through 7

0 0.5000 0.3333 0.2499 0.1773 0.0954 0.0098

Columns 8 through 10

0.0074 0.0057 0.0046

حالا وقتی اینا رو بعنوان lb و ub انتخاب میکنم باز مرحله اول fx1 پوچ میشه.
clc; close all; clear;
alpha=.3; beta=1.2; k=.38; D=6.3;lambda=1;
ll=zeros(1,10);
uu=zeros(1,10);

for m=2:10
parameterfunL=@(L,alpha,k,m,D) -((alpha-k)/m*(L^2)+k*D*L);
parameterfunJ=@(j,alpha,k,m,D) -((alpha/m-k)*(j^2)+k*D*j);

fl=@(L) parameterfunL(L,alpha,k,m,D);
fj=@(j) parameterfunJ(j,alpha,k,m,D);

Lmax = fmincon(fl,m*lambda/2,[],[],[],[],0,m*lambda);
Jmax = fmincon(fj,m*lambda/2,[],[],[],[],0,m*lambda);

if lambda > k*D/((m+1)*k-2*alpha)
lobnd=((m*k^2*D^2*(k-alpha))/(((m+1)*k-2*alpha))^2)/(((alpha-k).*Lmax^2/m)+k*D*Lmax);
upbnd=((m*k^2*D^2*(k-alpha))/(((m+1)*k-2*alpha))^2)/((alpha/m-k)*Jmax^2+k*m*D*Jmax);
end
if lambda < k*D/((m+1)*k-2*alpha)
lobnd= (m^2.*(alpha.*lambda.^2+k.*(D-m*lambda).*lambda))/(((alpha-k).*Lmax.^2)+k*m*D*Lmax);
upbnd= (m.*(alpha.*lambda.^2+k.*(D-m*lambda).*lambda))/(((alpha-k*m).*Jmax.^2)+k*m*D*Jmax);
end
ll(m)=lobnd;
uu(m)=upbnd;
end
fprintf('Lowerbound\n ');
disp(lobnd)
fprintf('\n---------------------------------------\n');
fprintf('Upperbound \n');
disp(upbnd)
% ---------------------------------------------------
% ---------------------------------------------------
payoff=[1.934 ,1.554 ,1.174 ,0.794 , 0.414 ,0.077012 ,0.057655 ,0.044775,0.035774];
soorat=payoff.*(2:10);
makhraj = zeros(1,10) ;
efficiency = zeros(1,10);
error =zeros(1,10);
for numplayers=2:10
lb=ll(1:numplayers);
ub=uu(1:numplayers);
[x1, fx1]=fmincon(@fffu,ones(1,numplayers)*.5,[],[],[],[],lb,ub);
disp('makhraj=')
disp(-fx1)
makhraj(numplayers) =(-fx1);
efficiency(numplayers) = soorat(numplayers-1)/makhraj(numplayers);
error(numplayers) = abs(ub(numplayers-1)-efficiency)/efficiency;
end
plot(2:10,efficiency(2:10)), grid
ylabel('Symmetric NE Efficiency');
xlabel('Number of Suppliers in Microgrid')
axis([2 10 0 1.1])
% ----------------------------------------------
figure
plot(2:10,error(2:10)), grid
ylabel('relative error of the upperbound');
xlabel('Number of Suppliers in Microgrid')
% legend('cos_x','sin_x')
axis([2 10 0 1.1])
% ----------------------------------------------


جواب :
http://uplood.ir/bfF8
خط 45 و 46 رو باید از 1 شروع کنم یا جور دیگه باید نوشته بشه؟