笔记--线性规划

线性规划

Matlab 中 求解线性规划的命令为

[x,fval] = linprog(c,A,b,Aeq,beq,lb,ub)

求解形式:

m i n c T x min c^T x mincTx

s . t . { A x ≤   b A e q ⋅ x = d e q l b ≤   x ≤   u b s.t. \left\{\begin{matrix}Ax \le\ b \\Aeq·x = deq \\ lb\le\ x \le\ ub \end{matrix}\right. s.t.Ax bAeqx=deqlb x ub

例题:
m a x z = 2 x 1 + 3 x 2 − 5 x 3 max z = 2x1+3x2-5x3 maxz=2x1+3x25x3

s . t . { x 1 + x 2 + x 3 = 7 2 x 1 − 5 x 2 + x 3 ≥   10 x 1 + 3 x 2 + x 3 ≤   12 x 1 , x 2 , x 3 ≥   0 s.t. \left\{\begin{matrix}x1+x2+x3 = 7 \\2x1-5x2+x3 \ge\ 10 \\ x1+3x2+x3 \le\ 12 \\ x1,x2,x3 \ge\ 0 \end{matrix}\right. s.t.x1+x2+x3=72x15x2+x3 10x1+3x2+x3 12x1,x2,x3 0

c = [-2;-3;5];
Aeq = [1 1 1];
beq = 7;
A = [-2 5 -1;1 3 1];
b = [-10;12];

[x,y] = linprog(c,A,b,Aeq,beq,zeros(3,1));
y = -y;
x
y

例题:

问题的提出

​ 市场上有n种资产 si (i= 1,2,····· ,n)可以选择,现用数额为M的相当大的资金作一个时期的投资。这n种资产在这一时期内购买si的平均收益率为ri,风险损失率为qi;, 投资越分散,总的风险越少,总体风险可用投资的si中最大的一个风险来度量。

​ 购买si时要付交易费,费率为pi,当购买额不超过给定值ui时,交易费按购买ui计算。另外,假定同期银行存款利率是r0,既无交易费又无风险(r=5%)。
已知n=4时相关数据如表

siri / %qi / %pi / %ui / %
s1282.51103
s2211.52198
s3235.54.552
s4252.66.540

试给该公司设计一种投资组合方案,即用给定资金M,有选择地购买若干种资产或存银行生息,使净收益尽可能大,使总体风险尽可能小。

符号规定和基本假设

1.符号规定:

  • si表示第i种投资项目,如股票,债券等,i= 0,1,······ ,n,其中s0指存入银行;
  • ri,pi,qi分别表示si的平均收益率,交易费率,风险损失率,i=0,1,····· ,n,其中p0 = 0,q0 = 0;
  • ui表示si的交易定额,i= 1,······ ,n ;
  • xi,表示投资项目si,的资金,i= 0,1,······ ,n ;
  • a表示投资风险度;
  • Q表示总体收益;

2.基本假设:

  • (1)投资数额M相当大,为了便于计算,假设M=1;
  • (2)投资越分散,总的风险越小;
  • (3)总体风险用投资项目si中最大的一个风险来度量;
  • (4) n+1种资产si之间是相互独立的;
  • (5)在投资的这一时期内,ri,pi,qi,为定值,不受意外因素影响;
  • (6)净收益和总体风险只受ri,pi,qi影响,不受其它因素干扰。
模型的分析与建立

1. 总体风险用所投资的si 中最大的一个风险来衡量,即
m a x { q i x i ∣ i = 1 , 2 , ⋅ ⋅ ⋅ ⋅ , n } . max\{q_i x_i | i = 1,2,····,n\}. max{qixii=1,2,,n}.
2. 购买si(i = 1,2,····,n) 所付交易费是一个分段函数,即
交 易 费 = { p i x i , x i > u i p i u i , x i ≤   u i 交易费 = \left\{\begin{matrix}p_i x_i,x_i > u_i \\ p_i u_i,x_i \le\ u_i \end{matrix}\right. ={pixi,xi>uipiui,xi ui
而题目所给的定制ui(单位:元) 相对总投资M 很少,pi *ui 更小,这样购买si的净收益可以简化为(ri-pi)xi。

3. 要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型。

目标函数为:
{ m a x ∑ ( i = 0 ) n ( r i − p i ) x i m i n { m a x 1 ≤   i ≤   n { q i x i } } \left\{\begin{matrix}max \sum^n_{(i=0)} (r_i - p_i)x_i \\ min\{max_{1\le\ i \le\ n} \{q_ix_i\} \} \end{matrix}\right. {max(i=0)n(ripi)ximin{max1 i n{qixi}}
约束条件为:
{ ∑ i = 0 n x i = M x i ≥   0 , i = 0 , 1 , ⋅ ⋅ ⋅ ⋅ , n 。 \left\{ \begin{matrix} \sum ^n _{i=0} x_i = M \\ x_i \ge\ 0,i = 0,1,····,n。 \end{matrix} \right. {i=0nxi=Mxi 0,i=0,1,,n
4.模型简化

1.在实际投资中,投资者承受风险的程度不一样,若给定风险一个界限a,使最大的一个风险为a,即 (qi xi) / M <= a(i= 1,2,····,n), 可找到相应的投资方案。这样把多目标规划变成一个目标的线性规划。
模型一 固定风险水平,优化收益
m a x ∑ i = 0 n ( r i − p i ) x i max \sum ^n _{i = 0} (r_i-p_i)x_i maxi=0n(ripi)xi

s . t . { q i x i / M ≤   a , i = 1 , 2 , ⋅ ⋅ ⋅ ⋅ , n , ∑ i = 0 n ( 1 + p i ) x i = M , x i ≥   0 , i = 0 , 1 , ⋅ ⋅ ⋅ ⋅ , n 。 s.t. \left\{ \begin{matrix} q_i x_i / M \le\ a,i = 1,2,····,n, \\ \sum^n_{i=0}(1+p_i)x_i = M,x_i \ge\ 0 ,i = 0,1,····,n。 \end{matrix} \right. s.t.{qixi/M a,i=1,2,,n,i=0n(1+pi)xi=M,xi 0,i=0,1,,n

2.若投资者希望总盈利至少达到水平k以上,在风险最小的情况下,寻求相应的投资组合。

模型二 固定盈利水平,极小化风险
m i n { m a x 1 ≤   i ≤   n { q i x i } } min \{ max_{1 \le\ i \le\ n } \{ q_i x_i\} \} min{max1 i n{qixi}}

s . t . { ∑ i = 0 n ( r i − p i ) x i ≥   k , ∑ i = 0 n ( 1 + p i ) x i = M , x i ≥   0 , i = 0 , 1 , ⋅ ⋅ ⋅ ⋅ , n 。 s.t. \left\{ \begin{matrix} \sum^n_{i=0} (r_i-p_i)x_i \ge\ k, \\ \sum^n_{i=0} (1+p_i)x_i = M,\\ x_i \ge\ 0 ,i = 0,1,····,n。 \end{matrix} \right. s.t.i=0n(ripi)xi k,i=0n(1+pi)xi=M,xi 0,i=0,1,,n

3.投资者在权衡资产风险和预期收益两方面时,希望选择一个令自己满意的投资组合。因此对风险、收益分别赋予权重s(0<s≤1)和(1-s),s称为投资偏好系数。

模型三
m i n s { m a x 1 ≤   i ≤   n { q i x i } } − ( 1 − s ) ∑ i = 0 n ( r i − p i ) x i , min s\{max_{1\le\ i \le\ n} \{q_ix_i\}\}-(1-s)\sum^n_{i=0}(r_i-p_i)x_i, mins{max1 i n{qixi}}(1s)i=0n(ripi)xi,

s . t . { ∑ i = 0 n ( 1 + p i ) x i = M , x i ≥   0 , i = 0 , 1 , ⋅ ⋅ ⋅ ⋅ , n 。 s.t. \left\{ \begin{matrix} \sum^n_{i=0}(1+p_i)x_i = M,\\ x_i \ge\ 0 ,i = 0,1,····,n。 \end{matrix} \right. s.t.{i=0n(1+pi)xi=M,xi 0,i=0,1,,n

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值