重大数学实验六非线性规划(共6页).doc
精选优质文档-倾情为你奉上开课学院、实验室: 实验时间 : 课程名称数学实验实验项目名 称非线性规划与多目标规划实验项目类型验证演示综合设计其他指导教师成 绩实验目的1 学习非线性规划模型的标准形式和建模方法;2 掌握建立非线性规划模型的基本要素和求解方法;3 熟悉MATLAB软件求解非线性规划模型的基本命令;4 通过范例学习,了解建立非线性规划模型的全过程,与线性规划比较其难点何在。 本实验包括基础实验、应用实验和创新实验,基础实验和应用实验要求独立完成,创新实验要求合作完成。通过该实验的学习,使学生掌握最优化技术,认识面对什么样的实际问题,提出假设和建立优化模型,并且使学生学会使用MATLAB软件和Lingo软件求解非线性规划模型,注意初始解的选择不同会导致软件求出的解的变化(是局部最优解还是整体最优解)。解决现实生活中的最优化问题是本科生学习阶段中一门重要的课程,因此,本实验对学生的学习尤为重要。基础实验一、实验内容1建立非线性规划模型的基本要素和步骤;2熟悉使用MATLAB命令对非线性规划模型进行计算与灵敏度分析;3学会计算无约束优化问题和有约束优化问题的技巧。二、实验过程(一般应包括实验原理或问题分析,算法设计、程序、计算、图表等, 实验结果及分析) 基础实验:1.求解无约束优化:1) 画出该曲面图形, 直观地判断该函数的最优解;2) 使用fminunc命令求解, 能否求到全局最优解?%第一题1):X=-5:0.1:5;Y=X;x1,x2=meshgrid(X,Y);R=-0.2*sqrt(0.5*(x1.2+x2.2);P=0.5*(cos(2*pi.*x1)+cos(2*pi.*x2);r=-20*exp(R);p=-1*exp(P);yf=r+p+22.713;mesh(x1,x2,yf);title('第一题图')运行图:%第一题2):%QQ11.m:function f=QQ11(x)R=-0.2*sqrt(0.5*(x(1)2+x(2)2);P=0.5*(cos(2*pi*x(1)+cos(2*pi*x(2);r=-20*exp(R);p=-1*exp(P);f=r+p+22.713%QQ12.m:x1=-1 -1;options=optimset('display','iter','tolfun',1e-10);x,fval=fminunc('QQ11',x1,options)输出:f = 3.6201 f = 3.6201 f = 3.6201 f = -0.0053 f = -0.0053 f = -0.0053f= 1.7905 f = 1.7905 f = 1.7905 f = 0.0812 f = 0.0812 f = 0.0812f = 0.0062 f = 0.0062 f = 0.0062 f = -0.0034 f = -0.0034 f = -0.0034f = -0.0050 f = -0.0050 f = -0.0050 f = -0.0052 f = -0.0052 f = -0.0052f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053x = 0 0fval = -0.00532. 求解非线性规划,试判定你所求到的解是否是最优?分别建立3个M文件:%QQ21.m:function f=QQ21(x)f=-(10(-7)*0.201*(x(1)4)*x(2)*x(3)2;%QQ22.m:function G,Geq=QQ22(x)G=x(2)*x(1)2-675;-1*(10(-7)*x(1)2*x(3)2-0.419;Geq=;%QQ23.m:x0=8 5 2;A=;b=;Aeq=;bed=;lb=0 0 0;ub=36 5 125;x,fval=fmincon('QQ21',x0,A,b,Aeq,bed,lb,ub,'QQ22');x1=x(1),x2=x(2),x3=x(3),fMax=-fval输出结果: x1 = 8.1242 x2 = 5 x3 = 38.7417 fMax = 0.6571当取x0=2 1 1时,输出为:x1 = 2 x2 = 1 x3 = 1 fMax = 3.2160e-07可见当初始值不同时,所得结果是不同,由此可知所求结果并非最优解。应用实验(或综合实验)一、实验内容4. 组合投资问题设有8种投资选择:5支股票,2种债券,黄金. 投资者收集到这些投资项目的年收益率的历史数据 (见表6.1), 投资者应如何分配他的投资资金,即需要确定这8种投资的最佳投资分配比例.表6.1 8种投资项目的年收益率历史数据 项目年份债券1债券2股票1股票2股票3股票4股票5黄金19730.075-0.058-0.148-0.185-0.3020.023-0.1490.67719740.0840.02-0.265-0.284-0.3380.002-0.2320.72219750.0610.0560.3710.3850.3180.1230.354-0.2419760.0520.1750.2360.2660.280.1560.025-0.0419770.0550.002-0.074-0.0260.0930.030.1810.219780.077-0.0180.0640.0930.1460.0120.3260.29519790.109-0.0220.1840.2560.3070.0230.0481.21219800.127-0.0530.3230.3370.3670.0310.2260.29619810.1560.003-0.051-0.037-0.010.073-0.023-0.31219820.1170.4650.2150.1870.2130.311-0.0190.08419830.092-0.0150.2240.2350.2170.080.237-0.12819840.1030.1590.0610.03-0.0970.150.074-0.17519850.080.3660.3160.3260.3330.2130.5620.00619860.0630.3090.1860.1610.0860.1560.6940.21619870.061-0.0750.0520.023-0.0410.0230.2460.24419880.0710.0860.1650.1790.1650.0760.283-0.13919890.0870.2120.3160.2920.2040.1420.105-0.02319900.080.054-0.032-0.062-0.170.083-0.234-0.07819910.0570.1930.3040.3420.5940.1610.121-0.04219920.0360.0790.0760.090.1740.076-0.122-0.07419930.0310.2170.10.1130.1620.110.3260.14619940.045-0.1110.012-0.001-0.032-0.0350.078-0.01二、问题分析设投资的期限是一年,不妨设投资总数为1个单位,用于第i项投资的资金比例为xi , X=(x1,x2,xn)称为投资组合向量. 显然有:x1+x2+xn=1, xi0;每个投资项目的收益率可以看成一个随机变量,其均值可以用样本均值(历史均值)来近似. 设rjk 代表第j种投资在第k年的收益率. 则预计第j种投资的平均收益率为 :收益的风险可定义为收益的波动程度,可用样本方差(历史方差)来度量, 为:投资组合X=(x1,x2,xn)在第 k年的收益率为: 投资组合X=(x1,x2,xn) 的平均收益率为: 投资组合X=(x1,x2,xn)的风险为: 双目标: 最大化利润,最小化风险s.t. x1+x2+x8=1, xi³0, i=1,2,8三、数学模型的建立与求解(一般应包括模型、求解步骤或思路,程序放在后面的附录中) 建立双目标模型: 最大化利润,最小化风险:s.t. x1+x2+x8=1, xi³0, i=1,2,8四、实验结果及分析 由图可知,高回报的收益伴随着高风险,这也与实际相符。其中图中收益最低(风险最低)一点投资组合为:x = 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000收益为: Income = 0.1412风险系数为:Risk = 0.0554收益最高(风险最高)一点投资组合为:x = 0.8574 0.0086 0.0039 0.0035 0.0051 0.0927 0.0187 0.0100收益为:Income=0.1412 0.1408 0.1387 0.1347 0.1315 0.1296 0.1244 0.1152风险系数为:Risk=0.0554 0.0506 0.0361 0.0262 0.0219 0.0203 0.0160 0.0098五、 附录(程序等)首先将各投资收益资料建立成数据资料:Investment.dat并将其导入到Matlab中:0.075-0.058-0.148-0.185-0.3020.023-0.1490.6770.0840.02-0.265-0.284-0.3380.002-0.2320.7220.0610.0560.3710.3850.3180.1230.354-0.240.0520.1750.2360.2660.280.1560.025-0.040.0550.002-0.074-0.0260.0930.030.1810.20.077-0.0180.0640.0930.1460.0120.3260.2950.109-0.0220.1840.2560.3070.0230.0481.2120.127-0.0530.3230.3370.3670.0310.2260.2960.1560.003-0.051-0.037-0.010.073-0.023-0.3120.1170.4650.2150.1870.2130.311-0.0190.0840.092-0.0150.2240.2350.2170.080.237-0.1280.1030.1590.0610.03-0.0970.150.074-0.1750.080.3660.3160.3260.3330.2130.5620.0060.0630.3090.1860.1610.0860.1560.6940.2160.061-0.0750.0520.023-0.0410.0230.2460.2440.0710.0860.1650.1790.1650.0760.283-0.1390.0870.2120.3160.2920.2040.1420.105-0.0230.080.054-0.032-0.062-0.170.083-0.234-0.0780.0570.1930.3040.3420.5940.1610.121-0.0420.0360.0790.0760.090.1740.076-0.122-0.0740.0310.2170.10.1130.1620.110.3260.1460.045-0.1110.012-0.001-0.032-0.0350.078-0.01建立函数M文件:%第4题function Income,Risk=QQ31(R)Average=zeros(1,8);for i=1:8 Average(i)=mean(R(:,i);endA1=;b1=;A2=ones(1,8);b2=1;v1=zeros(1,8);h=zeros(8,8);for i=1:8 for j=1:8 xfz=cov(R(:,i),R(:,j); h(i,j)=xfz(1,2); p(i,j)=h(i,j); if i=j h(i,j)=2*h(i,j); end endendfor t=1:11 n=(t-1)/10; c=(n-1)*Average; H=n*h; x,fv,ef=quadprog(H,c,A1,b1,A2,b2,v1) Income(t)=sum(x'.*Average) Risk(t)=sum(sum(x*x'.*p)endEnd运行M文件:R=Investment;Income,Risk=QQ31(R);plot(Income,Risk,'r'),hold on,plot(Income,Risk,'k*'),grid,title(第4题图),hold off 总结与体会教师签名年 月 日专心-专注-专业