[已答复] cvx求解状态总是failed,为什么结果解不出来呢?

[复制链接]
goodboy1112 发表于 2015-5-7 17:39:20
本帖最后由 goodboy1112 于 2015-5-7 17:40 编辑

调一个程序,用到了cvx工具箱优化,但是解出的结果总是与论文中的差别很大(明显不对)的,调了10天了,实在不知道哪里出错。想请哪位前辈帮帮指点一二,不胜感激,代码给出。
我的代码如下:
clc;clear all;
close all;
%===该程序为了测试SRV约束算法========
Ntap=15; Ncell=15;
fL=0.2;fH=0.4;
NF=21;
f=linspace(fL,fH,NF);
n=[0:Ncell-1].';
m=[0:Ntap-1].';
f0=fL;

%==构建阵列指向方向导向矢量====
theta0=30;
for ii=1:length(f)
    A_s=exp(-j*pi*n*f(ii)*sind(theta0)/fH);
    B_t=exp(-j*pi*m*f(ii));
    s_steer(:,ii)=kron(B_t,A_s);
end

clear A_s B_t ii

%==构建旁瓣区导向矢量====
theta_sdl=[-90:5:15 45:5:90];
s_sdl=zeros(Ncell*Ntap,length(theta_sdl));
for ii=1:length(theta_sdl)
    theta1=theta_sdl(ii);
    A_s=exp(-j*pi*n*f0*sind(theta1)/fH);
    B_t=exp(-j*pi*m*f0);
    s_sdl(:,ii)=kron(B_t,A_s);
end
Cons=ones(1,length(theta_sdl));
clear A_s B_t ii

%%==构建Cr=======
%---全空域频率不变情况----
theta_all=-90:5:90;
Cr_average=zeros(Ncell*Ntap,Ncell*Ntap);
for ii=1:length(theta_all)
    theta1=theta_all(ii);
    A_s=exp(-j*pi*n*f0*sind(theta1)/fH);
    B_t=exp(-j*pi*m*f0);
    s_f0=kron(B_t,A_s);
    Cr_f=zeros(Ncell*Ntap,Ncell*Ntap);
    for kk=1:length(f)
        A=exp(-j*pi*n*f(kk)*sind(theta1)/fH);
        B=exp(-j*pi*m*(f(kk)));
        s_fk=kron(B,A);
