线性规划求最大值或最小值.doc_第1页
线性规划求最大值或最小值.doc_第2页
线性规划求最大值或最小值.doc_第3页
线性规划求最大值或最小值.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

线性规划求最大值或最小值linprog 2011-09-03 18:43:17| 分类: Matlab | 标签:最优值 最优解 最大值 最小值 linprog |字号大中小订阅函数格式:linprog(f,a,b,a1,b1,xstart,xend)f:求解最小函数的表达式系数矩阵是m*1的矩阵a:不等式条件约束矩阵其均为形式b:a对应不等式右边的常数项a1:=等式条件约束矩阵b1:a1对应不等式右边的常数项xstart:x的取值范围的最小值的系数矩阵为n*1的矩阵xend:x的取值范围的最大值的系数矩阵为n*1的矩阵函数说明:不存在的项填写即可函数功能:线性规划求最优值.例子1:求f=3*x1+6*x2+2*x3的最大值 满足的条件是 3*x1+4*x2+x32 x1+3*x2+2*x31 且x1、x2、x3均大于等于0 Matlab求解如下a = 3 4 11 3 2 b = 21 f= -3-6-2 %这里为什么会是负数,因为Matlab求的是f的最小值,要求最大值则取要求系数的相反数即可.x= 000 linprog(f,a,b,x,)%执行的matlab命令后输出的如下内容.注意这里的表示那一项不存在.当然最后那一个也可以不要即linprog(f,a,b,x)Optimization terminated. ans = 0.4000 0.2000 0.0000%即x1=0.4,x2=0.2,x3=0为最优解.带回原式我可以知道f的最大值=3*0.4+6*0.2=2.4例子2:求f=-2*x1-3*x2-x3的最小值 满足的条件是 x1+x2+x33 x1+4*x2+7*x3+x4=9 且x1、x2、x3、x4均大于等于0 Matlab求解如下原题等价于求f=-2*x1-3*x2-x3+0*x4的最小值其条件等价于x1+x2+x3+0*x43x1+4*x2+7*x3+x4=9则在Matlab输入如下内容a=1 1 1 0b=3a1=1 4 7 1b1=9x= 0000f= -2-3-10linprog(f,a,b,a1,b1,x)%执行命令或者输入linprog(f,a,b,a1,b1,x,)Optimization terminated. ans = 1.0000 2.0000 0.0000 0.0000%说明x1=1,x2=2,x3=0,x4=0取得最小值说明:任何线性规划问题都可以转化为上面的问题求解.细节问题请Google线性规划标准形式1、当目标函数求最大值时,例如求f=a1*x1+a2*x2+an*xn的最大值时这个时候等价于求f=-a1*x1-a2*x2-an*xn的最小值2、当约束条件为a1*x1+a2*x2+an*xnb这种形式的时候其约束等价于a1*x1+a2*x2+an*xn-xnn=b即多了一个xnn(xnn0)变量3、当一个变量比如x1是无约束的变量时,其实等价于x1=x2-x3即把一个变量x1分解成2个变量x2与x3之差(x2、x30)把是x1的地方替换为(x2-x3)即可求解线性规划问题: 线性规划问题其中,f, x, b, beq, lb, ub为向量, A, Aeq为矩阵。 x = linprog(f,A,b) 功能:求解最小化问题 min f*x 条件 A*x b。 x = linprog(f,A,b,Aeq,beq) 功能:求解最小化问题 min f*x 条件 A*x b Aeq*x = beq,如果没有不等式就设置A = 和b = ;没有等式就设置 Aeq=,beq= x = linprog(f,A,b,Aeq,beq,lb,ub) 功能:求解最小化问题 min f*x 条件 A*x b Aeq*x = beq lb x ub,决策变量有上下限时,如果没有不等式就设置A = 和b = ;没有等式就设置 Aeq=,beq= x = linprog(f,A,b,Aeq,beq,lb,ub,x0) 功能:求解最小化问题 min f*x 条件 A*x b Aeq*x = beq lb x ub,如果没有不等式就设置A = 和b = 。设置初始点x0,这个选择项只是对medium-scale算法有效。默认的large-scale算法和简单的算法忽略任何初始点。 x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 功能:最小化带有参数项的线性规划问题。其中options可以使用optimset来设置。 x = linprog(problem) 功能:对problem求最小值,其中problem是一个结构体。通过优化工具箱来创建,导入到MATLAB工作空间。 x,fval = linprog(.) 功能:返回目标函数最优解x,和在x处的值:fval = f*x. x,fval,exitflag = linprog(.) 功能:返回目标函数最优解x,和在x处的值:fval = f*x,是否存在exitflag标志 x,fval,exitflag,output = linprog(.) Matlab中文论坛 功能:返回目标函数最优解x,和在x处的值:fval = f*x,是否存在exitflag标志,优化解结构体output x,fval,exitflag,output,lambda = linprog(.) 功能:返回目标函数最优解x,和在x处的值:fval = f*x,是否存在exitflag标志,优化解结构体output,拉格朗日乘子结构体lambda 应用举例最小解: f(x) = 5x1 4x2 6x3, 满足: x1 x2 + x3 20 3x1 + 2x2 + 4x3 42 3x1 + 2x2 30 0 x1, 0 x2, 0 x3. 首先,输入系数、条件; f = -5; -4; -6 ;A = 1 -1 1; 3 2 4 ;3 2 0; b = 20; 42; 30; lb = zeros(3,1); 然后,调用线性规划函数; x,fval,exitflag,output,lambda = linprog

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论