西安交通大学实验报告一、某棉纺厂的原棉需从仓库运送到各车间,各车间的原棉需求量,单位产品从各仓库运往各车间的运输费以及各仓库的库存如表所列,问如何安排运输任务使得总运费最小?车间123库存容量121350222430334210需求401535问题分析:该题较为简单,只要根据表中数据确定不等式,找到上下限,在根据书上的已有例子,综合自己的判断,就可写出。f=[2,1,3,2,2,4,3,4,2];A=[1,1,1,0,0,0,0,0,0;0,0,0,1,1,1,0,0,0;0,0,0,0,0,0,1,1,1];b=[50;30;10];aeq=[1,0,0,1,0,0,1,0,0;0,1,0,0,1,0,0,1,0;0,0,1,0,0,1,0,0,1];beq=[40,15,35];vlb=[0,0,0,0,0,0,0,0,0];vub=[];[x,fval]=linprog(f,A,b,aeq,beq,vlb,vub)结果分析:由运行结果可知,第一车间由1,2仓库分别运进10,20单位的原棉,第二车间由1仓库运进15单位的原棉,第三车间由1,3仓库分别运进25,10单位的原棉,即可使总运费最小。二、某校学生在大学三年级第一学期必须要选修的课程只有一门,可供限定选修的课程有8门,任意选修课程有10门,由于一些课程之间互有联系,所以可能在选修某门课程中必须同时选修其他课程,这18门课程的学分数和要求同时选修课程的相应信息如表:课号12345678学分55443332选修要求12课号9101112131415161718学分3332221111选修要求864576限定选修课任意选修课按学校规定,每个学生每学期选修的总学分不能少于21学分,因此,学生必须在上述18门课程中至少选修19学分学校同时还规定学生每学期选修任意选修课的学分不能少于3学分,也不能超过6学分,为了达到学校的要求,试为该学生确定一种选课方案。问题分析:本题是一道典型的0-1规划的问题,本体的难点在于,选了B一定要选A,但选了A却有选B,和不选B这两种方案,故不可采用以前普通的计算方式,考虑相减,即A-B=0就可解决该问题。c=[-5,-5,-4,-4,-3,-3,-3,-2,-3,-3,-3,-2,-2,-2,-1,-1,-1,-1];a=[-5,-5,-4,-4,-3,-3,-3,-2,-3,-3,-3,-2,-2,-2,-1,-1,-1,-1;0,0,0,0,0,0,0,0,3,3,3,2,2,2,1,1,1,1;0,0,0,0,0,0,0,0,-3,-3,-3,-2,-2,-2,-1,-1,-1,-1;-1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0;0,-1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,-1,1,0,0,0,0,0,0,0,0,0;0,0,0,0,0,-1,0,0,0,1,0,0,0,0,0,0,0,0;0,0,0,-1,0,0,0,0,0,0,1,0,0,0,0,0,0,0;0,0,0,0,-1,0,0,0,0,0,0,1,0,0,0,0,0,0;0,0,0,0,0,0,-1,0,0,0,0,0,1,0,0,0,0,0;0,0,0,0,0,-1,0,0,0,0,0,0,0,1,0,0,0,0];b=[-19;6;-3;0;0;0;0;0;0;0;0];[x,favl]=bintprog(c,a,b)favl=-favl;结果分析:有实验结果可知,连选前10门课才可达到学校的要求。虽然此时已远远超出了学校的要求,但仍为最优方案。三、一家制造计算机的公司计划生产A,B两种型号的计算机产品,他们使用相同通的微处理芯片,但A产品使用27英寸显示器,B产品使用31英寸显示器,除了400000美元的固定费用外,每台A产品成本为1950美元,每台B产品成本为2260美元,公司建议每台A产品的零售价3390美元,每台B产品的零售价为3980美元,营销人员估计,在销售这些计算机的竞争市场上,同一类型的计算机多买一台,它的价格就下降0.15美元,同时,一种类型的计算机销售也会影响另一种计算机的销售,估计每销售一台A产品,就会使B产品的零售价格下降0.04美元,每销售一台B产品就会使A产品的零售价下降0.06美元,假设该公司制造的所有计算机都可以售出,那么,该公司应该生产每种计算机个多少台,才能使利润最大?问题分析:该问题实际上是关于二元函数的极值问题,可以通过计算偏导数,求其驻点,然后再判别这些驻点是否为极值。并且,B和A的出售量又会相互影响,使问题更加复杂。故在本题中采用分两步的方法,第一步,简化方程,找出可能存在的极值点。第二步,将该驻点作为初始值代入方程,找到极值点。fun='-(3390-0.15*x(1)-0.06*x(2))*x(1)-(3980-0.15*x(2)-0.04*x(1))*x(2)';x0=[0,0];[x,fval]=fminsearch(fun,x0)fmax=-fvalfunctiony=fun(x)y(1)=((3390-0.15*x(1)-0.06*x(2))*x(1)-1950*x(1)-400000);y(2)=((3980-0.15*x(2)-0.04*x(1))*x(2)-2260*x(2)-400000);y=-y(1)-y(2);x0=[7738,10687];[x,y]=fminunc(@fun,x0)z=-y结果分析:在第一步中,找出x1=7738,x2=10687为其驻点,将其代入方程可得出x1=3250,x2=4650为其极值点,即A生产3250台,B生产4650台时,可以获得最大利润。四、下表中,X是华氏温度,Y是一分钟内一只蟋蟀的鸣叫次数,试用多项式模型拟合这些数据,画出拟合曲线,分析你的拟合模型是否很好?观测序号12345678910X46495152545657585960Y40505563727077739073观测序号11121314151617181920X61626364656667686970Y968899110113120127137132137问题分析:该问题是一道典型的曲线拟合问题,故其应符合曲线拟合的最佳条件,即找到一条曲线,是题目中的数据尽可能多的经过,或者靠近给出的曲线,使得经曲线拟合出来的数据与实际测得的数据尽可能的接近。故应先假设出一个函数y=f(x),然后根据实际测得的数据来确定函数中的参数,使得在各处的误差较小。根据书上教授的内容,最小二乘法不失为一个较为便捷有效的方法,通过题目给出的数据确定曲线的横,纵坐标,然后规定一个e值,使e等于拟合的次数,在matlab编写拟合曲线。源代码:x=[4649515254565758596061626364666768717271];y=[40505563727077739093968899110113120127137132137];plot(x,y,'k.','markersize',20);axis([35,75,40,150]);k=polyfit(x,y,7);q=40:1:85;w=polyval(k,q);holdonplot(q,w,'k-','linewidth',2)结果分析:通过图表可知,随着温度的上升,蟋蟀在单位时间内鸣叫的次数,先下降,再上升,然后接着下降,并在70时达到最高点,并且在45~70这一段曲线较为准确,当小于45时,可明显看出曲线上升的过于剧烈,与实际不符,若增测数据点,可能会有所改善。五、在下列数据中,W表示一条鱼的重量,l表示它的长度,使用最小二乘准则拟合模型W=kl3长度l(英寸)14.512.517.2514.512.62517.7514.12512.625重量w(盎司)2717412617492316(2)**在下列数据中,g表示一条鱼的身围,使用最小二乘准则拟合模型W=klg2长度l(英寸)14.512.517.2514.512.62517.7514.12512.625身围g(英寸)9.758.37511.09.758.512.59.08.5重量w(盎司)2717412617492316(3)**两个模型哪个拟合数据较好?为什么?问题分析:与上一题类似,该问题亦是一个典型的曲线拟合问题,故其要点应与上一题类似,即,如何找到一条曲线,使拟合出来的数据与实际数据的偏差较小。(1)l=[14.512.517.2514.512.62517.7514.12512.625];w=[2717412617492316];a=0;b=0;fori=1:8a=a+l(i)^4;b=b+l(i)*w(i);endA=aB=bq=inv(A)*Bfori=1:8x(i)=q(1)*l(i)^3;endplot(l,w,'r*--',l,x,'b.--')(2)l=[14.512.517.2514.512.62517.7514.12512.625];g=[9.758.37511.09.758.512.59.08.5];w=[2717412617492316];plot3(l,g,w,'k.','markersize',25)axis([10207121555])a=l.*(g.^2)b=inv(a*(a.'))*(a)*(w.')x=10:0.1:20y=7:0.1:13[X,Y]=meshgrid(x,y)Z=b*X.*Y.^2surf(X,Y,Z)shadingflat(3)就个人而言,认为2中的拟合数据较好,因为鱼的重量不仅与其身长相关,亦与身围有密不可分的联系,综合考虑才能得到较好结果。结果分析:从图像中可以看出,随着鱼身长与身围的增大,其质量在不断增加。(1),(2)的对比也可得出,在面对实际问题做曲线拟合时,要考虑多方面的因素,这样才能得到较为真实准确的结果。六、某工厂利用甲、乙两种原料生产A1,A2,A3三种产品,每月可供应的原料数量(单位:t)每万件产品所需各种原料的数量及每万件产品的价格如表8.4所示:应如何制定每月的最优生产计划,使得总收益最大?问题分析:这是一个典型的线性规划问题,由于本题中共有6个需要控制的量,故有6个变量,两个限制条件即两个不等式约束,而后利用matlab中的linprog函数即可求解。源代码:c=[-12,-5,-4,-12,-5,-4];A=[4,3,1,0,0,0;0,0,0,2,6,3];b=[180;200];vlb=[000000];[x,min]=linprog(c,A,b,[],[],vlb,[])max=-minA1A2A3甲431180乙263200价格/万元/万件1254原料表8.4原料价格表每万件产品所需原料/t每月原料供应量/t结论:故应每月用甲生产180吨A3,用乙生产100吨A1,如此可得到最大利润为1920元。七设有三种证券S1,S2,S3,期望收益率分别为10%,15%,40%,风险分别是10%,5%,20%,假定投资总风险用最大的投资股票的风险来度量,且同期银行存款利率为5%,无风险,为投资者建议一种投资策略(投资比例),使其尽可能获得最大收益。问题分析:假设投资四种股票的比例为1x,2x,3x,4x,投资银行的比例为5x,依此建立模型并用matlab逐步改变风险额度,做出的收益—风险度如下:a=0while(1.1-a)1c=[-0.1,-0.15,-0.4,-0.05];aeq=[1,1,1,1];beq=[1];A=[0.1,0,0,0;0,0.05,0,0;0,0,0.2,0];b=[a,a,a];vlb=[0,0,0,0];vub=[];[x,fval]=linprog(c,A,b,aeq,beq,vlb,vub);ax=x'Q=-fvalplot(a,Q,'.')axis([0,0.1,0,0.3])holdona=a+0.001;endxlabel('a'),ylabel('Q')从执行结果及图示,我们可以得到以下结论: