lingo解线性的缺陷

来源:互联网 发布:语音网络 编辑:程序博客网 时间:2024/06/05 05:45

缺陷:

引用块内容
lingo虽然可以解线性问题,但是他只能在约束条件下解针对这一目标的最优解,不能一次性解在不同约束条件的特定目标的最优解,但是matlab就可以做到,

例子:

要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型:
这里写图片描述
说明:ri为收益率,pi是交易率,M是总资金,xi是给第i个投资的资金,在本题看做1;
由于此题为多规划模型,要做一定的处理才能用软件求解。
方法1:可把取一个目标做最优化,得到的结果作为条件,在对第二个做最优化。
方法二:可先对这个目标做一个权值的分配,把它们作为一个目标进行处理。

模型一:

通过固定目标风险用a,得到最大收益:
这里写代码片
但a的不同,约束条件也就不同,最优值也就不同,所以lingo就显得很无力,此时用matlab中的linprog函数就可完成。

function xianxinguihua
a=0;
while a<0.05
c=[-0.05;-0.27;-0.12;-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;
[x,feval]=linprog(c,A,b,aeq,beq,zeros(5,1));
plot(a,-feval,’*’);
hold on//不可少,否则是个点。
a=a+0.001;
end
xlabel(‘a’),ylabel(‘-feval’)
通过图像就可以看出a在什么时候最为合适

在a=0.006附近有一个转折点,在这一点左边,风险增加很少时,利润增长很快。在这一点右边,风险增加很大时,利润增长很缓慢,所以对于风险和收益没有特殊偏好的投资者来说,应该选择曲线的拐点作为最优投资组合。

模型二

这里写图片描述

matlab线性规划:

这里写图片描述

0 0
原创粉丝点击