用matlab求解这类极值问题,是无法求得其结果。必须给出n、b的已知值,如n=10,b=1050时,可以用fmincon函数求得。实现方法:
x0=ones(1,10);
lb=[0,0,0,0,0,0,0,0,0,0];ub=[];
[x,fval] = fmincon(@(x) fmincon_fun(x),x0,[],[],[],[],lb,ub,@(x) fmincon_con(x));
disp('xi值'),disp(x),disp('最大值'),disp([num2str(-fval)])
Y=sum(x);
disp(['验证:x1+x2+x3+..+x10=1050 ',num2str(Y)])
注意:极值表达式是不定方程,所以xi是可变的。
没看明白……哈哈!
-