返回信息流使用CVX工具箱解一个SDP的时候遇到一个可能的bug...
Error using * Inner matrix dimensions must agree.
Error in cvxprob/eliminate (line 137)
P = P * cvx_invert_structure( xR );
跟下面链接中的问题是一样的
http://ask.cvxr.com/t/why-does-error-of-convex-problem-below-arise/4168
但是我并没有找到解决的方案,求助一下各位大佬,有人遇到过类似的问题吗?有什么解决BUG的方法吗?
谢谢!
这是一条镜像帖。来源:北邮人论坛 / paper / #34430同步于 2019/5/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Paper机器人发帖
CVX工具箱的一个BUG
august2013
2019/5/14镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
谢谢[ema1],就是想看看有没有论坛大佬也遇到过类似的问题。只能再去找找了[ema1]
【 在 monte2591 的大作中提到: 】
: 这种问题,太小众了吧……[ema12]
有可能是cvx初始值的问题,简单的令变量初始值为复矩阵,这个复矩阵可能无法进行计算(不满足矩阵计算条件),所以应该缩紧变量条件,使得内部初始变量能够进行计算才能够进行更新。
不知道你的具体代码,但是variable Q_p(N_t,N_t) semidefinite symmetric complex,是可以解决你链接中的问题的。
N_t=4;
N_r=2;
Pt=10;
Q_0=cov(randn(N_t,N_t));
H_2=(randn(N_r,N_t)+j*randn(N_r,N_t))/sqrt(2);
cvx_begin
variable Q_p(N_t,N_t) semidefinite symmetric complex
R_1=real(log_det(eye(N_r)+H_2*Q_0*H_2'+H_2*Q_p*H_2'));
R_2=real(log_det(eye(N_r)+H_2*Q_p*H_2'))-real(trace(Q_p));
maximize( R_1+R_2)
subject to
real(trace(Q_p))<= Pt
% Q_p == hermitian_semidefinite(N_t); % Q_0 is positive semidefinite
cvx_end