4.问题: 某公司将3种不同含硫量的液体原料(分别记为甲、乙、丙)混合生产两种产品(分别记为A,B )。
按照生产工艺的要求,原料甲、乙必须首先导入混合池中混合,混合后的液体再分别与原料丙混合生产A,B 。
一直原料甲、乙、丙的含硫量分别是3%,1%,2%,进货价格分别为6千元/t ,16千元/t ,10千元/t ;产品A,B 的含硫量分别不能超过2.5%,1.5%,售价分别为9千元/t ,15千元/t 。
根据市场信息,原料甲、乙、丙的供应量都不能超过500t ;产品A,B 的最大市场需求量分别为100t ,200t 。
(1) 应如何安排生产?(2) 如果产品A 的最大市场需求量增长为600t ,应如何安排生产?(3) 如果乙的进货价格下降为13千元/t ,应如何安排生产?分别对(1)、(2)两种情况进行讨论。
模型: (只考虑问题1,问题2,3只需改变一些约束条件)设生产时使用原料甲、乙分别为12,x x t ,分别取混合后的液体34,x x t 再加入原料丙56,x x t 生产产品A,B 。
有质量守恒,可得1234x x x x +=+甲乙混合后的液体的含硫量可表示为12123%x x x x ++,根据含硫量的要求,可得12353512124646123%*2%* 2.5%*()3%*2%* 1.5%*()x x x x x x x x x x x x x x x x +⎧+≤+⎪+⎪⎨+⎪+≤+⎪+⎩ 根据市场的限制,易得12563546500500500100200x x x x x x x x ≤⎧⎪≤⎪⎪+≤⎨⎪+≤⎪⎪+≤⎩ 当然还有非负约束123456,,,,,0x x x x x x ≥公司的净利润为(单位:千元):354612561234569()15()61610()6169155z x x x x x x x x x x x x x x =+++---+=--++-+合理选择123456,,,,,x x x x x x 使得z 最大。
计算过程: 这是一个非线性规划问题,可直接用matlab 优化工具箱提供的函数,不断尝试极小值点,最后找到最小值。
在求解的过程中要注意将约束条件转化为标准型。
编写程序:function z=exp0904(x)z=6*x(1)+16*x(2)-9*x(3)-15*x(4)+x(5)-5*x(6);function [c1,c2]=exp09042(x)c1=[(0.03*x(1)+0.01*x(2))*x(3)/(x(1)+x(2))+0.02*x(5)-0.025*(x(3)+x(5));(0.03*x(1)+0.01*x(2))*x(4)/(x(1)+x(2))+0.02*x(6)-0.015*(x(4)+x(6))];c2=[x(1)+x(2)-x(3)-x(4)];x0=[100,100,100,100,100,100]; A1=[1 0 0 0 0 0; 0 1 0 0 0 0; 0 0 0 0 1 1; 0 0 1 0 1 0; 0 0 0 1 0 1];b1=[500,500,500,100,200]; A2=[1,1,-1,-1,0,0]; b2=[0];v1=[0,0,0,0,0,0];[x,fv,ef,out,lag,grad,hess]=fmincon(@exp0904, x0, A1,b1, A2, b2, v1, [], @exp09042)实验结果: x =8.7120 113.0749 5.0914 116.6955 0 83.3045 fv =-351.3069 iterations: 23不断改变初值(其他实验结果略),当x0=[0,100,0,100,0,100]时,发现函数只迭代一次,取到最大值。
公司进货为甲0t ,乙100t ,丙100t ,全部用于生产200t 产品B ,获利400千元,即40万元。
对于问题(2),改变约束条件的值,12563546500500500600200x x x x x x x x ≤⎧⎪≤⎪⎪+≤⎨⎪+≤⎪⎪+≤⎩ 发现公司进货为甲300t ,乙0t ,丙300t ,全部用于生产600t 产品A ,获利600千元,即60万元。
(程序略)对于问题(3),公司利润变为354612561234569()15()61310()6139155z x x x x x x x x x x x x x x =+++---+=--++-+若A 的最大市场需求量没变,公司进货为甲50t ,乙100t ,丙0t ,全部用于生产200t 产品B ,获利750千元,即75万元。
若A 的最大市场需求量增长为600t ,公司进货为甲50t ,乙100t ,丙0t ,全部用于生产200t 产品B ,获利750 千元,即75 万元。
可以看到此结果与A 的需求量无关。
(程序略)实验结果分析:本题是非线性规划问题,其约束是非线性的,必须通过不断改变初值来求得不同的极值,并从中找出最值。
本题要去原料甲乙先混合,这样就把产品A ,B 的产量联系起来,将一个线性规划问题转化为一个非线性规划问题。
对比:在 A 的需求量为100t 时乙为 16 千元/t 时:甲 0t ,乙100t ,丙100t ,全部用于生产200t 产品B ,获利400 千元,即40 万元。
乙为 13 千元/t 时:甲 50t ,乙150t ,丙0t ,全部用于生产200t 产品B ,获利750 千元,即75 万元。
浓度都恰好满足要求,即此时成本最低。
A 需求量的约束条件没有起直接约束作用,但却起到了间接约束的作用,因为在(2)中,A 的需求为600t 时,商家会选择生产A ,即在本题的需求约束条件,商家做出的决定为:完全满足需求量生产一种商品。
8.问题:美国某三种股票(A,B,C )12年(1943-1954年)的价格(已经包括了分红在内)每年的增长情况如下表所示(表中还给出了相应年份的500种股票的价格指数的增长情况)。
例如,表中第一个数据1.300倍,即收益为30%,其余数据的含义以此类推。
假设你在1955年时有一笔资金准备投资这三种股票,并期望年收益率至少达到15%,那么你应当如何投资?此外,考虑一下问题:(1) 当期望的年收益率在10%~100%变化时,投资组合和相应的风险如何变化?(2) 假设除了上述三种股票外,投资人还有一种无风险的投资方式,如购买国库劵。
假设国库券的年收益率为5%,如何考虑该投资问题?(3) 假设你手下目前握有的股票比例为:股票A 占50%,B 占35%,C 占15%。
这个比例与你得到的最优解可能有所不同,到实际股票市场上每次股票买卖通常总有交易费,例如按交易额的1%收取交易费,这时你是否仍需要对手上的股票进行买卖(换手),以便满足“最优解”的要求?1944 1.103 1.290 1.260 1.197526 1945 1.216 1.216 1.419 1.364361 1946 0.954 0.728 0.922 0.919287 1947 0.929 1.144 1.169 1.057080 1948 1.056 1.107 0.965 1.055012 1949 1.038 1.321 1.133 1.187925 1950 1.089 1.305 1.732 1.317130 1951 1.090 1.195 1.021 1.240164 1952 1.083 1.390 1.131 1.183675 1953 1.035 0.928 1.006 0.990108 19541.1761.7151.9081.526236(1) 模型:年投资收益率R=x1R1+x2R2+x3R3页是一个随机变量。
根据概率论的知识,投资的总期望收益为ER=x1*ER1+x2*ER2+x3*ER3年投资收益率的方差为 V=D(x1R1+x2R2+x3R3)=D(x1R1)+ D(x2R2)+ D(x3R3)+2cov(x1R1,x2R2)+ 2cov(x1R1,x3R3)+ 2cov(x2R2,x3R3) =x1^2DR1+ x2^2DR2+ x3^2DR3+2x1x2cov(R1,R2)+ 2x1x3cov(R1,R3)+ 2x2x3cov(R2,R3)=∑∑xixjcov(Ri,Rj)。
记股票A ,B ,C 每年的收益率分别为R1,R2和R3(注意表中的数据减去1以后才是年收益率),可以计算出年收益率的数学期望为ER10.0890833,ER20.213667,ER30.234583.===同样,可以计算股票A,B,C 年收益率的协方差矩阵为0.010807540.012407210.01307513cov 0.012407210.058391700.055426390.013075130.055426390.09422681⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦用决策变量x1,x2和x3分别表示投资人投资股票A,B,C 的比例.假设市场上没有其他投资渠道,且受上资金(可以不妨假设只有1个单位的资金)必须全部用于投资这三种股票,则:123123x ,x ,x 0,x x x 1≥++=本题中,方差可表示为[]1123230.010807540.012407210.01307513*0.012407210.058391700.05542639*0.013075130.055426390.09422681x V x x x x x ⎡⎤⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦实际的投资者可能面临许多约束条件,这里只考虑题中要求的年收益率(的数学期望)不低于15%,即1230.0890833*0.213667*x 0.234583*x ER x =++所以,最后的优化模型就是收益和资金约束下极小化收益的方差,其中ER 的约束在10%~100%之间波动。
由于目标函数V 是决策变量的二次函数,而约束都是线性函数,所以这是一个二次规划问题。
计算方法:这是一个二次优化问题,可以直接利用matlab 优化工具盒中给出的函数。
(注意将约束转化为标准型)H=[0.01080754,0.01240721,0.01307513;0.01240721,0.05839170,0.05542639;0.01307513,0.05542639,0.09422681]./2; f=[0,0,0];A1=[-0.0890833,-0.213667,-0.234583]; b1=-0.15; A2=[1,1,1]; b2=1; v1=[0,0,0]; v2=[1,1,1];[x,fval,exit,out]=quadprog(H,f,A1,b1,A2,b2,v1,v2) x =0.5301 0.35640.1135即股票A,B,C 分别投资53。