代码:
function f=fun(x)global i;
global t;
global r;
global c;
b=0;
for xuanze=1:1:100
if i/t(xuanze)*x(xuanze)>=c(xuanze)
b=b+x(xuanze)*r(xuanze);
end
end
f=-(x'*(floor(i./t)*r')*x/b);
要用fmincon进行非线性规划,贴出的代码是目标函数的代码。其中i是已知的数,t、r、c都是已知的100维列向量。问题就是目标函数中的b不等于所有x的和,而是符合一定条件的x的和。这样写会报错“Objective function is undefined at initial point. Fmincon cannot continue.”请问应该怎么写才能选择x呢?
function f=fun(x)global i;
global t;
global r;
global c;
b=0;
for xuanze=1:1:100
if i/t(xuanze)*x(xuanze)>=c(xuanze)
b=b+x(xuanze)*r(xuanze);
end
end
f=-(x'*(floor(i./t)*r')*x/b);
要用fmincon进行非线性规划,贴出的代码是目标函数的代码。其中i是已知的数,t、r、c都是已知的100维列向量。问题就是目标函数中的b不等于所有x的和,而是符合一定条件的x的和。这样写会报错“Objective function is undefined at initial point. Fmincon cannot continue.”请问应该怎么写才能选择x呢?