我是靠谱客的博主 魁梧草丛,最近开发中收集的这篇文章主要介绍Matlab求解线性规划,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

MATLAB是一种强大的数学工具软件,以下将介绍线性规划模型的MATLAB求解。

1. 线性规划的标准型

目标函数:

min = f^{T}x

约束条件:

s.t. left{begin{matrix}Axleq b & & & & & & & & & \ Aeq= beq & & & & & & & & & \ lbleq xleq ub & & & & & & & & & end{matrix}right.      

其中,f^{T}是目标函数的系数矩阵 ,x 称为决策变量,

          A 是不等约束系数矩阵, b 是不等约束常数向量,

         Aeq 是相等约束系数矩阵, beq 是相等约束常数向量,

         lb 是决策变量下界值,ub 是变量上界值向量。

2. linprog函数调用格式

[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub,x_{0},options)

x 是最优解,fval 是最优值,x_{0} 是初始迭代点,options 为参数优化,可修改默认的迭代算法、结果显示方式等。x_{0} 和 options 在实际计算时可缺省。

3. 实例

MATLAB求解线性规划的算法有大规模内点法(Large-scale interior-point),中等规模作用集算法(Medium-scale active set)和中等规模单纯形算法(Medium-scale Simplex)。

例:   min =2x_{1} +3x_{2}+x_{3}

s.t.left{begin{matrix} x_{1}+4x_{2}+2x_{3}geq 8 & & & & & & & & & \3x_{1}+2x_{2}geq 6 & & & & & & & & & \ x_{1},x_{2},x_{3}geq 0 & & & & & & & & & end{matrix}right.


代码如下:

> > f= begin{bmatrix} 2,3,1end{bmatrix};

> > A= begin{bmatrix} -1,-4,-2;-3,-2,0 end{bmatrix};

> > b= begin{bmatrix} -8;-6 end{bmatrix};

> > Aeq=[];

> > beq=[];

> > lb=[0;0;0];

> > ub=[];

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

以上算法为大规模内点法。

计算结果为:

Optimizationbegin{matrix} & end{matrix}terminated.

x=begin{matrix} & & & & & & & & & \ & & & & & & & & &\ \ \ 0.8066 & & & & & & & & & \ 1.7900 & & & & & & & & & \0.0166 end{matrix}

fval = begin{matrix} & & & & & & & & & \ & & & & & & & & & \7.0000 end{matrix}

 


用中等规模单纯形算法求解:

> > options = optimset('LargeScale','off','Simplex','on','Display','iter');

> > [x,fval] = linprog(f,A,b,Aeq,beq,lb,ub,[],options])

计算结果为:

Phrasebegin{matrix} & end{matrix}1: Compute begin{matrix} & end{matrix} initialbegin{matrix} & end{matrix} basicbegin{matrix} & end{matrix} feasiblebegin{matrix} & end{matrix} point\ begin{matrix}& & & end{matrix}Iterbegin{matrix} & & & end{matrix}Infeasibility\ begin{matrix} & & & end{matrix}0begin{matrix} & & & & & &end{matrix}14\ begin{matrix} & & & end{matrix}1begin{matrix} & & & & & & end{matrix}2\ begin{matrix} & & & end{matrix}2begin{matrix} & & & & & & end{matrix}-0

Phrasebegin{matrix} & 2: end{matrix} Minimizebegin{matrix} &using end{matrix}begin{matrix} &simplex end{matrix}\ begin{matrix} & & & end{matrix}Iterbegin{matrix} & & & Objective end{matrix}begin{matrix} & & & Dualbegin{matrix} & Infeasibility end{matrix}\ end{matrix}\ begin{matrix} & & & & & & & & & f*x end{matrix}begin{matrix} & & & & & A'*y+z-w-f end{matrix}\ begin{matrix} & & &0 end{matrix}begin{matrix} & & & & & & & 7 end{matrix}begin{matrix} & & & & & & & & & 0 end{matrix}

Optimizationbegin{matrix} & end{matrix}terminated.

x= begin{matrix} & & & & & & & & & \ & & & & & & & & & \\\ 0.8000 & & & & & & & & & \ 1.8000 & & & & & & & & & \0 end{matrix}

fval = begin{matrix} & & & & & & & & & \ & & & & & & & & & \7 end{matrix}


 

参考文献:《新编MATLAB&Simulink自学一本通》,北京航空航天大学出版社。

 

最后

以上就是魁梧草丛为你收集整理的Matlab求解线性规划的全部内容,希望文章能够帮你解决Matlab求解线性规划所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部