用循环语句,分别执行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.0000 -2.0000 1.0000 6.0000 0.0000 4.0000 3.0000 -2.0000 1.0000 7.0000 0.0000 4.0000 2.0000 -2.0000 2.0000 2.0000 0.0000 4.0000 2.0000 -2.0000 2.0000 4.0000 0.0000 4.0000 2.0000 -2.0000 2.0000 6.0000 0.0000 4.0000 2.0000 -2.0000 2.0000 7.0000 0.0000 4.0000 1.0000 -2.0000 3.0000 2.0000 0.0000 4.0000 1.0000 -2.0000 3.0000 4.0000 0.0000 4.0000 1.0000 -2.0000 3.0000 6.0000 0.0000 4.0000 1.0000 -2.0000 3.0000 7.0000 0.0000 4.0000 0 -2.0000 4.0000 2.0000 0.0000 4.0000 0 -2.0000 4.0000 4.0000 0.0000 4.0000 0 -2.0000 4.0000 6.0000 0.0000 4.0000 0 -2.0000 4.0000 7.0000 前两列分别为x1、x2;3、4列为不表函数;5、6列为a、b。
作业帮用户
2016-11-29
举报