3

タイプ のシステムの解決に関与していますAx = b。ここで、A は正方スパース行列、x は未知数のベクトル (計算する必要があります)、b は最後の要素を除くすべてゼロのベクトルです。は 1 です。行列 A の最後の行は正規化に使用されるため、1 で満たされます。

このシステムの解は確率であるため、条件0<x(i)<1を尊重する必要があります。

システムを解決するために、Matlab コマンドx = A \ b;が使用されます。

この方法はうまく機能しているように見えますが、ベクトル x にも負の値が含まれる特殊なケースがあります。マトリックス A の任意の要素に非常に小さな値 (10^-6) を追加すると、解像度が条件を満たすように戻ります。

私は数学者ではないので、コードの問題なのか、解がすべて 0 と 1 の間にあることを保証するために行列 A がいくつかのプロパティを尊重する必要があるのか​​どうかはわかりません。

4

1 に答える 1

2

あなたが本当に望んでいるもののように聞こえます:最小化|| Ax-b || すべてのxについてx>0を条件とします。関数lsqlinを使用してこれを行うことができます:http://www.mathworks.com/help/toolbox/optim/ug/lsqlin.html

「1に追加する必要があります」は線形不等式制約であり、正は線形不等式制約です。

行列(正方形ではない)の確率に関連する問題は次のとおりです: http: //ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber = 5717139

于 2011-03-30T18:38:36.007 に答える