预备知识
1.待解决的问题
表1.1投资的相关数据
si | ri(%) | qi(%) | pi(%) | ui(元) |
---|---|---|---|---|
s1 | 28 | 2.5 | 1 | 103 |
s2 | 21 | 1.5 | 2 | 198 |
s1 | 23 | 5.5 | 4.5 | 52 |
s1 | 25 | 2.6 | 6.5 | 40 |
2.符号规定
3.基本假设
好的假设可以节省很多力气
4.模型分析与建立
目标函数为
{
m
a
x
∑
i
=
0
n
(
r
i
−
p
i
)
x
i
投资收益
m
i
n
m
a
x
{
q
i
x
i
}
最大风险
\begin{cases} max \sum\limits_{i=0}^{n}(r_i -p_i)x_i \ 投资收益 \\ min \ max\{q_ix_i\} \ 最大风险 \end{cases}
⎩
⎨
⎧maxi=0∑n(ri−pi)xi 投资收益min max{qixi} 最大风险
约束条件为
{
∑
i
=
0
n
(
1
+
p
i
)
x
i
=
M
资金总和
x
i
>
=
0
,
i
=
0
,
1
,
.
.
.
,
n
每一个项目的投资金额
\begin{cases} \sum\limits_{i=0}^{n}(1+p_i)x_i = M \ 资金总和 \\ x_i>=0, i=0,1,...,n \ 每一个项目的投资金额 \end{cases}
⎩
⎨
⎧i=0∑n(1+pi)xi=M 资金总和xi>=0,i=0,1,...,n 每一个项目的投资金额
以这种方案构建模型
s
.
t
.
{
x
0
+
1.01
x
1
+
1.02
x
2
+
1.045
x
3
+
1.065
x
4
=
1
0.025
x
1
<
=
a
0.015
x
2
<
=
a
0.055
x
3
<
=
a
0.026
x
4
<
=
a
x
i
>
=
0
(
i
=
0
,
1
,
.
.
.
,
4
)
s.t. \begin{cases} x_0 + 1.01x_1 + 1.02x_2 + 1.045x_3 + 1.065x_4 = 1 \\ 0.025x_1<=a \\ 0.015x_2<=a \\ 0.055x_3<=a \\ 0.026x_4<=a \\ x_i>=0(i=0,1,...,4) \end{cases}
s.t.⎩
⎨
⎧x0+1.01x1+1.02x2+1.045x3+1.065x4=10.025x1<=a0.015x2<=a0.055x3<=a0.026x4<=axi>=0(i=0,1,...,4)
a是任意给的风险度 所以从0开始 步长为Δa=0.001进行循环搜索
代码如下
clc,clear
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*ones(4,1);
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')
运行结果