H***a 发帖数: 735 | 1 题目本身是一个标准quadratic programming with linear constraints问题。
需要 maximize: f(x) = r'*x - a*x'*V*x
subject to constraints:
(1) sum(x_i) = e'x = 1, e代表向量(1,1,1..)
(2) 0 <= x_i <=1
现在使用Matlab的quadprog函数如下。
**********************************************************************
clear all;
r = [0.0667; 0.0900; 0.0717; 0.0733];
V = [0.00019 0.00065 0.00004 0.00038;
0.00065 0.00883 0.00218 0.00327;
0.00004 0.00218 0.00125 0.00063;
0.00038 0.00327 0.00063 0.00162];
e = ones(len | H***a 发帖数: 735 | 2 经一位大侠指点,问题已经解决. 就是 lb 和 ub 也必须写成向量,自己汗一下
x = quadprog(tempV, -r', [], [], e', 1, [0 0 0 0], [1 1 1 1], [], options); |
|