当前位置: 首页 > news >正文

2线性规划模型建模实战

线性规划模型建模实战(投资组合优化案例)笔记

一、案例背景与目标

1.1 投资场景设定

  • 市场存在 n种可投资资产Sᵢ(i=1,2,...,n),需用大额资金M进行一期投资;
  • 资产核心参数(示例):
    资产Sᵢ 平均收益率rᵢ 风险损失率qᵢ 交易费率pᵢ 最低交易定额uᵢ(元)
    S₁ - - - 103
    S₂ 21% 1.5% 2% 198
    S₃ 23% 5.5% 4.5% -
    S₄ 25% 2.6% 6.5% 40
  • 无风险参考:同期银行定期利率 r₀=5%(几乎无风险)。

1.2 核心目标

双目标优化:

  1. 最大化净收益;
  2. 最小化总风险。

二、符号规定与基本假设

2.1 符号定义(建模基础)

  • Sᵢ:第i种投资项目(如股票、债券);
  • rᵢ:Sᵢ的平均收益率;
  • qᵢ:Sᵢ的风险损失率(衡量单资产风险);
  • pᵢ:Sᵢ的交易费率;
  • uᵢ:Sᵢ的最低交易定额(低于此金额按uᵢ算费率);
  • xᵢ:投资于Sᵢ的资金金额;
  • α:投资风险度(可接受的最大风险上限);
  • Q:总收益风险度(需最小化的指标);
  • M:总投资资金(数额极大)。

2.2 关键假设(简化建模场景)

  1. 资金规模假设:M极大,投资到各资产的金额通常>uᵢ(简化交易费计算);
  2. 风险度量假设:总风险用“所有资产中最大风险”度量(避免风险值超100%的不合理情况);
  3. 收益分散假设:投资越分散,总收益越小;
  4. 参数固定假设:投资期内rᵢ、qᵢ、pᵢ均固定,不受其他因素干扰;
  5. 净收益影响假设:净收益仅由rᵢ、pᵢ、xᵢ决定,与其他无关。

三、核心计算:交易费与净收益

3.1 交易费计算(分段函数)

  • 当xᵢ ≤ uᵢ时:交易费 = pᵢ × uᵢ(按最低定额收费);
  • 当xᵢ > uᵢ时:交易费 = pᵢ × xᵢ(按实际金额收费);
  • 简化处理:因M极大,xᵢ通常>uᵢ,交易费直接按“pᵢ × xᵢ”计算。

3.2 净收益计算

  • 单资产净收益 =(平均收益率 - 交易费率)× 投资金额 = (rᵢ - pᵢ) × xᵢ
  • 总净收益 = Σ[(rᵢ - pᵢ) × xᵢ](需最大化)。

四、核心方法:多目标规划转线性规划

原问题为多目标规划(最大化收益+最小化风险),需转化为单目标线性规划求解,3种核心转化思路:

转化方法 核心思路 适用场景
固定风险边界 1. 设定可接受的风险度α;
2. 约束条件:qᵢ×xᵢ/M ≤ α(所有i);
3. 目标:最大化净收益
已知投资者风险承受能力(如“最多接受0.6%风险”)
固定盈利水平 1. 设定最低盈利目标k;
2. 约束条件:总净收益 ≥ k;
3. 目标:最小化总风险
投资者有明确收益底线(如“净收益≥20%”)
引入偏好系数 1. 设定偏好系数λ(0≤λ≤1,λ越大越重视收益);
2. 目标函数:max [λ×总收益 - (1-λ)×总风险]
投资者对风险和收益有明确偏好

五、模型构建与求解(以“固定风险边界”为例)

