资源描述:
《运筹学实验一补充》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、附一、MATLAB程序说明在Matlab上默认的线性规划形式为:Matlab的最优工具箱中实现了单纯形算法,提供了求解线性规划问题的linprog()函数,该函数的调用格式有:一)x=linprog(f,A,b,Aeq,beq,lb,ub)1)返回值x为最优解向量,不返回最优值2)若没有不等式约束,则令A=[]、b=[]3)若没有等式约束,则令Aeq=[]、beq=[]4)若变量x没有下界,则令lb=[],若没有上界,则令ub=[]若变量即没有上界,也没有下界,则lb和ub均可省略,此时调用格式为x=linprog(f,A
2、,b,Aeq,beq)5)如果没有等式约束,变量x也没有上界和下界,则Aeq,beq,lb,ub均可省略,调用格式为x=linprog(f,A,b)例1:程序:f=[5-123-8];A=[-21-11-3;21-141];b=[6;7];lb=[00000];ub=[1515151515];x=linprog(f,A,b,[],[],lb,ub)例2:先把目标函数变成程序为:f=[-2-5];A=[10;01;12];b=[4;3;8];x=linprog(f,A,b)二)x=linprog(f,A,b,Aeq,beq,
3、lb,ub,x0)x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)x0为初始搜索点,options为指定优化参数进行最小化。(可不用看这个调用函数,适合与带参数的线性规划)三)[x,fval]=linprog(…)[x,fval,exitflag]=linprog(…)[x,fval,exitflag,output]=linprog(…)[x,fval,exitflag,output,lambda]=linprog(…)说明:1)左端fval返回解x处的目标函数值。2)exitflag描述
4、函数计算的退出条件:若为正值,表示目标函数收敛于解x处;若为负值,表示目标函数不收敛;若为零值,表示已经达到函数评价或迭代的最大次数。3)output返回优化信息:output.iterations表示迭代次数;output.algorithm表示所采用的算法;outprt.funcCount表示函数评价次数。附二、LINDO程序说明程序名:linear执行实例:在命令窗口键入以下内容:max10x+15y!也可以直接解决min问题subjecttox<10y<12x+2y<16end!注释符号;系统默认为自变量>0,若不
5、要求用free命令.!在出来reportwindows之前可选择显示对此规划进行灵敏度分析等按solve键,在reportswindow中出现以下内容:LPOPTIMUMFOUNDATSTEP2OBJECTIVEFUNCTIONVALUE1)145.0000VARIABLEVALUEREDUCEDCOSTX10.0000000.000000Y3.0000000.000000ROWSLACKORSURPLUSDUALPRICES2)0.0000002.5000003)9.0000000.0000004)0.0000007.5
6、00000NO.ITERATIONS=2RANGESINWHICHTHEBASISISUNCHANGED:OBJCOEFFICIENTRANGESVARIABLECURRENTALLOWABLEALLOWABLECOEFINCREASEDECREASEX10.000000INFINITY2.500000Y15.0000005.00000015.000000RIGHTHANDSIDERANGESROWCURRENTALLOWABLEALLOWABLERHSINCREASEDECREASE210.0000006.0000001
7、0.000000312.000000INFINITY9.000000416.00000018.0000006.000000附三.LINGO程序说明3.1程序名:linearp1(求极小问题)linearp1运行实例:在modelwindow中输入以下语句:min=5*x1+21*x3;x1-x2+6*x3-x4=2;x1+x2+2*x3-x5=1;按运行按钮在solutionreport窗口得到以下结果:Globaloptimalsolutionfoundatiteration:2Objectivevalue:7.7500
8、00VariableValueReducedCostX10.50000000.000000X30.25000000.000000X20.0000000.5000000X40.0000002.750000X50.0000002.250000RowSlackorSurplusDualPrice17.7500