1. CVX下载
网站:cvx下载地址
按照对应的设备安装即可
2. 安装
1. 解压到某文件夹,不用和matlab同一文件夹
2. matlab工作区,cd到该位置
3. cvx_setup
cd D:\qxh\cvx-w64
cvx_setup
3. 查看ID并注册
1. 在matlab中查看user name和host ID
cvx_version
2. 使用校园邮箱申请CVX许可,每个邮箱好像可以申请2个许可
网址: Licensing | CVX Research, Inc.
选择“Academic licensing” page并且按步骤安装
之后,邮箱会收到来自CVX的licence文件,licence.dat
4. 最终注册并测试
1. cd到文件位置并安装licence.dat文件,以我自己的论文为例有需要可以复制并更改为自己的文件夹
cvx_setup D:/qxh/cvx_license.dat
测试代码块:
m = 20; n = 10; p = 4;
A = randn(m,n); b = randn(m,1);
C = randn(p,n); d = randn(p,1); e = rand;
cvx_begin
variable x(n)
minimize( norm( A * x - b, 2 ) )
subject to
C * x == d
norm( x, Inf ) <= e
cvx_end
以上代码块来源于网络 ,测试结果如下
%工作区测试
>> m = 20; n = 10; p = 4;
A = randn(m,n); b = randn(m,1);
C = randn(p,n); d = randn(p,1); e = rand;
cvx_begin
variable x(n)
minimize( norm( A * x - b, 2 ) )
subject to
C * x == d
norm( x, Inf ) <= e
cvx_end
Calling SDPT3 4.0: 56 variables, 22 equality constraints
For improved efficiency, SDPT3 is solving the dual problem.
------------------------------------------------------------
num. of constraints = 22
dim. of socp var = 21, num. of socp blk = 1
dim. of linear var = 31
dim. of free var = 4
*** convert ublk to linear blk
********************************************************************************************
SDPT3: homogeneous self-dual path-following algorithms
********************************************************************************************
version predcorr gam expon
NT 1 0.000 1
it pstep dstep pinfeas dinfeas gap mean(obj) cputime kap tau theta
--------------------------------------------------------------------------------------------
0|0.000|0.000|6.6e+00|2.9e+00|5.2e+01| 3.356465e+00| 0:0:00|5.2e+01|1.0e+00|1.0e+00| chol 1 1
1|0.463|0.463|5.1e+00|2.5e+00|5.1e+01|-3.471889e-01| 0:0:00|4.1e+01|1.0e+00|7.7e-01| chol 1 1
2|1.000|1.000|2.9e+00|1.3e+00|4.9e+01|-5.441973e-01| 0:0:00|1.3e+01|7.3e-01|3.2e-01| chol 1 1
3|0.811|0.811|7.1e-01|3.2e-01|1.0e+01|-4.273605e+00| 0:0:00|1.4e+00|8.3e-01|8.8e-02| chol 1 1
4|0.875|0.875|1.9e-01|8.8e-02|3.0e+00|-5.417411e+00| 0:0:00|3.2e-01|8.3e-01|2.4e-02| chol 1 1
5|0.892|0.892|8.5e-02|4.1e-02|1.6e+00|-5.882200e+00| 0:0:00|9.6e-02|7.7e-01|9.8e-03| chol 1 1
6|0.930|0.930|1.6e-02|1.1e-02|2.6e-01|-6.248079e+00| 0:0:00|1.4e-02|8.6e-01|2.1e-03| chol 1 1
7|1.000|1.000|2.5e-03|5.8e-03|3.8e-02|-6.314830e+00| 0:0:00|2.7e-03|9.3e-01|3.5e-04| chol 1 1
8|0.934|0.934|2.9e-04|2.3e-03|4.2e-03|-6.338171e+00| 0:0:00|7.5e-04|9.4e-01|4.1e-05| chol 1 1
9|0.711|0.711|1.7e-04|1.3e-03|2.8e-03|-6.343682e+00| 0:0:00|2.8e-04|9.3e-01|2.3e-05| chol 1 1
10|0.978|0.978|3.5e-05|3.6e-04|5.8e-04|-6.348542e+00| 0:0:00|5.3e-05|9.3e-01|4.8e-06| chol 1 1
11|0.947|0.947|8.9e-06|1.5e-04|1.5e-04|-6.349660e+00| 0:0:00|1.2e-05|9.3e-01|1.3e-06| chol 1 1
12|0.983|0.983|5.0e-07|5.4e-05|6.2e-06|-6.350127e+00| 0:0:00|2.7e-06|9.3e-01|7.0e-08| chol 1 1
13|1.000|1.000|1.5e-07|1.1e-05|2.6e-06|-6.350339e+00| 0:0:00|1.4e-07|9.3e-01|2.1e-08| chol 1 1
14|1.000|1.000|3.2e-08|2.1e-06|5.4e-07|-6.350380e+00| 0:0:00|4.2e-08|9.3e-01|4.5e-09| chol 1 1
15|1.000|1.000|2.0e-09|4.2e-07|2.8e-08|-6.350388e+00| 0:0:00|9.0e-09|9.3e-01|1.8e-10| chol 1 1
16|1.000|1.000|2.1e-09|4.2e-08|2.0e-09|-6.350390e+00| 0:0:00|5.7e-10|9.3e-01|0.0e+00| chol 1 1
17|0.999|0.999|7.9e-10|4.7e-10|6.4e-11|-6.350390e+00| 0:0:00|4.1e-11|9.3e-01|0.0e+00|
Stop: max(relative gap,infeasibilities) < 1.49e-08
-------------------------------------------------------------------
number of iterations = 17
primal objective value = -6.35038991e+00
dual objective value = -6.35038991e+00
gap := trace(XZ) = 6.45e-11
relative gap = 8.77e-12
actual relative gap = -3.74e-10
rel. primal infeas = 7.92e-10
rel. dual infeas = 4.72e-10
norm(X), norm(y), norm(Z) = 1.2e+01, 6.5e+00, 9.3e+00
norm(A), norm(b), norm(C) = 2.1e+01, 1.0e+00, 5.5e+00
Total CPU time (secs) = 0.25
CPU time per iteration = 0.01
termination code = 0
DIMACS: 7.9e-10 0.0e+00 4.7e-10 0.0e+00 -3.7e-10 4.7e-12
-------------------------------------------------------------------
------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +6.35039
结束安装
tip1:square函数重复,需要改成 .^2函数
tip2:除法就算是凸的,也有可能不识别,建议改成fmincon函数或其他内置函数转换