重大数学实验六非线性规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0.075 0.084 0.061 0.052 0.055 0.077 0.109 0.127 0.156 0.117 0.092 0.103 0.08 0.063 0.061 0.071 0.087 0.08 0.057 0.036 0.031 0.045 -0.058 0.02 0.056 0.175 0.002 -0.018 -0.022 -0.053 0.003 0.465 -0.015 0.159 0.366 0.309 -0.075 0.086 0.212 0.054 0.193 0.079 0.217 -0.111 -0.148 -0.265 0.371 0.236 -0.074 0.064 0.184 0.323 -0.051 0.215 0.224 0.061 0.316 0.186 0.052 0.165 0.316 -0.032 0.304 0.076 0.1 0.012 -0.185 -0.284 0.385 0.266 -0.026 0.093 0.256 0.337 -0.037 0.187 0.235 0.03 0.326 0.161 0.023 0.179 0.292 -0.062 0.342 0.09 0.113 -0.001 -0.302 -0.338 0.318 0.28 0.093 0.146 0.307 0.367 -0.01 0.213 0.217 -0.097 0.333 0.086 -0.041 0.165 0.204 -0.17 0.594 0.174 0.162 -0.032 0.023 0.002 0.123 0.156 0.03 0.012 0.023 0.031 0.073 0.311 0.08 0.15 0.213 0.156 0.023 0.076 0.142 0.083 0.161 0.076 0.11 -0.035 -0.149 -0.232 0.354 0.025 0.181 0.326 0.048 0.226 -0.023 -0.019 0.237 0.074 0.562 0.694 0.246 0.283 0.105 -0.234 0.121 -0.122 0.326 0.078 0.677 0.722 -0.24 -0.04 0.2 0.295 1.212 0.296 -0.312 0.084 -0.128 -0.175 0.006 0.216 0.244 -0.139 -0.023 -0.078 -0.042 -0.074 0.146 -0.01
基础实验
一、实验内容
1.建立非线性规划模型的基本要素和步骤; 2.熟悉使用 MATLAB 命令对非线性规划模型进行计算与灵敏度分析; 3.学会计算无约束优化问题和有约束优化问题的技巧。
二、实验过程(一般应包括实验原理或问题分析,算法设计、程序、计算、图表等, 实 验结果及分析)
基础实验: 1.求解无约束优化:
双目标: 最大化利润,最小化风险
s.t.
三、数学模型的建立与求解(一般应包括模型、求解步骤或思路,程序放在后面的附录中)
建立双目标模型: 最大化利润,最小化风险:
s.t.
四、实验结果及分析
1 Q ( X max
x1+x2+…+x8=1, xi 0, i=1,2,…,8 x1+x2+…+x8=1, xi 0, i=1,2,…,8
T rj rjk / T k 1
收益的风险可定义为收益的波动程度,可用样本方差(历史方差)来度量, 为:
投资组合 X=(x1,x2,…,xn)在第 k 年的收益率为:
投资组合 X=(x1,x2,…,xn) 的平均收益率为:
投资组合 X=(x1,x2,…,xn)的风险为:
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= 1.7905 f = 1.7905 f = 1.7905 f = 0.0812 f = 0.0062 f = 0.0062 f = 0.0062 f = -0.0034 f = -0.0050 f = -0.0050 f = -0.0050 f = -0.0052 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 x= 0 0 fval = -0.0053 2. 求解非线性规划,试判定你所求到的解是否是最优? f= f= f= f= f= f= f= f= f= f= f= -0.0053 0.0812 -0.0034 -0.0052 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053 f= f= f= f= f= f= f= f= f= f= f= -0.0053 0.0812 -0.0034 -0.0052 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053
应用实验(或综合实验)
一、实验内容 4. 组合投资问题
设有 8 种投资选择:5 支股票,2 种债券,黄金. 投资者收集到这些投资项目的年收益率的历史数据 (见表 6.1), 投资者应如何分配他的投资资金,即需要确定这 8 种投资的最佳投资分配比例. 表 6.1 8 种投资项目的年收益率历史数据 项目 年份 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994
min f ( x1 , x2 ) 20e 0.2 s.t.
2 2 0.5( x1 x2 )
e0.5(cos(2 x1 ) cos(2 x2 )) 22.713
5 xi 5, i 1, 2
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:
开课学院、实验室: 实验时间
课程 数学实验 名称 指导 教师
: 非线性规划与多目标规划
验证
实验项目 名 成 称 绩
实验项目类型
演示 综合 设计 其他
√
实验目的
[1] 学习非线性规划模型的标准形式和建模方法; [2] 掌握建立非线性规划模型的基本要素和求解方法; [3] 熟悉 MATLAB 软件求解非线性规划模型的基本命令; [4] 通过范例学习,了解建立非线性规划模型的全过程,与线性规划比较其难点何在。 本实验包括基础实验、应用实验和创新实验,基础实验和应用实验要求独立完成,创新实验要求合 作完成。通过该实验的学习,使学生掌握最优化技术,认识面对什么样的实际问题,提出假设和建立优 化模型,并且使学生学会使用 MATLAB 软件和 Lingo 软件求解非线性规划模型,注意初始解的选择不同会 导致软件求出的解的变化(是局部最优解还是整体最优解) 。解决现实生活中的最优化问题是本科生学习 阶段中一门重要的课程,因此,本实验对学生的学习尤为重要。
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 可见当初始值不同时,所得结果是不同,由此可知所求结果并非最优解。
1.0000
0.0000
0.0187 0.1296 0.0203
0.0100 0.1244 0.0160
0.1152 0.0098
首先将各投资收益资料建立成数据资料:Investment.dat 并将其导入到 Matlab 中: 0.075 0.084 0.061 0.052 0.055 0.077 0.109 0.127 0.156 0.117 0.092 0.103 0.08 0.063 0.061 0.071 0.087 0.08 0.057 0.036 0.031 -0.058 0.02 0.056 0.175 0.002 -0.018 -0.022 -0.053 0.003 0.465 -0.015 0.159 0.366 0.309 -0.075 0.086 0.212 0.054 0.193 0.079 0.217 -0.148 -0.265 0.371 0.236 -0.074 0.064 0.184 0.323 -0.051 0.215 0.224 0.061 0.316 0.186 0.052 0.165 0.316 -0.032 0.304 0.076 0.1 -0.185 -0.284 0.385 0.266 -0.026 0.093 0.256 0.337 -0.037 0.187 0.235 0.03 0.326 0.161 0.023 0.179 0.292 -0.062 0.342 0.09 0.113 -0.302 -0.338 0.318 0.28 0.093 0.146 0.307 0.367 -0.01 0.213 0.217 -0.097 0.333 0.086 -0.041 0.165 0.204 -0.17 0.594 0.174 0.162 0.023 0.002 0.123 0.156 0.03 0.012 0.023 0.031 0.073 0.311 0.08 0.15 0.213 0.156 0.023 0.076 0.142 0.083 0.161 0.076 0.11 -0.149 -0.232 0.354 0.025 0.181 0.326 0.048 0.226 -0.023 -0.019 0.237 0.074 0.562 0.694 0.246 0.283 0.105 -0.234 0.121 -0.122 0.326 0.677 0.722 -0.24 -0.04 0.2 0.295 1.212 0.296 -0.312 0.084 -0.128 -0.175 0.006 0.216 0.244 -0.139 -0.023 -0.078 -0.042 -0.074 0.146
q R ( R(1 X j k
Байду номын сангаас
由图可知,高回报的收益伴随着高风险,这也与实际相符。 其中图中收益最低(风险最低)一点投资组合为: x= 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 收益为: Income = 0.1412 风险系数为:Risk = 0.0554 收益最高(风险最高)一点投资组合为: x= 0.8574 0.0086 0.0039 0.0035 0.0051 0.0927 收益为:Income=0.1412 0.1408 0.1387 0.1347 0.1315 风险系数为:Risk=0.0554 0.0506 0.0361 0.0262 0.0219 五、附录(程序等)
债券 1
债券 2
股票 1
股票 2
股票 3
股票 4
股票 5
黄金
二、问题分析
设投资的期限是一年, 不妨设投资总数为 1 个单位, 用于第 i 项投资的资金比例为 xi , X=(x1,x2,…,xn) 称为投资组合向量. 显然有:
x1+x2+…+xn=1, xi≥0; 每个投资项目的收益率可以看成一个随机变量,其均值可以用样本均值(历史均值)来近似. 设 rjk 代 表第 j 种投资在第 k 年的收益率. 则预计第 j 种投资的平均收益率为 :
max z s.t.
2 0.201x14 x2 x3 107 675 x12 x2 0 2 x12 x3 0 107 0 x1 36, 0 x2 5, 0 x3 125
0.419
分别建立 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');
基础实验
一、实验内容
1.建立非线性规划模型的基本要素和步骤; 2.熟悉使用 MATLAB 命令对非线性规划模型进行计算与灵敏度分析; 3.学会计算无约束优化问题和有约束优化问题的技巧。
二、实验过程(一般应包括实验原理或问题分析,算法设计、程序、计算、图表等, 实 验结果及分析)
基础实验: 1.求解无约束优化:
双目标: 最大化利润,最小化风险
s.t.
三、数学模型的建立与求解(一般应包括模型、求解步骤或思路,程序放在后面的附录中)
建立双目标模型: 最大化利润,最小化风险:
s.t.
四、实验结果及分析
1 Q ( X max
x1+x2+…+x8=1, xi 0, i=1,2,…,8 x1+x2+…+x8=1, xi 0, i=1,2,…,8
T rj rjk / T k 1
收益的风险可定义为收益的波动程度,可用样本方差(历史方差)来度量, 为:
投资组合 X=(x1,x2,…,xn)在第 k 年的收益率为:
投资组合 X=(x1,x2,…,xn) 的平均收益率为:
投资组合 X=(x1,x2,…,xn)的风险为:
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= 1.7905 f = 1.7905 f = 1.7905 f = 0.0812 f = 0.0062 f = 0.0062 f = 0.0062 f = -0.0034 f = -0.0050 f = -0.0050 f = -0.0050 f = -0.0052 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 f = -0.0053 x= 0 0 fval = -0.0053 2. 求解非线性规划,试判定你所求到的解是否是最优? f= f= f= f= f= f= f= f= f= f= f= -0.0053 0.0812 -0.0034 -0.0052 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053 f= f= f= f= f= f= f= f= f= f= f= -0.0053 0.0812 -0.0034 -0.0052 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053 -0.0053
应用实验(或综合实验)
一、实验内容 4. 组合投资问题
设有 8 种投资选择:5 支股票,2 种债券,黄金. 投资者收集到这些投资项目的年收益率的历史数据 (见表 6.1), 投资者应如何分配他的投资资金,即需要确定这 8 种投资的最佳投资分配比例. 表 6.1 8 种投资项目的年收益率历史数据 项目 年份 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994
min f ( x1 , x2 ) 20e 0.2 s.t.
2 2 0.5( x1 x2 )
e0.5(cos(2 x1 ) cos(2 x2 )) 22.713
5 xi 5, i 1, 2
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:
开课学院、实验室: 实验时间
课程 数学实验 名称 指导 教师
: 非线性规划与多目标规划
验证
实验项目 名 成 称 绩
实验项目类型
演示 综合 设计 其他
√
实验目的
[1] 学习非线性规划模型的标准形式和建模方法; [2] 掌握建立非线性规划模型的基本要素和求解方法; [3] 熟悉 MATLAB 软件求解非线性规划模型的基本命令; [4] 通过范例学习,了解建立非线性规划模型的全过程,与线性规划比较其难点何在。 本实验包括基础实验、应用实验和创新实验,基础实验和应用实验要求独立完成,创新实验要求合 作完成。通过该实验的学习,使学生掌握最优化技术,认识面对什么样的实际问题,提出假设和建立优 化模型,并且使学生学会使用 MATLAB 软件和 Lingo 软件求解非线性规划模型,注意初始解的选择不同会 导致软件求出的解的变化(是局部最优解还是整体最优解) 。解决现实生活中的最优化问题是本科生学习 阶段中一门重要的课程,因此,本实验对学生的学习尤为重要。
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 可见当初始值不同时,所得结果是不同,由此可知所求结果并非最优解。
1.0000
0.0000
0.0187 0.1296 0.0203
0.0100 0.1244 0.0160
0.1152 0.0098
首先将各投资收益资料建立成数据资料:Investment.dat 并将其导入到 Matlab 中: 0.075 0.084 0.061 0.052 0.055 0.077 0.109 0.127 0.156 0.117 0.092 0.103 0.08 0.063 0.061 0.071 0.087 0.08 0.057 0.036 0.031 -0.058 0.02 0.056 0.175 0.002 -0.018 -0.022 -0.053 0.003 0.465 -0.015 0.159 0.366 0.309 -0.075 0.086 0.212 0.054 0.193 0.079 0.217 -0.148 -0.265 0.371 0.236 -0.074 0.064 0.184 0.323 -0.051 0.215 0.224 0.061 0.316 0.186 0.052 0.165 0.316 -0.032 0.304 0.076 0.1 -0.185 -0.284 0.385 0.266 -0.026 0.093 0.256 0.337 -0.037 0.187 0.235 0.03 0.326 0.161 0.023 0.179 0.292 -0.062 0.342 0.09 0.113 -0.302 -0.338 0.318 0.28 0.093 0.146 0.307 0.367 -0.01 0.213 0.217 -0.097 0.333 0.086 -0.041 0.165 0.204 -0.17 0.594 0.174 0.162 0.023 0.002 0.123 0.156 0.03 0.012 0.023 0.031 0.073 0.311 0.08 0.15 0.213 0.156 0.023 0.076 0.142 0.083 0.161 0.076 0.11 -0.149 -0.232 0.354 0.025 0.181 0.326 0.048 0.226 -0.023 -0.019 0.237 0.074 0.562 0.694 0.246 0.283 0.105 -0.234 0.121 -0.122 0.326 0.677 0.722 -0.24 -0.04 0.2 0.295 1.212 0.296 -0.312 0.084 -0.128 -0.175 0.006 0.216 0.244 -0.139 -0.023 -0.078 -0.042 -0.074 0.146
q R ( R(1 X j k
Байду номын сангаас
由图可知,高回报的收益伴随着高风险,这也与实际相符。 其中图中收益最低(风险最低)一点投资组合为: x= 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 收益为: Income = 0.1412 风险系数为:Risk = 0.0554 收益最高(风险最高)一点投资组合为: x= 0.8574 0.0086 0.0039 0.0035 0.0051 0.0927 收益为:Income=0.1412 0.1408 0.1387 0.1347 0.1315 风险系数为:Risk=0.0554 0.0506 0.0361 0.0262 0.0219 五、附录(程序等)
债券 1
债券 2
股票 1
股票 2
股票 3
股票 4
股票 5
黄金
二、问题分析
设投资的期限是一年, 不妨设投资总数为 1 个单位, 用于第 i 项投资的资金比例为 xi , X=(x1,x2,…,xn) 称为投资组合向量. 显然有:
x1+x2+…+xn=1, xi≥0; 每个投资项目的收益率可以看成一个随机变量,其均值可以用样本均值(历史均值)来近似. 设 rjk 代 表第 j 种投资在第 k 年的收益率. 则预计第 j 种投资的平均收益率为 :
max z s.t.
2 0.201x14 x2 x3 107 675 x12 x2 0 2 x12 x3 0 107 0 x1 36, 0 x2 5, 0 x3 125
0.419
分别建立 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');