- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
;; 本章继续讨论规划模型:二次规划,多目标规划,并结合投资优化策略案例来展开。
投资的基本目的:获得投资收益,实现财富的保值、增值。
投资的选择有:实物(房地产、艺术品、黄金等),非实物(金融:银行储蓄、股票、基金、债券等)。
那么该如何选择投资呢?无风险资产(储蓄、国债等),收益率确定,当然选最高的就好;有风险资产(房地产、股票等),收益与风险并存,如何选择?
投资要解决的矛盾:收益最大,风险最小,即需要平衡投资的收益与风险。
; 马可维茨建议,风险可以用收益的方差(或标准差)来衡量,表示成目标函数是二次函数,就是二次规划问题;收益是一个目标,风险是一个目标,投资金额是有限的,用数学模型表示就是两目标优化问题。
本章用到的编程技术是,用 MATLAB 求解二次规划,与多目标规划。;一. 二次规划
若某非线性规划的目标函数为决策变量的二次函数,约束条件又全是线性的,则称为二次规划。
二次规划用 Lingo 求解同样很简单,但本章的投资优化策略案例涉及较多操作数据、计算数据,这在 Lingo 中不太方便,故选用 MATLAB 来实现。
MATLAB 中 二次规划的数学模型的标准形式为:
;?;例 6.1 用 MATLAB 求解如下二次规划:
这里的关键是将规划模型用矩阵语言表示为标准形式。; 目标函数中的二次项:
故
目标函数中的一次项:
故
;?;MATLAB 代码:
H=[4, -4; -4, 8];
f=[-6; -3];
a=[1, 1; 4, 1];
b=[3; 9];
lb = zeros(2,1);
x0 = rand(2,1);
[x, val, flag] = quadprog(H, f, a, b, [], [], lb, [], x0) ;?;若用 Lingo 求解前面的二次规划示例更简单,代码如下:
min = 2 * x1^2 - 4 * x1 * x2 + 4 * x2^2 - 6 * x1 - 3 * x2;
x1 + x2 3;
4 * x1 +? x2 9;
运行结果:? ? ? ? ? ? ?
?? Global optimal solution found.
? ?Objective value:? ? ? -11.02500?
? ?Variable? ? ? ? ?Value? ? ? ? Reduced Cost
? ?X1? ? ? ? 1.950039? ? ? ? ? -0.7454422E-08
? X2? ? ? ? 1.049961? ? ? ? ? -0.1034892E-07;二. 多目标规划
很多实际问题,都需要在一定约束条件下考虑实现多个目标,这些目标往往是相互??争的关系,这样的规划模型称为多目标规划。
多个目标函数,表示为向量目标函数:
;?;求解多目标规划的方法,通常有:
化多目标为单目标:将多个目标按其重要程度加权合成为单个目标函数,或者采用理想点法,即先求出每个单目标最优函数值,再将目标函数表示为到这些单目标最优值的欧氏距离,从而转化为单目标;
分层序列法(序贯法):目标按其重要性给出一个序列,每次都在前一目标最优解集内求下一个目标最优解,直到求出共同的最优解;
帕累托寻优:即找到帕累托解集,帕累托解均满足:一个目标的改进,是以另一个目标的变坏为代价的。
;例 6.2(多目标规划算例)用 MATLAB 求解如下多目标线性规划:
;1. 多目标加权合成单目标;?;?;Matlab 代码:
function [c,ceq] = nonlincons(x)
c(1) = (x(1)^2)/9 + (x(2)^2)/4 - 1;
c(2) = x(1)^2 - x(2) - 1;
ceq = x(1) * x(2) - 2;
回到例6.2的求解:
A = [-1 -1 0 0
0 0 -1 -1
3 0 2 0
0 3 0 2];
b = [-30 -30 120 48];
c1 = [-100 -90 -80 -70];
c2 = [0 3 0 2];
;% 求第一个目标函数值
[x1, g1] = linprog(c1,A,b,[],[],zeros(4,1));
% 求第二个目标函数值
[x2, g2] = linprog(c2,A,b,[],[],zeros(
您可能关注的文档
- 外研社E英语教程(第二版)4教学课件Unit 3.pptx
- 外研社应用英语教程综合英语3教案Unit_7.pdf
- 外研社应用英语教程综合英语3 Unit_7_教学课件.pptx
- 机工社C语言程序设计第3版教学课件3.pptx
- 机工社数学建模:算法与编程实现教学课件第11讲_时间序列2.pdf
- 机工社数学建模:算法与编程实现教学课件第11讲_时间序列1.pdf
- 机工社数学建模:算法与编程实现教学课件第10讲_预测模型2.pptx
- 机工社数学建模:算法与编程实现教学课件第10讲_预测模型1.pptx
- 机工社数学建模:算法与编程实现教学课件第09讲_模糊理论.pptx
- 机工社数学建模:算法与编程实现教学课件第08讲_评价模型.pptx
最近下载
- Odrive使用和开发技术资料-Odrive3.6-56V原理图.pdf
- 《伊川县志》(1986~2021)出版发行.docx
- 《新媒体文案写作(微课版)》全套教学课件.pptx
- 护理诊断及护理措施128条护理诊断护理措施 .pdf VIP
- 《生产经营单位应急能力评估规范》.pdf
- 临床微生物学检验理论课:16放线菌属、诺卡菌属、分枝杆菌属检验.pptx
- 医用粘胶相关皮肤损伤MARSI-★.pptx VIP
- 大学毕设论文__汽车雨刮器的设计与动力学分析.doc
- 2023年ABBVD4真空断路器安装手册配CL操动机构及EP固封极柱.pdf
- 3.2.2 共价晶体 (课件)高二化学(人教版2019选择性必修2).pptx
文档评论(0)