如何在 CVX 中平方范数?

Leo*_*254 2 matlab exponentiation cvx

在 Matlab 的 CVX 包中,我想最小化像 $|Ax-b|_2^2$ 这样的函数。意思是 2 范数的平方。我如何在 CVX 中编码?我都试过:

minimize (norm(A*x-b,2)^2);
Run Code Online (Sandbox Code Playgroud)

minimize (norm(A*x-b,2)*norm(A*x-b,2));
Run Code Online (Sandbox Code Playgroud)

但两者都抛出了错误。是否有我应该使用的内置函数?

(注意,实际上我试图最小化该范数的平方加上另一个范数的总和,这minimize (norm(A*x-b,2)^2 + norm(x,1));就是为什么我试图指定范数的平方,而不仅仅是满足于找到未平方范数的最小值。)

ThP*_*ThP 5

CVX 不支持()^2运算符。你可以这样做

(A*x-b)'*(A*x-b)  
Run Code Online (Sandbox Code Playgroud)

或者

power(2,norm(A*x-b,2))
Run Code Online (Sandbox Code Playgroud)