西安交通大学实验报告
一、某棉纺厂的原棉需从仓库运送到各车间,各车间的原棉需求量,单位产品从各仓库运往各车间的运输费以及各仓库的库存如表所列,问如何安排运输任务使得总运费最小?
问题分析:
该题较为简单,只要根据表中数据确定不等式,找到上下限,在根据书上的已有例子,综合自己的判断,就可写出。
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门课程的学分数和要求同时选修课程的相应信息如表:
按学校规定,每个学生每学期选修的总学分不能少于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=-fval
function y=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 是一分钟内一只蟋 蟀的鸣叫次数,试用多项式模型拟合这些数据, 画出拟合曲线,分析你的拟合模型是否很好?
问题分析:
该问题是一道典型的曲线拟合问题,故其应符合曲线拟合的最佳条件,即找到一条曲线,是题目中的数据尽可能多的经过,或者靠近给出的曲线,使得经曲线拟合出来的数据与实际测得的数据尽可能的接近。故应先假设出一个函数y=f(x),然后根据实际测得的数据来确定函数中的参数,使得在各处的误差较小。根据书上教授的内容,最小二乘法不失为一个较为便捷有效的方法,通过题目给出的数据确定曲线的横,纵坐标,然后规定一个e 值,使e 等于拟合的次数,在matlab 编写拟合曲线。
源代码:
x=[46 49 51 52 54 56 57 58 59 60 61 62 63 64 66 67 68 71 72 71]; y=[40 50 55 63 72 70 77 73 90 93 96 88 99 110 113 120 127 137 132 137];
plot(x,y,'k.','markersize',20);
axis([35,75,40,150]);
k=polyfit(x,y,7);
q=40:1:85;
w=polyval(k,q);
hold on
plot(q,w,'k-','linewidth',2)
结果分析:
通过图表可知,随着温度的上升,蟋蟀在单位时间内鸣叫的次数,先下降,再上升,然后接着下降,并在70时达到最高点,并且在45~70这一段曲线较为准确,当小于45时,可明显看出曲线上升的过于剧烈,与实际不符,若增测数据点,可能会有所改善。
五、在下列数据中,W 表示一条鱼的重量,l 表示 它的长度,使用最小二乘准则拟合模型W=kl3
(2)** 在下列数据中,g 表示一条鱼的身围,使用最 小二乘准则拟合模型W=klg2
(3)** 两个模型哪个拟合数据较好?为什么?
问题分析:
与上一题类似,该问题亦是一个典型的曲线拟合问题,故其要点应与上一题类似,即,如何找到一条曲线,使拟合出来的数据与实际数据的偏差较小。
(1)
l=[14.5 12.5 17.25 14.5 12.625 17.75 14.125 12.625]; w=[27 17 41 26 17 49 23 16]; a=0;b=0; for i=1:8 a=a+l(i)^4; b=b+l(i)*w(i); end
A=a B=b q=inv(A)*B for i=1:8
x(i)=q(1)*l(i)^3; end
plot(l,w,'r*--',l,x,'b.--')
(2)
l=[14.5 12.5 17.25 14.5 12.625 17.75 14.125 12.625]; g=[9.75 8.375 11.0 9.75 8.5 12.5 9.0 8.5]; w=[27 17 41 26 17 49 23 16]; plot3(l,g,w,'k.','markersize',25) axis([10 20 7 12 15 55]) a=l.*(g.^2)
b=inv(a*(a.'))*(a)*(w.') x=10:0.1:20
y=7:0.1:13
[X,Y]=meshgrid(x,y) Z=b*X.*Y.^2 surf(X,Y,Z) shading flat
(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=[0 0 0 0 0 0];
[x,min]=linprog(c,A,b,[],[],vlb,[]) max=-min
结论:
故应每月用甲生产180吨A3,用乙生产100吨A1,如此可得到最大利润为1920元。
七设有三种证券S1,S2,S3, 期望收益率分别为10%,15%,40%,风险分别是10%,5%,20%,假定投资总风险用最大的投资股票的风险来度量,且同期银行存款利率为5%,无风险,为投资者建议一种投资策略(投资比例) ,使其尽可能获得最大收益。
问题分析:
假设投资四种股票的比例为x 1,x 2,x 3,x 4,投资银行的比例为x 5,依此建立模型并用matlab 逐步改变风险额度,做出的收益—风险度如下:
a=0
while(1.1-a)>1
c=[-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); a x=x' Q=-fval plot(a,Q,'.') axis([0,0.1,0,0.3]) hold on a=a+0.001; end
xlabel('a'),ylabel('Q')
从执行结果及图示,我们可以得到以下结论: 1、 风险越大,收益越大。
2、 当投资越分散时,投资者承担的风险越小。冒险的投资者会出现集中投资的情况,而保守的投资者则尽量分散投资。
3、 图线分别在a=0.03和a=0.04出现两个转折点,在a=0.03左边时,
当风险增加,收益增长较快,在a=0.03和a=0.04之间时,风险增长而收益增长减慢。在a=0.04右边,风险增加时收益增长进一步减慢。对风险厌恶型投资者来说,应选择转折点a=0.03作为最优投资组合: a = 0.0300
x = 0.2500 0.6000 0.1500 0.0000 Q =0.1750
对风险喜好型投资者来说,应选择右端转折点a=0.04作为最优投资组合: a 0.0400
x = 0.0000 0.8000 0.2000 0.0000 Q = 0.2000
八、有一形状较为复杂,但表面很光滑的曲面工件。通过科学手段,将其放置于某一空间坐标系下,测得曲面上若干个点的坐标如下:
要求:
(1) 画出该曲面工件的图形
(2) 在已知相邻的横纵坐标之间分别插入三个分点,用interp2命令计算出所有点处的竖坐标,画出相应的插值曲面。 (3) 用不同方法求出该曲面工件表面积的近似值 源代码: x=-5:1:5; y=-5:1:5;
[xx,yy]=meshgrid(x,y); zz=Sheet1; figure(1); mesh(xx,yy,zz); figure(2) xb=-5:0.25:5; yb=-5:0.25:5;
[xxb,yyb]=meshgrid(xb,yb); zzb=interp2(xx,yy,zz,xxb,yyb,'cubic'); mesh(xxb,yyb,zzb)
[Fx,Fy]=gradient(zz,0.001,0.001);
S=sqrt(1+Fx.^2+Fy.^2)*0.000001.*( ~isnan(zz) ) ; sum(S(~isnan(S)))
原曲面:
插值后的曲面:
算的的曲面面积:
ans =0.7669
九、煤矿的储量估计,下表给出了某露天煤矿在平面矩形区域(1100mX700m)上,在纵横均匀的网格交点处测得的煤层厚度(单位:m)(由于客观原因,有些点无法测量煤层厚度,这里用/标出),其中的每个网格都为(100mX100m) 的小矩形,试根据这些数据, 来估算出该矩形区域煤矿的储藏量(体积)
源代码: x=0:100:1000; y=0:100:600;
z=[14.2,14.1,12.5,13.5,17.2,12.9,8.8,14.7,8.0,13.0,10.3; 19.1,17.9,16.7,15.6,18.2,13,6.4,8.9,9.2,11.7,7.0; 12.4,12,13.5,13.5,17.8,16.9,13.2,16.5,17.1,17.7,18.3;
7.5,12.6,14.9,18.7,17.7,17.5,14.7,13,9.9,7.6,6.5; 8.9,7.8,12.4,13.5,15.7,17.6,11.7,9.6,9.2,9.5,8.6; 8.2,9.3,11.7,13.7,13.6,16.5,12.5,8.7,9.7,7.6,9.5; 8.1,10.8,8.6,11.8,12.5,11.3,13.4,11.0,8.4,5.0,0.88]; [x0,y0]=meshgrid(0:1:1000,0:1:600); z1=interp2(x,y,z,x0,y0,'linear'); z2=interp2(x,y,z,x0,y0,'cubic'); z3=interp2(x,y,z,x0,y0,'spline'); %surf(x0,y0,z1) %surf(x0,y0,z2) surf(x0,y0,z3) shading interp; for i=1:601
for j=1:1001 %M(i,j)=z1(i,j); %M(i,j)=z2(i,j); M(i,j)=z3(i,j); end end sum(sum(M))
储量估计: ans = 7.5956e+006
储量估计: ans = 7.6190e+006
第三种插值得到的曲面
:
储量估计: ans =7.6076e+006
实验感想:通过这几次上机实验,我们掌握了如何用matlab 求解最优化问题,并学会的数据的拟合与插值,这部分内容与生产实际问题更为相似,因而引起了我们的兴趣。虽然本学期的数学实验课结束了,但我们运用matlab 解决实际问题的热情没有消失,我们计划通过课外的学习,在这条路上尝试着者走更远。
西安交通大学实验报告
一、某棉纺厂的原棉需从仓库运送到各车间,各车间的原棉需求量,单位产品从各仓库运往各车间的运输费以及各仓库的库存如表所列,问如何安排运输任务使得总运费最小?
问题分析:
该题较为简单,只要根据表中数据确定不等式,找到上下限,在根据书上的已有例子,综合自己的判断,就可写出。
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门课程的学分数和要求同时选修课程的相应信息如表:
按学校规定,每个学生每学期选修的总学分不能少于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=-fval
function y=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 是一分钟内一只蟋 蟀的鸣叫次数,试用多项式模型拟合这些数据, 画出拟合曲线,分析你的拟合模型是否很好?
问题分析:
该问题是一道典型的曲线拟合问题,故其应符合曲线拟合的最佳条件,即找到一条曲线,是题目中的数据尽可能多的经过,或者靠近给出的曲线,使得经曲线拟合出来的数据与实际测得的数据尽可能的接近。故应先假设出一个函数y=f(x),然后根据实际测得的数据来确定函数中的参数,使得在各处的误差较小。根据书上教授的内容,最小二乘法不失为一个较为便捷有效的方法,通过题目给出的数据确定曲线的横,纵坐标,然后规定一个e 值,使e 等于拟合的次数,在matlab 编写拟合曲线。
源代码:
x=[46 49 51 52 54 56 57 58 59 60 61 62 63 64 66 67 68 71 72 71]; y=[40 50 55 63 72 70 77 73 90 93 96 88 99 110 113 120 127 137 132 137];
plot(x,y,'k.','markersize',20);
axis([35,75,40,150]);
k=polyfit(x,y,7);
q=40:1:85;
w=polyval(k,q);
hold on
plot(q,w,'k-','linewidth',2)
结果分析:
通过图表可知,随着温度的上升,蟋蟀在单位时间内鸣叫的次数,先下降,再上升,然后接着下降,并在70时达到最高点,并且在45~70这一段曲线较为准确,当小于45时,可明显看出曲线上升的过于剧烈,与实际不符,若增测数据点,可能会有所改善。
五、在下列数据中,W 表示一条鱼的重量,l 表示 它的长度,使用最小二乘准则拟合模型W=kl3
(2)** 在下列数据中,g 表示一条鱼的身围,使用最 小二乘准则拟合模型W=klg2
(3)** 两个模型哪个拟合数据较好?为什么?
问题分析:
与上一题类似,该问题亦是一个典型的曲线拟合问题,故其要点应与上一题类似,即,如何找到一条曲线,使拟合出来的数据与实际数据的偏差较小。
(1)
l=[14.5 12.5 17.25 14.5 12.625 17.75 14.125 12.625]; w=[27 17 41 26 17 49 23 16]; a=0;b=0; for i=1:8 a=a+l(i)^4; b=b+l(i)*w(i); end
A=a B=b q=inv(A)*B for i=1:8
x(i)=q(1)*l(i)^3; end
plot(l,w,'r*--',l,x,'b.--')
(2)
l=[14.5 12.5 17.25 14.5 12.625 17.75 14.125 12.625]; g=[9.75 8.375 11.0 9.75 8.5 12.5 9.0 8.5]; w=[27 17 41 26 17 49 23 16]; plot3(l,g,w,'k.','markersize',25) axis([10 20 7 12 15 55]) a=l.*(g.^2)
b=inv(a*(a.'))*(a)*(w.') x=10:0.1:20
y=7:0.1:13
[X,Y]=meshgrid(x,y) Z=b*X.*Y.^2 surf(X,Y,Z) shading flat
(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=[0 0 0 0 0 0];
[x,min]=linprog(c,A,b,[],[],vlb,[]) max=-min
结论:
故应每月用甲生产180吨A3,用乙生产100吨A1,如此可得到最大利润为1920元。
七设有三种证券S1,S2,S3, 期望收益率分别为10%,15%,40%,风险分别是10%,5%,20%,假定投资总风险用最大的投资股票的风险来度量,且同期银行存款利率为5%,无风险,为投资者建议一种投资策略(投资比例) ,使其尽可能获得最大收益。
问题分析:
假设投资四种股票的比例为x 1,x 2,x 3,x 4,投资银行的比例为x 5,依此建立模型并用matlab 逐步改变风险额度,做出的收益—风险度如下:
a=0
while(1.1-a)>1
c=[-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); a x=x' Q=-fval plot(a,Q,'.') axis([0,0.1,0,0.3]) hold on a=a+0.001; end
xlabel('a'),ylabel('Q')
从执行结果及图示,我们可以得到以下结论: 1、 风险越大,收益越大。
2、 当投资越分散时,投资者承担的风险越小。冒险的投资者会出现集中投资的情况,而保守的投资者则尽量分散投资。
3、 图线分别在a=0.03和a=0.04出现两个转折点,在a=0.03左边时,
当风险增加,收益增长较快,在a=0.03和a=0.04之间时,风险增长而收益增长减慢。在a=0.04右边,风险增加时收益增长进一步减慢。对风险厌恶型投资者来说,应选择转折点a=0.03作为最优投资组合: a = 0.0300
x = 0.2500 0.6000 0.1500 0.0000 Q =0.1750
对风险喜好型投资者来说,应选择右端转折点a=0.04作为最优投资组合: a 0.0400
x = 0.0000 0.8000 0.2000 0.0000 Q = 0.2000
八、有一形状较为复杂,但表面很光滑的曲面工件。通过科学手段,将其放置于某一空间坐标系下,测得曲面上若干个点的坐标如下:
要求:
(1) 画出该曲面工件的图形
(2) 在已知相邻的横纵坐标之间分别插入三个分点,用interp2命令计算出所有点处的竖坐标,画出相应的插值曲面。 (3) 用不同方法求出该曲面工件表面积的近似值 源代码: x=-5:1:5; y=-5:1:5;
[xx,yy]=meshgrid(x,y); zz=Sheet1; figure(1); mesh(xx,yy,zz); figure(2) xb=-5:0.25:5; yb=-5:0.25:5;
[xxb,yyb]=meshgrid(xb,yb); zzb=interp2(xx,yy,zz,xxb,yyb,'cubic'); mesh(xxb,yyb,zzb)
[Fx,Fy]=gradient(zz,0.001,0.001);
S=sqrt(1+Fx.^2+Fy.^2)*0.000001.*( ~isnan(zz) ) ; sum(S(~isnan(S)))
原曲面:
插值后的曲面:
算的的曲面面积:
ans =0.7669
九、煤矿的储量估计,下表给出了某露天煤矿在平面矩形区域(1100mX700m)上,在纵横均匀的网格交点处测得的煤层厚度(单位:m)(由于客观原因,有些点无法测量煤层厚度,这里用/标出),其中的每个网格都为(100mX100m) 的小矩形,试根据这些数据, 来估算出该矩形区域煤矿的储藏量(体积)
源代码: x=0:100:1000; y=0:100:600;
z=[14.2,14.1,12.5,13.5,17.2,12.9,8.8,14.7,8.0,13.0,10.3; 19.1,17.9,16.7,15.6,18.2,13,6.4,8.9,9.2,11.7,7.0; 12.4,12,13.5,13.5,17.8,16.9,13.2,16.5,17.1,17.7,18.3;
7.5,12.6,14.9,18.7,17.7,17.5,14.7,13,9.9,7.6,6.5; 8.9,7.8,12.4,13.5,15.7,17.6,11.7,9.6,9.2,9.5,8.6; 8.2,9.3,11.7,13.7,13.6,16.5,12.5,8.7,9.7,7.6,9.5; 8.1,10.8,8.6,11.8,12.5,11.3,13.4,11.0,8.4,5.0,0.88]; [x0,y0]=meshgrid(0:1:1000,0:1:600); z1=interp2(x,y,z,x0,y0,'linear'); z2=interp2(x,y,z,x0,y0,'cubic'); z3=interp2(x,y,z,x0,y0,'spline'); %surf(x0,y0,z1) %surf(x0,y0,z2) surf(x0,y0,z3) shading interp; for i=1:601
for j=1:1001 %M(i,j)=z1(i,j); %M(i,j)=z2(i,j); M(i,j)=z3(i,j); end end sum(sum(M))
储量估计: ans = 7.5956e+006
储量估计: ans = 7.6190e+006
第三种插值得到的曲面
:
储量估计: ans =7.6076e+006
实验感想:通过这几次上机实验,我们掌握了如何用matlab 求解最优化问题,并学会的数据的拟合与插值,这部分内容与生产实际问题更为相似,因而引起了我们的兴趣。虽然本学期的数学实验课结束了,但我们运用matlab 解决实际问题的热情没有消失,我们计划通过课外的学习,在这条路上尝试着者走更远。