用凸优化课上的示例代码测试一下cvx是否成功安装 mosek 和 gurobi :

clear all

n = 256;
m = 128;

A = randn(m, n);
u = sprandn(n, 1, 0.1);
% u = rand(n, 1);
b = A * u;

figure(1);
subplot(3, 1, 1); plot(1:n, u);
title('exact solu');

cvx_solver mosek
% cvx_solver gurobi
cvx_begin 
    variable x(n)
    % minimize( max(norm(x, inf), norm(x, 1) / sqrt(n)) )
    % minimize ( max(abs(x)))
    minimize (norm(x))
    subject to
        A*x == b
cvx_end
xl2 = x;

subplot(3, 1, 2); plot(1:n, xl2);
title('l2 solu');


cvx_begin
    variable x(n)
    minimize( norm(x,1) )
    subject to
        A*x == b
cvx_end
xl1 = x;

subplot(3, 1, 3); plot(1:n, xl1);
title('l1 solu');

fprintf('\n\nl2 error: %3.2e, l1 error: %3.2e\n', norm(u - xl2), norm(u - xl1));
转自

https://blog.csdn.net/u012705410/article/details/78196927

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