5.1 目标函数(适配Matlab linprog

linprog仅支持最小化,需对总净收益加负号转化:
min Z = -Σ[(rᵢ - pᵢ) × xᵢ]

5.2 约束条件

  1. 风险约束qᵢ×xᵢ/M ≤ α(所有i,控制总风险不超可接受上限);
  2. 资金约束Σ[(1 + pᵢ)×xᵢ] = M(总投资金额+总交易费=总资金M);
  3. 非负约束xᵢ ≥ 0(投资金额不能为负)。

5.3 求解步骤

  1. 设定α范围:α从0开始,每次递增0.001,直至α=0.5(覆盖合理风险区间);
  2. 循环求解:对每个α,用linprog求解线性规划,得到最优xᵢ(各资产投资金额)和对应最优收益;
  3. 结果记录:整理不同α下的最优收益,用于后续分析。

六、结果分析与投资建议

6.1 风险与收益规律

  • 总体趋势:风险度α越高,净收益越高(符合“高风险高收益”原则);
  • 关键拐点(实战结果):
    1. 第一个拐点(α≈0.006/0.6%)
      • 拐点左侧(α<0.006):风险小幅上升→收益快速增长(“风险性价比最高”区间);
      • 拐点右侧(α>0.006):风险上升→收益增长放缓;
    2. 第二个拐点(α≈0.025/2.5%)
      • 拐点右侧(α>0.025):风险继续上升→收益几乎无变化(“风险无效区间”)。

6.2 投资建议

  • 无风险偏好投资者:选择α≈0.006,对应净收益约20%(低风险+高性价比);
  • 中等风险承受者:α控制在0.006~0.025之间(平衡风险与收益);
  • 所有投资者:α建议不超过0.025(避免进入“风险无效区间”)。

七、编程注意事项(Matlab linprog

  1. 约束符号处理:若约束为“≥”(如固定盈利目标),需对约束两边加负号,转化为“≤”;
  2. 上下限设置:仅需下限(如xᵢ≥0)时,上限ub设为空([]);仅需上限时,下限lb设为空;
  3. 目标函数符号:需“最大化”目标时,必须对目标函数加负号(适配linprog的最小化逻辑);
  4. 矩阵格式:约束条件需整理为A×x ≤ b的矩阵形式,符合linprog输入要求。

八、课后作业(线性规划实战)

某厂生产3种产品,每种产品需经A、B两道工序加工,已知工序产能、产品利润等参数,构建线性规划模型求解“最优生产计划”(目标:最大化总利润),课下完成建模与求解,后续讲解。

http://www.rkmt.cn/news/14631.html

相关文章:

  • Excel工作表自动追加工具项目总结报告 - 教程
  • 移植Linux(No MMU)到ESP32-S3
  • 背单词 纯英文 2025年10月
  • 实用指南:Postman 学习笔记 III:CLI 自动化测试与 Jenkins CI/CD 实践
  • 完整教程:渗透技巧403绕过
  • 详细介绍:深入理解 SPI:从定义到 Spring Boot 实践
  • 第一次软工作业
  • Nginx核心配备详解:访问控制、用户认证与HTTPS部署
  • 详细介绍:Python 编辑器:PyCharm
  • 2025 年搅拌机设备厂家 TOP 企业品牌推荐排行榜,盘点磁混凝系统 / 发酵罐 / 刮泥机 / 推进式 / 脱硫侧搅拌机公司推荐!
  • 福州市 2025 国庆集训 Day1 前三题题解
  • 强连通,Tarjan,缩点
  • Python方案--交互式VR教育应用开发
  • 纯Qt代码实现onvif协议设备端/onvif设备模拟器/onvif虚拟监控设备/桌面转onvif
  • Mysql DBA学习笔记(主从复制) - 实践
  • Win环境下包管理工具
  • VRNN论文总结 - 指南
  • 2025中医师承培训、考试、认证机构权威推荐榜:名师传承与临床实践口碑之选
  • 软件设计师——03 数据结构(上) - 详解
  • 【stm32】bash自动配置buildenv - 教程
  • 将图片某个区域批量填充白色(jsx代码)
  • 2025西安品牌新房,西安刚需新房,陕西优质新房住宅推荐,地建嘉信臻境,超2000㎡高端会所,满足多元化生活需求
  • Python 闭包的应用场景与实战案例
  • 双网卡服务器校园网访问故障排查与解决​ - 教程
  • P11529 [THUPC 2025 初赛] 辞甲猾扎
  • Sunny Pro 网络验证- 仅需一键,即可为您的exe添加高强度防破加密!
  • 一条mysql数据库更新语句
  • 浅谈递归入门(1) - 指南
  • python+uniapp基于微信小工具的医院陪诊预约系统
  • comfyui配置