目录
线性规划matlab求解
1)基于求解器求解
1.标准形式
2.代码实现
f = [-40;-30];
a = [1,1;-1,0;0,-1;240,120];
b = [6;-1;-1;1200];
[x,y] = linprog(f,a,b);y=-y
2)基于问题求解
prob=optimproblem('ObjectiveSense','max');
c=[4;3];
b=[10;8;7];
a=[2,1;1,1;0,1];
x=optimvar('x',2,'LowerBound',0); %决策变量
prob.Objective=c'*x; %目标函数
prob.Constraints.con=a*x<=b; %约束条件
[sol,fval,flag,out]=solve(prob); %favl返回最优值
sol.x %显示决策变量的值
- optimproblem-创建优化问题:prob=optimproblem(NAME,VALUE),(prob=optimproblem默认创建最小值优化问题)prob.objective是优化问题里面的目标函数;prob.constraints.con是约束条件,有多个同类约束条件时可以按照行向量的形式排列,不同类约束条件可以用con1,con2来表示。
- optimvar-创建优化变量(符号变量):
x = optimvar(name,n)
创建由优化变量组成的n
×1 向量。x = optimvar(name,cstr)
创建可使用cstr
进行索引的优化变量向量。x
的元素数与cstr
向量的长度相同。x
的方向与cstr
的方向相同:当cstr
是行向量时,x
也是行向量,当cstr
是列向量时,x
也是列向量。 - c'是c向量/矩阵的转置
- solve函数解决优化问题