matlab 线性规划 目标函数求最小值

想问一下怎么求图一δ的最小值,并且求出w1到w7的最优值。看了很多教程用lingprog()求线性规划问题,但是他们的目标函数都与x1,x2,x3有关(如图二),我的目标... 想问一下怎么求图一δ的最小值,并且求出w1到w7的最优值。看了很多教程用lingprog()求线性规划问题,但是他们的目标函数都与x1,x2,x3有关(如图二),我的目标函数就是求一个最小数(图一),不知道该怎么做。有没有大神指点一下,谢谢! 展开
 我来答
lhmhz
高粉答主

2021-11-02 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17014

向TA提问 私信TA
展开全部

如何用matlab求图一δ的最小值,并且求出w1到w7的最优值?该问题可以使用fmincon函数解决,其解决方法如下:

1、创建自定义目标函数,myfun(k),即
f = delta;

2、创建自定义约束条件函数,mycon(k),即

c1=abs(w7/w1)-9-delta;

c2=abs(w7/w2)-8-delta;

c3=abs(w7/w3)-7-delta;

c4=abs(w7/w4)-7-delta;


c5=abs(w7/w5)-7-delta;

c6=abs(w7/w6)-7-delta;

c7=abs(w1/w4)-8-delta;

c8=abs(w2/w4)-7-delta;


c9=abs(w3/w4)-8-delta;


c10=abs(w5/w4)-1-delta;

c11=abs(w6/w4)-3-delta;

c12=abs(w7/w4)-9-delta;

ceq=1-(w1+w2+w3+w4+w5+w6+w7);


3、确定初值δ0,ω10,ω20,ω30,ω40,ω50,ω60,ω70


4、确定δ,ω1,ω2,ω3,ω4,ω5,ω6,ω7的上下限值,即
lb=zeros(1,9);
ub=ones(1,9);

5、使用fmincon()函数求ω1,ω2,ω3,ω4,ω5,ω6,ω7的最优解,δ的最小值,即


[k,fval,exitflag] = fmincon(@(k) myfun(k),k0,[],[],[],[],lb,ub,@(k) mycon(k));

这里的k对应于δ,ω1,ω2,ω3,ω4,ω5,ω6,ω7

6、验证计算结果,如下所示。

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
我行我素850915
2021-11-02 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1757万
展开全部

由上图条件可写程序:

Aeq=[];beq=[];

A=-[1 4 2;3 2 0 ];b=-[8;6];

vlb=zeros(1,3);vub=[];

f=[2 3 1];

[x,fval,exitflag,output]=linprog(f,A,b,[],[],vlb,[])

运行结果:

Optimal solution found.

x =    2.0000

         0

    3.0000

fval =     7

exitflag =     1

output = 

  包含以下字段的 struct:

         iterations: 2

    constrviolation: 0

            message: 'Optimal solution found.'

          algorithm: 'dual-simplex'

      firstorderopt: 8.8818e-16

也就是说,最优值是7

追问
额~是不是没写清楚,就是我知道图二怎么写,但是现在是不知道怎么写图一的。。
追答
从你的图中看不出,w1,w2,w3与x1,x2,x3是啥关系。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2021-11-01
展开全部
  • function [c,ceq]=xiandaicon(x) %构造约束函数 c=[]; ceq=100-x(1)^3*x(2)*(12-exp(-x(1)/x(2))); function y=xiandaiobj(x) %构造目标函数,命名为xiandaiobj.m y=x(1)*x(2)^3 lb=[0 0]; ub=[]; x0=[1 1]; [x,fval]=fmincon(@xiandaiobj,x0,[]...

追问
ceq=100-x(1)^3*x(2)*(12-exp(-x(1)/x(2))) 请问这个是什么意思额
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式