线性规划问题的matlab求解
函数:[x, fval] = linprog(f, A, b, Aeq, Beq, LB, UB)
返回的x:是一个向量——在取得目标函数最小时各个xi的取值;
返回的fval:目标函数的最小值;
参数f:目标函数的系数矩阵;
参数A:不等式约束的系数矩阵;
参数b:不等式约束右端的常数列;
参数Aeq:等式约束的系数矩阵,若没有等式约束,则Aeq = [];
参数Beq:等式约束右端的常数列,若没有等式约束,则Beq = [];
参数LB:x的下界,常遇到的x1, x2, x3 >= 0,0就是下界,可用zeros(3, 1)生成一个3行1列的向量来表示,其中向量的每个元素的值为0;
参数UB:x的上界;
-------------------------------------------------------------------------------------------------------------
求z的最小值及z取得最小值时x的取值:
min z = -5x1 - 4x2 - 6x3
约束条件:
x1 - x2 + x3 <= 20
3x1 + 2x2 + 4x3 <= 42
3x1 + 2x2 <= 30
0 <= x1, 0 <= x2, 0 <= x3
-------------------------------------------------------------------------------------------------------------
编写.m文件:
f = [-5; -4; -6];
A = [1 -1 1; 3 2 4; 3 2 0];
b = [20; 42; 30];
Aeq = [];
Beq = [];
LB = zeros(3, 1);
[x, favl] = linprog(f, A, b, Aeq, Beq, LB)
保存运行,得
x = 0.0000
15.0000
3.0000 favl = -78.0000
-------------------------------------------------------------------------------------------------------------
求z的最大值及z取得最大值时x的取值:
max z = 2x1 + 3x2 - 5x3
约束条件:
x1 + x2 + x3 = 7
2x1 - 5x2 + x3 >= 10
x1, x2, x3 >= 0
-------------------------------------------------------------------------------------------------------------
编写.m文件:
f = [-2; -3; 5]; %转换成求负形式的最小值
A = [-2 5 -1]; %原>=号,两边同乘-1,转成标准形式
b = [-10]; %原>=号,两边同乘-1,转成标准形式
Aeq = [1 1 1];
Beq = [7];
LB = zeros(3, 1);
[x, fval] = linprog(f, A, b, Aeq, Beq, LB);
x
fval = -fval %将负形式的最小值转回原正形式的最大值
保存运行,得
x = 6.4286
0.5714
0.0000 fval = 14.5714
线性规划问题的matlab求解的更多相关文章
- matlab 求解线性规划问题
线性规划 LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为: minf(x):待最小化的目标函数(如果问题本 ...
- fslove - Matlab求解多元多次方程组
fslove - Matlab求解多元多次方程组 简介: 之前看到网上的一些资料良莠不齐,各种转载之类的,根本无法解决实际问题,所以我打算把自己的学到的总结一下,以实例出发讲解fsolve. 示例如下 ...
- 用Matlab求解微分方程
用Matlab求解微分方程 解微分方程有两种解,一种是解析解,一种是数值解,这两种分别对应不同的解法 解析解 利用dsolve函数进行求解 syms x; s = dsolve('eq1,eq2,.. ...
- yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)
最近建立了一个网络流模型,是一个混合整数线性规划问题(模型中既有连续变量,又有整型变量).当要求解此模型的时候,发现matlab优化工具箱竟没有自带的可以求解这类问题的算法(只有bintprog求解器 ...
- MATLAB求解线性规划
- MATLAB求解代数方程、微分方程的一些常用指令
MATLAB版本:R2015b 1.求解符号矩阵的行列式.逆.特征值.特征向量 A = sym('[a11, a12; a21, a22]');deltaA = det(A)invA = inv(A) ...
- MATLAB求解二重积分案例
凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 定积分解决的是一维连续量求和的问题,而解决多维连续量的求和问题就要用到重积分了.重积分是建立在定积分的基础上的 ...
- MATLAB求解非线性方程组
matlab中有专门的solve函数来解决方程组的(a-x)^2+(b-y)^2=e^2(C-x)^2+(D-y)^2=v^2已知a,b,c,d,e,v 值求解 X,Y 请问用 matlab 如何写, ...
- matlab 求解 Ax=B 时所用算法
x = A\B; x = mldivide(A, B); matlab 在这里的求解与严格的数学意义是不同的, 如果 A 接近奇异,matlab 仍会给出合理的结果,但也会提示警告信息: 如果 A 为 ...
随机推荐
- python初学笔记(二)
注释: 任何时候,我们都可以给程序加上注释.注释是用来说明代码的,给自己或别人看,而程序运行的时候,Python解释器会直接忽略掉注释,所以,有没有注释不影响程序的执行结果,但是影响到别人能不能看懂你 ...
- C语言如何定义结构体
原文地址 1. struct与typedef struct区别 struct是结构体的关键字,用来声明结构体变量如 struct student { char num[10]; ch ...
- [原创]linux简单之美(一)
原文链接:linux简单之美(一) 话说windows也有syscall,这是必须的.但是win的syscall可以直接call吗?可以是可以但是破费周折,搞成SDT之类的复杂概念.下面看看linux ...
- [原创]浅谈如何使用gcc开发NT核心驱动程序
原文链接:[原创]浅谈如何使用gcc开发NT核心驱动程序 一谈到在 Win NT 下开发核心驱动程序,可能不少人首先都会想到微软“正统”的VC来.诚然,用VC 配合 WINDDK 的确工作的不错,但或 ...
- C语言入门(8)——形参与实参
对于带参数的函数,我们需要在函数定义中指明参数的个数和每个参数的类型,定义参数就像定义变量一样,需要为每个参数指明类型,并起一个符合标识符命名规则的名字.例如: #include <stdio. ...
- hadoop技术基本架构
一.Hadoop概述 hadoop由两部分组成.各自是分布式文件系统和分布式计算框架MapReduce.当中.分布式文件系统主要用于大规模数据的分布式存储.而MapReduce 则构建在分布式文件系 ...
- Linux下安装Oracle的过程和涉及的知识点-系列4
10.使用rpm安装包 假设本地有现成的相关包,能够直接使用rpm安装.rpm rpm包名,但有时会出现它须要其他包的支持,这时若须要忽略此提示.强行安装,运行rpm -i --force --nod ...
- 什么是CTS、CLS和CLR
CTS.CLS和CLR是.NET框架的基本概念,但往往成为程序员们忽视的部分.清楚理解三者的概念,有助于.NET程序员编写高效安全的.NET程序. 所涉及到的知识点 • .NET的基本概念 • ...
- svn的使用总结(待补充)
1.直接选择文件右键--diff比较的是(本地上次与svn同步的文件)与工作区的比较.(每次更新后,会自动备份本次更新的文件) 2.若是要跟 svn最新版本比较的话,可以选择版本找到对应文件,点击sh ...
- DataGridView插入一行数据和用DataTable绑定数据2种方式
以前不会用DataGridView的时候一直使用DataTable绑定的方式,如下: DataTable table = new DataTable(); //给表添加一列Name,此名字和 tabl ...