問題タブ [cvx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4701 参照

matlab - CVX でノルムを二乗するにはどうすればよいですか?

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

しかし、両方ともエラーをスローしました。使用することになっている組み込み関数はありますか?

(注、実際には、そのノルムの二乗と別のノルムの合計を最小化しようとしているため、minimize (norm(A*x-b,2)^2 + norm(x,1));二乗されたノルムの最小値を見つけるだけで満足するのではなく、ノルムの二乗を指定しようとしています。)

0 投票する
1 に答える
340 参照

matlab - MATLAB syms/symbolics を cvx sdp ソルバーに渡す方法は?

3D 行列Atn x n x nvarnvar変数がありますy1...y25。変数を cvx に簡単にフィードできました。

ただし、最後の行の等号により、次のエラーが発生しています。

私はその平等をいくつかの異なる方法で設定しようとしました:

最初に作成したのと同じforループを使用します ( double の行列を使用):AtCfun

このエラーが発生します:

うまくいくとは思っていませんでしたが、試してみる価値はあると思いました。

また、cvx 内で行列を作成するために使用しようとしbsxfunましたが、bsxfun がシンボリックを処理できるとは思いません。repmat私が今調べている「bsxfun」の代替です(そう言われました)。

この方法で問題を解決しようとしている理由は、cvx を使用して任意の数/組み合わせのバスの最適な電力の流れを解決できるルーチンを作成することです。毎回個別に変数を作成する必要はありません。

0 投票する
0 に答える
256 参照

matlab - 単純な線形制約による効率的な二次最適化 CVX を使用した MatLab

(フォーマットについて申し訳ありません、私は最善を尽くします)私は解決したい:

ここAで、 はNxH論理行列 (およそ半分がゼロ、半分が 1)、bはすべてのエントリが同じである定数ベクトルです Hx1(たとえば、は確率の定数ベクトルなので、すべてのエントリは にあります。最適は分布でもあるため、すべて実際には は非常に大きく (例: ) 、比較的小さい (例: ) であることに注意してください。b = (0.1,0.1,0.1,...)pNx1[0,1]x[0,1]H2 millionN150

現在、これを解決するために CVX を使用しています。明示的に、私のコードは次のとおりです。

これにより、正しい結果が得られます。ただし、Hが大きいとかなり遅くなります。私の最適化プログラムの構造 (論理 A、定数制約、制約がなければ分析解がある問題など) を考えると、これにアプローチするより良い方法はありますか? ここで CVX をお勧めしますか?

ご協力ありがとうございました。

0 投票する
1 に答える
872 参照

matlab - l1マジックエラー - matlab

信号の次元よりも少ない観測値を使用して画像を再構築しようとしています(圧縮センシング)。次のコードを実行しようとしています -

ただし、コードを実行すると、次のエラーが発生します。

上記のコードは、センシング行列が dft 行列ではなく dct 行列である場合に解を回復します。誰かがエラーの場所を教えてもらえますか? l1-magic固有の問題でしょうか?別のソルバーを使用してもうまくいきますか?

: l1qc_logbarrier はライブラリ l1 magic の関数です。http://users.ece.gatech.edu/justin/l1magic/index.html

l1qc_logbarrier が解決する -

l1 最小化

0 投票する
2 に答える
824 参照

matlab - Matlab で CVX を並行して実行する

さまざまなパラメーターを使用して CVX を並行して実行しています。シリアルで実行すると警告は表示されませんが、(parfor を使用して) 並列で実行すると、次のようになります。

これは前に見たことがなく、解決方法がわかりません。どんな助けでも大歓迎です。

0 投票する
1 に答える
287 参照

matlab - CVXGEN プログラムの任意の次元

MatLabを使用して QP/LP 問題を解決したいと考えてCVXGENいます。の方がはるかに高速であるため、 CVXGENoverを優先します。特に解決したいのはCVXCVXGEN

ここf(x)で、 は二次形式であり、Xコンパクトで凸であり、線形関数によって定義されます。問題のサイズは実行によって異なります。手続きをできるだけ自動化したい。CVXGEN説明のために、コードの例を次に示し ます。

このコードは で入力しcvxgen.comます。この Web サイトで、一意の番号を与える C コードを生成できます。次に、一意の番号を使用して、これを MEX コードにコンパイルできます。最後に、次のコードを実行して、この MEX コード ( csolve) を MatLab から呼び出すことができます。

ただし、この手順では、実行する問題の次元ごとに、に移動し、 を変更し、コードをコンパイルnしてから、コードを実行する必要があります。パラメータとして入力させることはできますか?このように、コードを 1 回コンパイルするだけで済みます。次に、コード セット内でとを呼び出し、次に を呼び出します。cvxgen.comnMatLabnMatLabparams.n = nparams.Q = eye(n,n)[vars, status] = csolve(params);