d*********a 发帖数: 255 | 1 【 以下文字转载自 Mathematics 讨论区 】
发信人: dragoninsea (龙哥), 信区: Mathematics
标 题: 请教如何用matlab中quadprog解决这个二次规划问题
发信站: BBS 未名空间站 (Tue Jun 5 22:17:33 2007)
minf=x1^2+x2^2+x1*x2+x1+x2+|x1|+|x2|
谢谢 |
|
|
H***a 发帖数: 735 | 3 题目本身是一个标准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 | 4 经一位大侠指点,问题已经解决. 就是 lb 和 ub 也必须写成向量,自己汗一下
x = quadprog(tempV, -r', [], [], e', 1, [0 0 0 0], [1 1 1 1], [], options); |
|
f*****c 发帖数: 3257 | 5 一直不熟悉matlab语言,特别是循环问题,最近终于碰到大麻烦了,10个包子求助!
我用如下的代码,对38个国家的货币回报分别跟10个跨国公司的季度回报做资产组合,
但是写完这个代码,matlab居然停不下来了,请问各位大神,这是怎么回事?
----------------------------------
for y=1:38
%currency equity return
eval(['su',num2str(y),'=r',num2str(y),'-cost']); % net currency return
eval(['rr',num2str(y),'=zeros(q,s)']); % construct the whole currency return
matrix for (s+1) leverage
for i=1:s
for j=1:q
eval(['rr',num2str(y),'(j,i)=(su',num2str(y),'(j)-(fai(j,i)*leverage
(i)))/(1-leverage(i))']);
... 阅读全帖 |
|
f*****c 发帖数: 3257 | 6
是小弟无能,每次都要对38个国家做同样的操作~~下面是其中一个国家r1表示第一个
国家的货币回报。
s=100;% 100 types of currency
currency=zeros(s,1); %100*1
q=size(r1,1); % 100 quarters
a=6;%risk aversion
a=5;% this is value of V/NW
for i=1:s %1:100
currency(i)=0.8+0.002*(i-1);
end
%s_h=[1;zeros(s-1,1)];
s_h=zeros(s,1);% share of currency
for i=1:s
s_h(i)=a*(1-currency(i));% now assume NW/V=20%
end
cost=0.014.*ones(s,1);%assume annual rate of cost+tax=1.4%*4=5.6%;
%currency equity return
su=r1-cost; % net currency return
rr1=zeros(q,s... 阅读全帖 |
|
h*****c 发帖数: 569 | 7 minimize :
x'Hx
under the constraints:
x'Ix=1 and x'Nx=n
x是个 m by 1 vector, x'是x的转置复共轭,
H,I,N是m by m方阵。其中I是单位矩阵。
matlab里有没有现成的东西来解这个问题???
quadprog好像是解二次型最小化的函数,能搞定这个问题吗? |
|
|
d*********a 发帖数: 255 | 9 MATLAB可以解决吗
如果这个问题解决了,就可以解决自变量多的类似问题。
笔算对于在变量多的不适合。 |
|
|
d*********a 发帖数: 255 | 11 谢谢回复。
如果自变量是10个,那不得要求1024次吗 |
|
l*****i 发帖数: 3929 | 12 linprog
quadprog
fmincon |
|
H***a 发帖数: 735 | 13 【 以下文字转载自 Programming 讨论区 】
发信人: Hyena (阿盆), 信区: Programming
标 题: 一个quadratic programming的问题,请指教!
发信站: BBS 未名空间站 (Fri Aug 21 18:53:05 2009, 美东)
题目本身是一个标准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 |
|
H***a 发帖数: 735 | 14 经一位大侠指点,问题已经解决. 就是 lb 和 ub 也必须写成向量,自己汗一下
x = quadprog(tempV, -r', [], [], e', 1, [0 0 0 0], [1 1 1 1], [], options); |
|
A****1 发帖数: 726 | 15 你是用lsqlin或quadprog的吗?
貌似精度对高维矩阵运算有影响,不好意思,我不时学算数的,我工作中有遇到类似问
题,不过不管怎么样,结果差不多也凑或了。
好像16位的精度没法改的, |
|
s*******a 发帖数: 921 | 16 可以用二次规划来解.将原问题转化成:
min f=y1^2+y2^2+y1+y2
s.t. x1<=y1
-x1<=y1
x2<=y2
-x2<=y2
y1>=0, y2>=0
matlab里面可以用quadprog来求解. |
|
c*******v 发帖数: 2599 | 17 你的维数太高了。
你试试看上面一帖的方法用quadprog求解看。
我看reasonable time内很难求出来。
模型其实很简单。遇到的问题是这样的,min x'Ax+b|x| 其中x是未知的向量,A,b是
已知的矩阵,向量。 |
|
d*********a 发帖数: 255 | 18 minf=x1^2+x2^2+x1*x2+x1+x2+|x1|+|x2|
谢谢 |
|
|
b******v 发帖数: 1493 | 20 我也是这样做的,可是引入新变量后H矩阵就变成半正定了
用matlab的quadprog求解时经常不收敛 |
|
i******t 发帖数: 370 | 21 对阿,用cvx就好了,如果担心效率可以考虑mosek。
matlab的linprog, quadprog就是一陀s**t. |
|
B*********h 发帖数: 800 | 22 ☆─────────────────────────────────────☆
stonexu1984 (stonexu1984) 于 (Tue Apr 3 13:48:52 2007) 提到:
max 1/dC *Y(N)*x
s.t. e+[1/(1-a)*N]*sum[z(k))]<= v*C
z(k)>= u(k)-y(k)*x-e
z(k)>=0
u(k)>=y(k)*x
u(k)>=u(k-1)
u(0) = 0
x(min) <= x <= x(max)
就是这么样的东西,最后要求的是x,但是s.t.当中是z(k),似乎有两个LP在里面,matlab(
是linprog?)里如何定义那么多限制条件啊?
谢谢啦!
☆─────────────────────────────────────☆
Westwild (WestWild) 于 (Tue Apr 3 17:21:51 2007) 提到:
Quadprog?
Check it out.
matlab(
☆ |
|
L******g 发帖数: 1371 | 23 Other than Mosek,
Is there any free c++ package for optimization?
Google it found CGAL, OOQP,QuadProg++,
any one have experience to use these?
any comment are more than welcome! |
|