matlab最小值算法问题 10

f=60462*x(1)+15381*x(1)*log(x(1))+60462*x(2)+15381*x(2)*log(x(2))+60462*x(3)+15381*x(... f=60462*x(1)+15381*x(1)*log(x(1))+60462*x(2)+15381*x(2)*log(x(2))+60462*x(3)+15381*x(3)*log(x(3))+60462*x(4)+15381*x(4)*log(x(4))+60462*x(5)+15381*x(5)*log(x(5))+60462*x(6)+15381*x(6)*log(x(6))+60462*x(7)+15381*x(7)*log(x(7))+223662*x(8)+15381*x(8)*log(x(8))-169082*x(9)+15381*x(9)*log(x(9));
约束条件0=2*x(1)+x(3)+2*x(4)+x(5)+x(6)+2*x(9)-8;
0=2*x(2)+x(3)+2*x(4)+2*x(6)+x(7)+3*x(8)+x(9)-4;
具体用哪个算法算,有目标函数最小值,方程包括log。9个未知数,2个约束条件
展开
 我来答
lhmhz
高粉答主

2018-01-03 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17013

向TA提问 私信TA
展开全部

给出的matlab最小值问题,可以用 fmincon()函数来求得。

首先,建立目标函数

function f =fmincon_fun(x)

f=。。。

end

其二,建立约束函数

function [c,ceq] = fmincon_con(x)

c(1)=[2*x(1)+x(3)+2*x(4)+x(5)+x(6)+2*x(9)-8];

c(2)=[2*x(2)+x(3)+2*x(4)+2*x(6)+x(7)+3*x(8)+x(9)-4];

ceq = [];

end

最后,用fmincon()函数求得最大值

x0=[0.70 0.95 0.20 0.76 0.25 0.19 0.20 0.05 0.02];

lb=[0.07 0.08 0.02 0.03 0.04 0.02 0.03 0.07  0.03];ub=[];

[x,fval,exitflag] = = fmincon(@(x) fmincon_fun(x),x0,[],[],[],[],lb,ub,@(x) fmincon_con(x),options);

运行结果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式