私は拘束線形最小二乗問題の解を計算しています:C
はm x 7
とb
あるlsqlin最適化計算(MATLAB)次のように
lb = zeros(7,1);
ub = ones(7,1);
for i = 1:size(b,2)
x(:,i) = lsqlin(C,b(:,i),[],[],[],[],lb,ub);
end
がm x n
です。 n
は非常に大きく、計算時間が遅くなります。この手順をスピードアップし、遅いループを取り除く方法はありますか?for
ループ。私は0~1(lb
とub
)の境界に私の解決策を制約する必要があるので、pinv
または\
の代わりにlsqlin
を使用しています。
いつでもデフォルトソルバーを切り替えることができます。 '' 'interior-point'''を試してみてください。そのループが何であるか、そして私たちがそれに取り組むと期待しているかどうかはわかりません。 – sascha
私はさまざまなソルバーを試しましたが、問題は同じです。私は 'x = lsqlin(C、b、[]、[]、[]、[]、lb、ub)を与えようとするとforループを使用しています;エラーです。一方、 'pinv(C)* b'や' C \ b'を使うと、それは魅力的ですが、 'lsqlin'では' for'ループを通してやる必要があります。私は 'lsqlin'を使う必要があります。したがって、 'for'ループを最適化または破棄する可能性があるかどうかを尋ねています。 – ThT