問題タブ [matrix-decomposition]

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 投票する
0 に答える
214 参照

c++ - Eigen3 スパース ソルバーはコピー不可

私は数値コードに取り組んでおり、コードのユースケースで疎および密行列-LU 分解 (および後で他のものも同様) がどのように異なるかを評価したいと考えています。Eigens Dense Decomposition オブジェクトはコピー可能であり、boost::variant を使用してこれらをキャッシュするために使用され、後で柔軟性が向上します。

スパース ソルバーで同じことを達成したいのですが、それを行うのは困難です。以下の最小限の例は、私のアプローチがどのようであるかを示しているはずです。

問題は、なぜスパース ソルバーがコピーできないのかということです。私は自分のコピー操作を書くことができますか、それとも間違いなく整形されていますか?どうすればその問題を回避できますか?

ありがとうございました :)

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

matlab - 行列の対角線を列に変換する

次の形式の行列演算を探しています。B = M*A*NwhereAは一般的な正方行列であり、MおよびNは見つけたい行列です。の列Bが の対角線になるようにしますA。最初の列はメインの対角線、2 番目の列はメインから 1 だけシフトした対角線などです。

たとえば、MATLAB 構文では次のようになります。

編集: 純粋な線形代数のソリューションは存在しないようです。したがって、私がやろうとしていたことについてより正確になります。

vサイズのベクトルの場合1 x m。次に を定義しますC = repmat(v,m,1)。私の行列はA = C-C.';です。したがって、A本質的には値のすべての違いですが、値v間の距離までの違いにのみ興味があります。これらは の対角線ですA。しかし、m非常に大きいため、このようなm x m行列を構築するとメモリ不足の問題が発生します。(MATLAB で) 可能な限り効率的な方法でこれらの対角線を抽出する方法を探しています。

ありがとう!