编写Matlab程序求解下列最小值问题(初始点(x1,x2)取为(1,1)):

来源:百度知道 编辑:UC知道 时间:2024/06/24 07:54:58
编写Matlab程序求解下列最小值问题(初始点(x1,x2)取为(1,1)):
min 4*x1-a*x1-2*x2
s.t. x1+x2<=4
2x1+x2<=5
-x1+bx2>=2
x1,x2>=0
a=0,1,2,3,4;b=2,4,6,7
大师master 好心的话能不能 给我加下注释啊
我新手 看不懂 谢谢啦

用循环语句,分别执行a、b

%{
编写Matlab程序求解下列最小值问题(初始点(x1,x2)取为(1,1)):
min 4*x1-a*x1-2*x2
s.t. x1+x2<=4
2x1+x2<=5
-x1+bx2>=2
x1,x2>=0
a=0,1,2,3,4;b=2,4,6,7
%}
clc;clear;
k=0;
for a=[0,1,2,3,4]
for b=[2,4,6,7]
f=[4-a -2];
A=[1 1;2 1;1 -b];
B=[4;5;-2];
Aeq=[];Beq=[];
LB=[0 0];UB=[];
X0=[1 1];
X = linprog(f,A,B,Aeq,Beq,LB,UB);
k=k+1;
Xfab(k,:)=[X',f,[a,b]];
end
end
Xfab

结果:
Xfab =

0.0000 4.0000 4.0000 -2.0000 0 2.0000
0.0000 4.0000 4.0000 -2.0000 0 4.0000
0.0000 4.0000 4.0000 -2.0000 0 6.0000
0.0000 4.0000 4.0000 -2.0000 0 7.0000
0.0000 4.0000 3.0000 -2.0000 1.0000 2.0000
0.0000 4.0000 3.0000 -2.0000 1.0000 4.0000
0.0000 4.0000 3.000