数学建模算法与应用|投资的收益和风险|模型一分析

我在重点强调和不理解的地方都做了笔记。

目录

1 问题提出

 2 符号规定和基本假设

 3 模型的分析与建立

4 模型一

5 建模公式

 6.MATLAB编程代码

7 结果分析


1 问题提出

 2 符号规定和基本假设

 3 模型的分析与建立

4 模型一

 第一个max的式子的意思是(平均收益率-交易费率)*资金=利润。利润当然是最高越好,但是因为matlab只能算最小值,所以就转化为(交易费率-平均收益率)*资金。

第二个约束条件就是把风险控制在一个可控范围内。

第三个则是所有投资项目的金额和交易费的和应该等于本金。

5 建模公式

 第四部分已经说了,max变为min,所以需要计算(p-r),结果各个率的表计算。

因为r0时,只有存款利率,就是风险率p0为0,所以系数(p-r)为(0-0.05)=-0.05 

这样当第1~4种投资项目时,他们的 交易费率-平均收益率如下所示:

s10.01-0.28-0.27
s20.02-0.21-0.19
s30.045-0.23-0.185
s40.065-0.25-0.185

所以min的各个系数就计算出来了,对应如下公式:

 

前面又提到了(1+交易费)*项目资金=本金和,可以计算出各个项目的系数,即(1+交易费),也就是(1+p)。 

投资项目1+交易费率系数
s01+01
s11+0.011.01
s21+0.021.02
s31+0.0451.045
s41+0.0651.065

所以恒等公式如下所示:

 接下来的约束就是控制风险,因为假设本金为1,所以只需要计算qx,也就是风险损失率*投入资金。又因为投入资金x都应该>=0.

投资项目风险损失率*投入资金
s00*x0
s10.025*x1
s20.015*x2
s30.055*x3
s40.026*x4

所以约束公式为:

 6.MATLAB编程代码

 假设风险从0开始,每次增加0.001,当风险大于等于0.05时停止分析。

值得注意的是,在约束条件下,我们需要设置一个对角矩阵,这样计算结果就是针对某一个项目的资金。diag就是对角矩阵。

a=0;
hold on;
while a<0.05
   c=[-0.05 -0.27 -0.19 -0.185 -0.185];
   A=[zeros(4,1),diag([0.025 0.015 0.055 0.026])];
   b = [a;a;a;a];
   Aeq = [1 1.01 1.02 1.045 1.065];
   beq = 1;
   LB = zeros(5,1);
   [x,Q]= linprog(c,A,b,Aeq,beq,LB);
   Q=-Q;
   plot(a,Q,'*k');
   a = a+0.001;
end
xlabel('a'),ylabel('Q')

可以看到A长这个样子:

结果如图所示:

7 结果分析

可以观察到,结果与书上的分析一致。

 

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值