我是靠谱客的博主 灵巧羊,这篇文章主要介绍【matlab】线性规划模板,现在分享给大家,希望可以做个参考。

matlab中规定线性规划标准形式为

mathop {min }limits_x {f^t}x, \ s.t.left{ begin{array}{l} a cdot x le b,\ aeq cdot x = beq,\ lb le x le ub end{array} right.

linprog函数

[x,fval]=lingrog(c,A,b,Aeq,Beq,LB,UB)

[x,fval]=lingrog(c,A,b,Aeq,Beq,LB,UB)

  • x 为最优解, fval 为最优的目标函数值
  • c 为目标函数系数,列向量
  • A为小于等于的系数矩阵,b为小于等于值列向量
  • Aeq,Beq为等于约束,含义同上
  • LB为xi​的下界,UB为上界,列向量
  • 注意后面的参数可以省略,中间如果有条件用不到,需要用【】占位

matlab中求解线性规划的命令为

[x,fval] = linprog(f,A,b)

[x,fval] = linprog(f,A,b,Aeq,Beq)

[x,fval] = linprog(f,A,b,Aeq,Beq,lb,ub)

x为决策向量的取值,fval返回目标函数的最优值

例如:求解如下现行规划问题

max z = 2{x_1} + 3{x_2} - 5{x_3},\begin{array}{l} ;;;;;;;;{x_1} + {x_2} + {x_3} = 7,\ s.t.;;;{x_1} + 3{x_2} + {x_3} le 12,\ ;;;;;;;;{x_1},{x_2},{x_3} ge 0 end{array}

max z转换成:

min z = - 2{x_1} - 3{x_2} + 5{x_3}

不等式转化为小于等于形式:

left[ begin{array}{l} - 2;;5; -1\ ;;1;;;3;;;;1 end{array} right]x le left[ begin{array}{l} - 10\ ;;12 end{array} right]

所以可得代码如下:

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));‘zeros产生m*n的double类型零矩阵
x,y=-y’由于求的-z,所以y=-y

最后

以上就是灵巧羊最近收集整理的关于【matlab】线性规划模板的全部内容,更多相关【matlab】线性规划模板内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部