求解各位大神,matlab的一道简单非线性规划问题
matlab求解x1×x2×x3×...×xn的最大值,约束条件是x1+x2+x3+..+xn=b,且x1,x2,x3...,xn都大于零...
matlab求解x1×x2×x3×...×xn的最大值,约束条件是x1+x2+x3+..+xn=b,且x1,x2,x3...,xn都大于零
展开
3个回答
展开全部
用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是可变的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询