您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 27用MATLAB求解线性规划
用MATLAB优化工具箱解线性规划minz=cXbAXts..1、模型:命令:x=linprog(c,A,b)2、模型:minz=cXbAXts..beqXAeq命令:x=linprog(c,A,b,Aeq,beq)注意:若没有不等式:存在,则令A=[],b=[].bAX3、模型:minz=cXbAXts..beqXAeqVLB≤X≤VUB命令:[1]x=linprog(c,A,b,Aeq,beq,VLB,VUB)[2]x=linprog(c,A,b,Aeq,beq,VLB,VUB,X0)注意:[1]若没有等式约束:,则令Aeq=[],beq=[].[2]其中X0表示初始点beqXAeq4、命令:[x,fval]=linprog(…)返回最优解x及x处的目标函数值fval.解编写M文件xxgh1.m如下:c=[-0.4-0.28-0.32-0.72-0.64-0.6];A=[0.010.010.010.030.030.03;0.02000.0500;00.02000.050;000.03000.08];b=[850;700;100;900];Aeq=[];beq=[];vlb=[0;0;0;0;0;0];vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)例1max6543216.064.072.032.028.04.0xxxxxxz85003.003.003.001.001.001.0..654321xxxxxxts70005.002.041xx10005.002.052xx90008.003.063xx6,2,10jxj例2321436minxxxz120..321xxxts301x5002x203x解:编写M文件xxgh2.m如下:c=[634];A=[010];b=[50];Aeq=[111];beq=[120];vlb=[30,0,20];vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)321)436(minxxxz32120030xxx50120010111..321xxxts一、问题提出市场上有n种资产is(i=1,2……n)可以选择,现用数额为M的相当大的资金作一个时期的投资。这n种资产在这一时期内购买is的平均收益率为ir,风险损失率为iq,投资越分散,总的风险越小,总体风险可用投资的is中最大的一个风险来度量。购买is时要付交易费,(费率ip),当购买额不超过给定值iu时,交易费按购买iu计算。另外,假定同期银行存款利率是0r,既无交易费又无风险。(0r=5%)投资的收益和风险已知n=4时相关数据如下:isir(%)iq(%)ip(%)iu(元)S1282.51103S2211.52198S3235.54.552S4252.66.540试给该公司设计一种投资组合方案,即用给定达到资金M,有选择地购买若干种资产或存银行生息,使净收益尽可能大,使总体风险尽可能小。基本假设:1.投资数额M相当大,为了便于计算,假设M=1;2.投资越分散,总的风险越小;3.总体风险用投资项目is中最大的一个风险来度量;4.n种资产Si之间是相互独立的;5.在投资的这一时期内,ri,pi,qi,r0为定值,不受意外因素影响;6.净收益和总体风险只受ri,pi,qi影响,不受其他因素干扰。二、基本假设和符号规定符号规定:Si——第i种投资项目,如股票,债券ri,pi,qi----分别为Si的平均收益率,风险损失率,交易费率ui----Si的交易定额0r-------同期银行利率xi-------投资项目Si的资金a-----投资风险度Q----总体收益ΔQ----总体收益的增量三、模型的建立与分析1.总体风险用所投资的Si中最大的一个风险来衡量,即max{qixi|i=1,2,…n}2.购买Si所付交易费是一个分段函数,即pixixiui交易费=piuixi≤ui而题目所给定的定值ui(单位:元)相对总投资M很小,piui更小,可以忽略不计,这样购买Si的净收益为(ri-pi)xi3.要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型:目标函数MAXniiiixpr0)(MINmax{qixi}约束条件niiixp0)1(=Mxi≥0i=0,1,…na.在实际投资中,投资者承受风险的程度不一样,若给定风险一个界限a,使最大的一个风险qixi/M≤a,可找到相应的投资方案。这样把多目标规划变成一个目标的线性规划。模型1固定风险水平,优化收益目标函数:Q=MAX11)(niiiixpr约束条件:Mxqii≤aMxpii)1(,xi≥0i=0,1,…n4.模型简化:b.若投资者希望总盈利至少达到水平k以上,在风险最小的情况下寻找相应的投资组合。模型2固定盈利水平,极小化风险目标函数:R=min{max{qixi}}约束条件:niiiixpr0)(≥k,Mxpii)1(,xi≥0i=0,1,…nc.投资者在权衡资产风险和预期收益两方面时,希望选择一个令自己满意的投资组合。因此对风险、收益赋予权重s(0<s≤1),s称为投资偏好系数.模型3目标函数:mins{max{qixi}}-(1-s)niiiixpr0)(约束条件niiixp0)1(=M,xi≥0i=0,1,2,…n四、模型1的求解模型1为:minf=(-0.05,-0.27,-0.19,-0.185,-0.185)(x0x1x2x3x4)Tx0+1.01x1+1.02x2+1.045x3+1.065x4=1s.t.0.025x1≤a0.015x2≤a0.055x3≤a0.026x4≤axi≥0(i=0,1,…..4)由于a是任意给定的风险度,到底怎样给定没有一个准则,不同的投资者有不同的风险度。我们从a=0开始,以步长△a=0.001进行循环搜索,编制程序如下:maxQ=(-0.05,-0.27,-0.19,-0.185,-0.185)(x0,x1,x2,x3,x4)Tx0+1.01x1+1.02x2+1.045x3+1.065x4=1s.t.0.025x1≤a0.015x2≤a0.055x3≤a0.026x4≤axi≥0(i=0,1,…..4)从a=0开始,以步长△a=0.001对下列组合投资模型求解,并绘图表示a与目标函数最优值Q的对应关系:a=0;while(1.1-a)1c=[-0.05-0.27-0.19-0.185-0.185];Aeq=[11.011.021.0451.065];beq=[1];A=[00.025000;000.01500;0000.0550;00000.026];b=[a;a;a;a];vlb=[0,0,0,0,0];vub=[];[x,val]=linprog(c,A,b,Aeq,beq,vlb,vub);ax=x'Q=-valplot(a,Q,'.'),axis([00.100.5]),holdona=a+0.001;endxlabel('a'),ylabel('Q')a=0.0030x=0.49490.12000.20000.05450.1154Q=0.1266a=0.0060x=00.24000.40000.10910.2212Q=0.2019a=0.0080x=0.00000.32000.53330.12710.0000Q=0.2112a=0.0100x=00.40000.584300Q=0.2190a=0.0200x=00.80000.188200Q=0.2518a=0.0400x=0.00000.99010.000000Q=0.2673计算结果:五、结果分析4.在a=0.006附近有一个转折点,在这一点左边,风险增加很少时,利润增长很快。在这一点右边,风险增加很大时,利润增长很缓慢,所以对于风险和收益没有特殊偏好的投资者来说,应该选择曲线的拐点作为最优投资组合,大约是a*=0.6%,Q*=20%,所对应投资方案为:风险度收益x0x1x2x3x40.00600.201900.24000.40000.10910.22123.曲线上的任一点都表示该风险水平的最大可能收益和该收益要求的最小风险。对于不同风险的承受能力,选择该风险水平下的最优投资组合。2.当投资越分散时,投资者承担的风险越小,这与题意一致。即:冒险的投资者会出现集中投资的情况,保守的投资者则尽量分散投资。1.风险大,收益也大。实验作业某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:1)若投资0.8万元可增加原料1千克,问应否作这项投资.2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.
本文标题:27用MATLAB求解线性规划
链接地址:https://www.777doc.com/doc-3323914 .html