运筹学实验三
实验3
一、实验名称:线性规划问题的MATLAB实现
二、实验目的:熟悉如何利用MATLAB的优化工具箱实现线性规划问题的求解
三、实验内容
1. 熟练掌握MATLAB优化工具箱(Optimization Toolbox)中求解线性规划的函数linprog。此函数的用法参见附录1。
要求:
1) 利用该函数求解课本(第五版)中的例子:例2-1、例2-2、例2-8、例2-9,例3-6;求解课后作业2.1(2)、2.5(1)和(2)、3.7(1)、3.8(原问题)。
注:例2-8约束可转化为不等式。format rat将结果显示为分式。
2) 实验报告中需要给出上述题目的程序代码和运行结果,模板参考下面的算例。
注意:此函数输入要求目标最小化,不等式为小于等于,具体问题需先转化为要求的形式;若某一输入变量缺省,需要以[]代替。
例2-1
程序代码
format rat;
%2.1
f=[-80;-100];%价值系数
A=[8,4;4,5;3,10;4,6];%约束条件
b=[360;200;250;200];%约束条件
lb=[0;0];%决策变量大于0
[x,fval]=linprog(f,A,b,[],[],lb);
fmax=-fval;
disp([x]);%最优解
disp([fmax]);%对应
运行结果
Optimal solution found.
85/2
5
3900
例2.2
程序代码
%2.2
f=[3;2.3;2.5];%价值系数
A=[-90,-20,-40;-40,-80,-60];%约束条件
b=[-60;-55];%约束条件
Aeq=[1,1,1];
beq=[1];
lb=[0;0;0];%决策变量大于0
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
disp([x]);%最优解
disp([fval]);%对应
运行结果
Optimal solution found.
4/7
3/7
0
27/10
例2.8
程序代码
%2.8
f=[-7;-12];%价值系数
A=[9,4;4,5;3,10];%约束条件
b=[36;20;30];%约束条件
Aeq=[];
beq=[];
lb=zeros(size(f));%决策变量大于0
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
fmax=-fval;
disp([x]);%最优解
disp([fmax]);%对应
运行结果
Optimal solution found.
2
12/5
214/5
例2.9
程序代码
%2.9
f=[-3,1,1];%价值系数
A=[1,-2,1;4,-1,-2;];%约束条件
b=[11;-3];%约束条件
Aeq=[-2,0,1];
beq=[1];
lb=zeros(size(f));%决策变量大于0
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
disp([x]);%最优解
disp([fval]);%对应
运行结果
Optimal solution found.
4
1
9
-2
例3.6
程序代码
%3.6
f=[2,3,4];%价值系数
A=[-1,-2,-1;-2,1,-3];%约束条件
b=[-3;-4];%约束条件
Aeq=[];
beq=[];
lb=zeros(size(f));%决策变量大于0
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
disp([x]);%最优解
disp([fval]);%对应
运行结果
Optimal solution found.
11/5
2/5
0
28/5
2.1(2)
程序代码
%2.1(2)
clear;
f=[1,1.5];%价值系数
A=[-1,-3;-1,-1];%约束条件
b=[-3;-2];%约束条件
Aeq=[];
beq=[];
lb=zeros(size(f));%决策变量大于0
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
disp([x]);%最优解
disp([fval]);%对应
运行结果
Optimal solution found.
3/2
1/2
9/4
2.5(1)
程序代码
%2.5(1)
clear;
f=[-2,-3,5];%价值系数
A=[-2,5,-1];%约束条件
b=[-10];%约束条件
Aeq=[1,1,1];
beq=[7];
lb=zeros(size(f));%决策变量大于0
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
fval=-fval;
disp([x]);%最优解
disp([fval]);%对应
运行结果
Optimal solution found.
45/7
4/7
0
102/7 .
2.5(2)
程序代码
%2.5(2)
clear;
f=[-10,-15,-12];%价值系数
A=[5,3,1;-5,6,15;-2,-1,-1];%约束条件
b=[9;15;-5];%约束条件
Aeq=[];
beq=[];
lb=zeros(size(f));%决策变量大于0
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
fval=-fval;
disp([x]);%最优解
disp([fval]);%对应
运行结果
Linprog stopped because no point satisfies the constraints.
3.7(1)
程序代码
%3.7(1)
clear;
f=[1,1];%价值系数
A=[-2,-1;-1,-7];%约束条件
b=[-4;-7];%约束条件
Aeq=[];
beq=[];
lb=zeros(size(f));%决策变量大于0
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
%fval=-fval;
disp([x]);%最优解
disp([fval]);%对应
运行结果
Optimal solution found.
21/13
10/13
31/13
3.8
程序代码
%3.8
clear;
f=[5,-5,-13];%价值系数
A=[-1,1,3;12,14,10];%约束条件
b=[20;90];%约束条件
Aeq=[];
beq=[];
lb=zeros(size(f));%决策变量大于0
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
fval=-fval;
disp([x]);%最优解
disp([fval]);%对应
运行结果
Optimal solution found.
0
35/16
95/16
705/8
2. 了解图形界面的优化工具——GUI Optimization tool