概述
一、线性规划
1.1简介
1.3 解题方法
1.3.1图解法
1.3.2 Matlab解题方法
以标准型为例,基本函数形式为 linprog(c,A,b),它的返回值是向量 x 的值。还有其它的一些函数调用形式(在 Matlab 指令窗运行 help linprog 可以看到所有的函数调用形式),如: [x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) 这里 fval 返回目标函数的值,LB 和 UB 分别是变量 x 的下界和上界,x0 是 x 的初始值,OPTIONS 是控制参数。
编写M文件
根据matlab中标准型的格式要求,将大于等于换成小于等于,所以添加一负号,运行结果如下:
1.4可以转化成线性规划的问题
很多问题看似复杂但是可以通过转化成线性规划来求解,例如:
可以引入两个参数的形式将x和x的绝对值表示出来,
这样就可以通过约束u、v的范围和条件来对x进行求解,
二、问题分类
2.1 运输问题
2.2 指派问题
对于上述指派问题,我们定义通过定义x的值实现指派,其解以矩阵的形式呈现,其中每一行只有一个1,其余元素皆为0,由此转换成0-1规划问题,降低计算复杂度。由于指派问题的特殊性,又存在着由匈牙利数学家 Konig 提出的更为简便的解法—匈牙利算法。算法主要依据以下事实:如果系数矩阵C = (cij) 一行(或一列)中每一元素都加上或减去同一个数,得到一个新矩阵 B = (bij) ,则以C 或 B 为系数矩阵的指派问题具有相同的最优指派。
2.3 投资的收益和风险预估
对题中符号做出如下规范:
根据体中相关要求可做出假设:
根据做出的假设可以建立相关的数学模型:
根据题目的要求:收益尽可能大,风险尽可能小,所以本题应是一个多目标类模型,
现在对模型进行简化
模型一 固定风险水平,优化收益
建模分析:
约束分析:
由于a是任意给定的的风险量度,没有一个准确的准则,不同的投资者有不同的风险考虑。本题我们从a=0开始,以0.001为步长进行循环搜索,编程如下:
a=0;
hold on
while a<0.05
c=[0.05,0.27,0.19,0.185,0.185];
A=[zeros(4,1),diag([0.025,0.015,0.055,0.026])];
b=a*ones(4,1);
Aeq=[1,1.01,1.02,1.045,1.065];
beq=1;
LB=zeros(5,1);
[x,Q]=linprog(-c,A,b,Aeq,beq,LB);
Q=-Q;
plot(a,Q,'*r');
a=a+0.001;
end
xlabel('a'),ylabel('Q')
以图表形式呈现:
结果分析:
最后
以上就是清秀发带为你收集整理的matlab线性规划的全部内容,希望文章能够帮你解决matlab线性规划所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复