%         Cr_f=real((s_fk-s_f0)*(s_fk-s_f0)')+Cr_f;    %累加近似积分
        Cr_fk(:,kk)=s_fk-s_f0;    %累加近似积分

    end
%      Cr_average=Cr_average+Cr_f*(f(2)-f(1))/(fH-fL);
     Cr_average=Cr_average+real(Cr_fk*Cr_fk')/length(f);

end
Cr_average=Cr_average/length(theta_all);
% [Ve,Va]=eig(Cr_average);
figure;mesh(Cr_average)
gama=10;
cvx_begin
variable w(Ncell*Ntap)
variable delta
  minimize( delta )
  subject to
     s_steer.'*w==ones(length(f),1);
     abs(s_sdl.'*w)<=delta*ones(length(theta_sdl),1);;
     norm(w)<=gama;
     quad_form(w,Cr_average)<=1e-4;
cvx_end

%===绘制方向图
theta=-90:1:90;
for kk=1:length(theta)
    for i=1:length(f)
        A_s=exp(-j*pi*n*f(i)*sind(theta(kk))/fH);
        B_t=exp(-j*pi*m*f(i));
        C_ds=kron(B_t,A_s);
        Pa(i,kk)=w.'*C_ds;
    end
end

figure;mesh(theta,f,db(abs(Pa)))



运行时,cvx的优化结果状态


Calling SDPT3 4.0: 605 variables, 260 equality constraints
   For improved efficiency, SDPT3 is solving the dual problem.
------------------------------------------------------------

num. of constraints = 260
dim. of socp   var  = 529,   num. of socp blk  = 34
dim. of linear var  = 34
dim. of free   var  = 42 *** convert ublk to lblk
*******************************************************************
   SDPT3: Infeasible path-following algorithms
*******************************************************************
version  predcorr  gam  expon  scale_data
    NT      1      0.000   1        0   
it pstep dstep pinfeas dinfeas  gap      prim-obj      dual-obj    cputime
-------------------------------------------------------------------
0|0.000|0.000|3.9e+01|6.0e+01|1.2e+06| 1.575271e+02  0.000000e+00| 0:0:00| chol  1  1
1|0.957|0.807|1.7e+00|1.2e+01|4.7e+04| 9.622471e+01 -4.309438e+01| 0:0:00| chol  1  1
2|1.000|0.984|3.4e-06|2.1e-01|2.0e+02| 9.528031e+00 -2.970417e+01| 0:0:01| chol  1  1
3|0.912|0.941|1.8e-05|1.4e-02|5.0e+00| 6.779206e-01 -1.907989e+00| 0:0:01| chol  1  1
4|0.798|0.645|7.1e-05|5.3e-03|1.2e+00|-4.501644e-02 -9.290611e-01| 0:0:01| chol  1  1
5|0.865|0.531|9.5e-06|2.5e-03|4.3e-01|-3.420120e-01 -6.232839e-01| 0:0:01| chol  1  1
6|0.505|0.459|4.7e-06|1.4e-03|2.3e-01|-5.004404e-01 -6.150033e-01| 0:0:01| chol  1  1
7|0.332|0.302|3.2e-06|9.5e-04|1.7e-01|-5.727367e-01 -6.238868e-01| 0:0:01| chol  1  1
8|0.464|0.201|2.1e-06|7.6e-04|1.3e-01|-6.308092e-01 -6.345632e-01| 0:0:01| chol  1  1
9|0.499|0.358|1.4e-06|4.9e-04|1.1e-01|-6.837316e-01 -6.724016e-01| 0:0:01| chol  1  1
10|0.687|0.291|6.5e-07|3.5e-04|8.3e-02|-7.477237e-01 -6.936618e-01| 0:0:01| chol  2  2
11|1.000|0.289|2.1e-07|2.5e-04|6.4e-02|-7.684135e-01 -7.138023e-01| 0:0:01| chol  2  2
12|1.000|0.632|9.1e-08|5.7e-05|2.5e-02|-7.783145e-01 -7.519246e-01| 0:0:01| chol  1  1
13|0.527|0.522|5.8e-08|2.8e-05|1.3e-02|-7.843376e-01 -7.689964e-01| 0:0:01| chol  2  2
14|0.509|0.364|2.8e-07|1.7e-05|8.2e-03|-7.901099e-01 -7.773498e-01| 0:0:01| chol  2  2
15|0.785|0.388|6.0e-07|1.0e-05|4.8e-03|-7.951326e-01 -7.844318e-01| 0:0:01| chol  2  2
16|0.593|0.293|3.5e-07|6.9e-06|3.5e-03|-7.961878e-01 -7.880633e-01| 0:0:02| chol  3  3
17|0.415|0.375|3.0e-07|4.2e-06|2.4e-03|-7.965939e-01 -7.914524e-01| 0:0:02| chol  3  3
18|0.636|0.338|2.4e-07|2.8e-06|1.7e-03|-7.971207e-01 -7.934314e-01| 0:0:02| chol  3  3
19|0.426|0.452|2.7e-07|1.6e-06|1.1e-03|-7.972856e-01 -7.952732e-01| 0:0:02| chol  3  3
20|0.588|0.439|2.8e-07|9.4e-07|6.7e-04|-7.974763e-01 -7.962915e-01| 0:0:02| chol  4  4
21|0.293|0.363|2.6e-07|6.1e-07|4.9e-04|-7.975520e-01 -7.967986e-01| 0:0:02| chol  4  4
22|0.165|0.197|2.9e-07|4.8e-07|4.4e-04|-7.975863e-01 -7.969848e-01| 0:0:02| chol  5  5
23|0.808|0.145|9.5e-07|4.1e-07|3.5e-04|-7.977193e-01 -7.970974e-01| 0:0:02| chol  8  8
24|0.239|0.087|2.0e-06|3.8e-07|3.4e-04|-7.977514e-01 -7.971609e-01| 0:0:02| chol  6  8
25|0.172|0.039|3.6e-06|3.6e-07|3.5e-04|-7.977982e-01 -7.971879e-01| 0:0:02|
  stop: progress is bad
-------------------------------------------------------------------
number of iterations   = 25
primal objective value = -7.97751370e-01
dual   objective value = -7.97160922e-01
gap := trace(XZ)       = 3.41e-04
relative gap           = 1.32e-04
actual relative gap    = -2.28e-04
rel. primal infeas (scaled problem)   = 2.02e-06
rel. dual     "        "       "      = 3.76e-07
rel. primal infeas (unscaled problem) = 0.00e+00
rel. dual     "        "       "      = 0.00e+00
norm(X), norm(y), norm(Z) = 1.8e+03, 1.0e+01, 1.5e+01
norm(A), norm(b), norm(C) = 1.3e+02, 2.0e+00, 1.3e+01
Total CPU time (secs)  = 2.21  
CPU time per iteration = 0.09  
termination code       = -5
DIMACS: 2.0e-06  0.0e+00  4.4e-07  0.0e+00  -2.3e-04  1.3e-04
-------------------------------------------------------------------

------------------------------------------------------------
Status: Failed
Optimal value (cvx_optval): NaN





4 条回复


晴锋蜗居 发表于 2015-9-24 16:50:09
我也出现上述的问题了、、、、

dennisjoon 发表于 2016-4-7 09:29:58
请问解决了吗?我也出现上述问题了

k_k_kk 发表于 2016-12-13 20:47:00
我也出现了这个问题

阿文丫丫 发表于 2021-11-23 21:19:17
您好,请问解决了吗?我也遇到这个问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表