用matlab解线性规划问题

2024-05-01 15:37

1. 用matlab解线性规划问题

设A,B,C三种汽车分别买x,y,z(正整数)辆,则:
汽车总数辆:x+y+z<=30,
总价格:    x*1+y*2+z*2.3<=60,
司机人数:  1*x+2*y+2*z<=145
每天的吨-公里 3*(2100*x+3600*y+3780*z)
用matlab优化求解:
 F=@(x)-3*(2100*x(1)+3600*x(2)+3780*x(3))
X0=[2;3;4];
A=[1 1 1;1 2 2.3;1 2 2];b=[30 60 145];lb=zeros(3,1);
[X,fval]=fmincon(F,X0,A,b,[],[],lb,[])
运行结果:
X =
         0
   30.0000
    0.0000
fval = -3.2400e+05
则当全部资金60万元购买30辆B汽车,可实现每天最大吨-公里3.2400e+05=324000的目标。

用matlab解线性规划问题

2. matlab解线性规划问题

目标函数myfun.m
function fx=myfun(x)
fx=-(472*x(1)+512*x(2)+544*x(3))/(260*x(1)+280*x(2)+385*x(3)+10000);
用Matlab自带的遗传算法工具箱,求得
x1=24,x2=18,x3=14
>> x=[24 18 14];myfun(x)
ans =   -1.0559

3. 用matlab解线性规划问题

设A,B,C三种汽车分别买x,y,z(正整数)辆,则:
汽车总数辆:x+y+z<=30,
总价格:
x*1+y*2+z*2.3<=60,
司机人数:
1*x+2*y+2*z<=145
每天的吨-公里
3*(2100*x+3600*y+3780*z)
用matlab优化求解:
F=@(x)-3*(2100*x(1)+3600*x(2)+3780*x(3))
X0=[2;3;4];
A=[1
1
1;1
2
2.3;1
2
2];b=[30
60
145];lb=zeros(3,1);
[X,fval]=fmincon(F,X0,A,b,[],[],lb,[])
运行结果:
X
=
0
30.0000
0.0000
fval
=
-3.2400e+05
则当全部资金60万元购买30辆B汽车,可实现每天最大吨-公里3.2400e+05=324000的目标。

用matlab解线性规划问题

4. Matlab求解非线性规划问题

有以下几个问题:
(1)你这是多目标,还是单目标。
(2)你的约束为线性约束,不需要mycon1这个函数(而且你也用得不对)。
(3)你的fun44(x),x是向量,你的程序里不能有y,z,应使用x(1),x(2),x(3)表示。
(4)Ax<=b,那你的A应该是一个对应约束的矩阵。
代码我就不帮你写了,你再看下帮助文件应该能懂的。

5. matlab线性规划小问题

f=-[0;0;1];  %求最大值,就是求其相反数的最小值
%A,B构成不等式约束,要小于等于约束,如果是大于等于的话,请在不等式两边乘-1
A=[
3,2,50;
1,0,5;
0,1,5;
];
B=[2000;405;255];
%Aeq,Beq构成等式约束,没有取空
Aeq=[];
Beq=[];

%最大最小值
xmin=[0;0;0];
xmax=[inf;inf;inf];
x0=[1;1;1]; %迭代初值
[x,fmin,flag]=linprog(f,A,B,Aeq,Beq,xmin,xmax,x0);  %如果结果flag=1,代表成功
x
fmax=-fmin   %从相反数的最小值中,还原最大值

结果为40

matlab线性规划小问题

6. matlab 非线性规划方法求解问题

非线性规划方法求解问题 ,可以用matlab 的最优化工具箱求解,求解过程如下:
1、创建目标函数文件,即  myfun6.m。其内容
y=-x(1).*x(2).*x(3);
2、创建约束条件函数文件,即  mycon6.m。其内容
c(1)=(x(1)-2*x(2)-2*x(3));
c(2)=(x(1)+2*x(2)+2*x(3))-72;
c(3)=x(2)-10;
c(4)=-x(2)-20;
ceq = 10-(x(1)-x(2));
3、点击matlab 主菜单中的APP,再点击Optimization菜单,选择Solver的 fmincon,然后输入相关内容,如图所示。
4、输入后点击Start,可以得到结果。即
 x1=20,x2=10,x3=16
最大值约为3200


7. 用matlab求非线性规划问题的最优解

题主给出的非线性规划问题,其最优解可以用matlab的fmincon函数求解,求解方法如下:
1、根据条件,确定x、y、z的上下限
lb=[0,0,5];ub=[15,5,8];
2、自定义目标函数,fmincon_fun(k),即
x=k(1);y=k(2);z=k(3);
m=21.6*sqrt(5^2+(8-z)^2 )+7.2*(sqrt(x^2+(5-x)^2 )+y+sqrt((15-x)^2+(z-x)^2 ));
3、使用fmincon函数求解,其M的最小值
[k,fval] = fmincon(@(k) fmincon_fun(k),k0,[],[],[],[],lb,ub)
其中:x=k(1);y=k(2);z=k(3);ymin=fval
4、按上述方法,编程运行可以得到如下结果。


用matlab求非线性规划问题的最优解

8. matlab求一线性规划问题的最优解

求这个线性规划问题,可以用matlab的最小值函数fmincon。fmincon极小值函数适应用于求约束非线性多变量函数的最小值。该问题求解方法如下:
1、建立目标函数,即
z=80*x11+90*x12+75*x13+60*x21+85*x22+95*x23+92*x31+80*x32+110*x33;
2、建立约束函数,即
ceq(1)=100-(x11+x12+x13); 
ceq(2)=170-(x21+x22+x23);
ceq(3)=200-(x31+x32+x33);
ceq(4)=120-(x11+x21+x31); 
ceq(5)=170-(x12+x22+x32);
ceq(6)=180-(x13+x23+x33);
3、用fmincon函数求解,即
x0=zeros(1,9);
A=[];b=[ ];
Aeq=[];beq=[];
lb=zeros(1,9);ub=[];
[x,fval,exitflag]=fmincon(@(x)myfunc(x),x0,A,b,Aeq,beq,lb,ub,@(x)myconc(x));
4、求解结果