【发布时间】:2014-08-16 14:36:13
【问题描述】:
我正在尝试解决以下大规模二次程序:
min (1/2*x'*Q*x + c'*x) 服从 x >= 0
向量x 的维度为(n*d^2),其中n 很大,d 很小(在我的问题中:n = 220512 和d = 16)。
矩阵Q 是稀疏的,构造如下。
one = ones(d,1);
A = kron(eye(d),one');
B = repmat(diag(one),1,d);
M = A'*A + B'*B;
而Q是一个块对角线矩阵,其中有n个相同的块(在对角线上),每个块都是矩阵M。
现在我想将Q创建为一个稀疏矩阵(否则在求解原始二次程序时会出现MEMORY问题,例如使用quadprog)。
提前感谢您的任何建议。
【问题讨论】:
-
请仅使用相关标签并在使用前阅读其说明。
-
@Ali:打扰了。
标签: matlab sparse-matrix