2016-04-11 7 views
0

MatlabのCVXパッケージでは、$ | Ax-b | _2^2 $のような関数を最小限にしたいと考えています。 2ノルムの2乗を意味します。 CVXでそれをどのようにコード化しますか?CVXでノルムをどのように平方にするか?

minimize (norm(A*x-b,2)^2); 

minimize (norm(A*x-b,2)*norm(A*x-b,2)); 

が、両方はエラーを投げた:私は両方を試してみました。私が使用するはずの組み込み関数はありますか?

(実際には、ノルムの平方和とminimize (norm(A*x-b,2)^2 + norm(x,1));のような別のノルムの和を最小にしようとしているので、ノルムの平方を指定しようとしているだけで、平方の最小値)

+0

何[ '' sum_square_abs(*のXB)]についてを行うことができますhttp://web.cvxr.com/cvx/doc/dcp.html#scalar -quadratic-forms)?また、成功に関係なく、なぜあなたがこれをやりたいのだろうと思っています。ノルムの最小化は、ノルムの2乗の最小化である。 – TroyHaskin

+1

正則ノルムは微分可能ですが、ノルム自体は微分不可能です。それは大きなプラスです。 – leo

答えて

1

CVXは()^2オペレータをサポートしていません。あなたはどちらか(

(A*x-b)'*(A*x-b) 

または

power(2,norm(A*x-b,2)) 
関連する問題