本文探讨了一个投资问题,其中包括一笔资金 10 万和 4 个不同的项目。通过对每个项目可投资时段的分析,建立了一个数学优化模型。该模型旨在最大化 5 年后的收益,并根据特定的投资规则对每个项目进行投资。通过使用 MATLAB 求解优化问题,得出了最佳的投资方案和对应的收益。根据结果,最佳投资方案为
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
这篇文章距离上次更新已经过去了 471 天,其中的某些内容可能不再适用了,请谨慎阅读。
投资问题
设有一笔资金 10 万,未来 5 年内可以投资 4 个项目:
- 项目 1:每年初投资,次年年末回收本利 115%;
- 项目 2:第 3 年初投资,第 5 年末回收本利 125%,投资额不能超过 3 万;
- 项目 3:第 2 年初投资,第 5 年末回收本利 140%,投资额不能超过 4 万;
- 项目 4:每年初投资,当年年末回收本利 106%。
要使 5 年后收益最大化,请问 5 年内应如何投资?
模型建立
考虑每个项目的可投资时段,可得到下表:
第 i 年初 | 1 | 2 | 3 | 4 | 5 |
---|
项目 1 | ✓ | ✓ | ✓ | ✓ | |
项目 2 | | | ✓ | | |
项目 3 | | ✓ | | | |
项目 4 | ✓ | ✓ | ✓ | ✓ | ✓ |
表中的对号✓ 表示该项目在该年初可以投资,空白表示该项目在该年初不可以投资。
设xij 表示项目i 在第j 年初投资的金额,i=1,2,3,4,j=1,2,3,4,5。
可得出以下优化模型:
maxf(x)=1.15x14+1.25x23+1.4x32+1.06x45 s.t. ⎩⎨⎧x11+x41=10x12+x32+x42=1.06x41x13+x23+x43=1.15x11+1.06x42x14+x44=1.15x12+1.06x43x45=1.15x13+1.06x44x23≤3x32≤4xij≥0
MATLAB 求解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| prob = optimproblem('ObjectiveSense','max');
x = optimvar('x',4,5,'LowerBound',0);
prob.Objective = 1.15*x(1,4)+1.25*x(2,3)+1.4*x(3,2)+1.06*x(4,5);
prob.Constraints.cons1 = x(1,1)+x(4,1)==10; prob.Constraints.cons2 = x(1,2)+x(3,2)+x(4,2)==1.06*x(4,1); prob.Constraints.cons3 = x(1,3)+x(2,3)+x(4,3)==1.15*x(1,1)+1.06*x(4,2); prob.Constraints.cons4 = x(1,4)+x(4,4)==1.15*x(1,2)+1.06*x(4,3); prob.Constraints.cons5 = x(4,5)==1.15*x(1,3)+1.06*x(4,4); prob.Constraints.cons6 = x(2,3)<=3; prob.Constraints.cons7 = x(3,2)<=4;
show(prob)
[sol,fval] = solve(prob);
fval sol.x
|
结果:
1 2 3 4 5 6 7 8
| fval = 14.4215
ans = 2.6087 3.8348 0 4.4100 0 0 0 3.0000 0 0 0 4.0000 0 0 0 7.3913 0 0 0 0
|
即 5 年内应按下表进行投资:
第 i 年初 | 1 | 2 | 3 | 4 | 5 |
---|
项目 1 | 2.6087 | 3.8348 | 0 | 4.4100 | 0 |
项目 2 | 0 | 0 | 3.0000 | 0 | 0 |
项目 3 | 0 | 4.0000 | 0 | 0 | 0 |
项目 4 | 7.3913 | 0 | 0 | 0 | 0 |
最终收益为14.4215−10=4.4215(万元)。