matlab小课堂03—线性规划应用问题(投资收益与风险)

本文介绍了一个投资项目风险收益优化模型,通过线性规划方法,在确保风险可控的前提下最大化收益。模型采用双目标函数,一个用于最大化净收益,另一个用于最小化最大风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本假设:

  • 设M=1便于计算
  • 总体风险用投资项目Si中最大的一个风险来度量

符号

  • Si——第i种投资项目
  • ri,pi,qi——分别为Si的平均收益率,风险损失率,交易费率
  • Xi投资Si的金额

目标函数

  • MAX sumXi(ri-pi)
  • MIN (max(qixi))

约束条件

  • sumXi(1+pi)=M
  • Xi>=0

思路:
双目标函数求解,只能将其中一个设为目标函数,另一个约束在给定的范围内作为约束条件

以下程序以MAX sum(Xi(ri-pi))作为目标函数
1.确定目标函数:MAX sum(Xi(ri-pi))
2.确定约束条件:(X=[x0;x1;x2;x3;x4])
(1)等式条件:x0(银行存款不用交交易费)+1.01x1+1.02x2+1.045x3+1.065x4=1
(2)不等式条件:0.025x1<=a;0.015x2<=a;0.055x3<=a;0.026x4<=a
(3)自变量取值条件:Xi>=0
 

//线性规划实现代码示例
a=0;  //将风险控制在a以下
while (a<0.1)
c=[-0.05 -0.27 -0.19 -0.185 -0.185];  // 求MAX值,故需转换符号,求MIN -z
// 不等式约束,最大风险小于a转换为每个风险均小于a
A=[0 0.025 0 0 0;0 0 0.015 0 0;0 0 0 0.055 0;0 0 0 0 0.026];
b=[a;a;a;a];
// 等式约束条件
Aeq=[1 1.01 1.02 1.045 1.065];
beq=[1];
// 自变量取值约束条件
vlb=[0;0;0;0;0];
vub=[];
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub);
Q=-fval;  // 收益率转回正值
plot(a,Q,'.');hold on //每次只画一个点,不关
a=a+0.001;
end
xlabel('a');ylabel('Q');
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值