题目描述
代码
(法1):
clc, clear, f=[-2; -3; 5];
a=[-2,5,-1;1,3,1]; b=[-10;12];
aeq=[1,1,1]; beq=7;
[x,y]=linprog(f,a,b,aeq,beq,zeros(3,1));
x, y=-y %目标函数最大化
Optimal solution found.
x =
6.4286
0.5714
0
y =
14.5714
(法2):
clc, clear
prob = optimproblem('ObjectiveSense','max');
x = optimvar('x',3,'LowerBound',0);
prob.Objective = 2*x(1) + 3*x(2)-5*x(3);
prob.Constraints.con1 = x(1)+x(2)+x(3) == 7;
prob.Constraints.con2 = 2*x(1)-5*x(2)+x(3) >=10;
prob.Constraints.con3 = x(1)+3*x(2)+x(3) <=12;
[sol,fval,flag,out]= solve(prob), sol.x
Solving problem using linprog.
Optimal solution found.
sol =
包含以下字段的 struct:
x: [3×1 double]
fval =
14.5714
flag =
OptimalSolution
out =
包含以下字段的 struct:
iterations: 2
constrviolation: 8.8818e-16
message: 'Optimal solution found.'
algorithm: 'dual-simplex'
firstorderopt: 8.8818e-16
solver: 'linprog'
ans =
6.4286
0.5714
0
代码运行窗口如图
我的总结
1.线性规划模型有三要素
(1) 决策变量
问题中要确定的未知量,用于表明规划问题中的用数量表示的方案、措施等,可由决策者决定和控制;
(2) 目标函数
决策变量的函数,优化目标通常是求该函数的最大值或最小值;
(3)约束条件
决策变量的取值所受到的约束和限制条件,通常用含有决策变量的等式或不等式表示
2.建立线性规划模型的三个步骤
第一步:分析问题,找出决策变量。
第二步: 根据问题所给条件,找出决策变量必须满足的一组线性等式或者不等式约束,即为约束条件第三步: 根据问题的目标,构造关于决策变量的个线性函数,即为目标函数。
3.灵敏度分析
灵敏度分析是指对系统因周围条件变化显示出来的敏感程度的分析。
运筹学-“优化后分析”的理论方法。借助对偶理论,其思想并非通过系数变化后重新对线性规划问题进行重新计算来得到。
计算机求解-给定参变量一个步长使其重复求解线性规划问题,以观察最优解的变化情况,这不失为一种可用的数值方法。