問題タブ [matrix-inverse]

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 に答える
1480 参照

python - Python 疎行列の逆行列とラプラシアン計算

次元が 100000*100000 の 2 つのスパース行列 A (アフィニティ行列) と D (対角行列) があります。ラプラシアン行列 L = D^(-1/2)*A*D^(-1/2) を計算する必要があります。スパース行列に scipy CSR 形式を使用しています。

疎行列の逆行列を見つける方法が見つかりませんでした。Lとスパース行列の逆を見つける方法は? また、Pythonを使用して効率的に行うことをお勧めしますか、Lを計算するためにmatlab関数を呼び出す必要がありますか?

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

algorithm - Matlab は、「inv」を使用して逆数を計算する際に並べ替えアルゴリズムを使用しますか?

Matlab のビルトイン関数 "inv" を使用して正方行列の逆数を計算しようとしています。matlab inv() は、並べ替えアルゴリズム (inv 内で、ユーザーが指定することなく) を使用して逆数を計算しますか?

前もって感謝します..

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

c++ - C++ 逆行列

次の動的配列には、非対称 n*n 行列 (n <=100) が含まれています。

それを逆にする非常に簡単な方法はありますか?理想的には、STL から何かを使用するか、単一のヘッダー ファイルをダウンロードするだけです。

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

matlab - Matlab で逆行列を計算する

逆行列の計算を必要とする最適化アルゴリズムを実行しています。このアルゴリズムの目的は、行列 A から負の値を取り除き、新しい行列 B を取得することです。基本的に、同じサイズの既知の正方行列 B と C から始めます。

まず、次の行列 A を計算します。

A = B^-1 * C

またはMatlabで:

私がこれを使用するのは、MatlabB\Cが よりも正確であると私に言ったからですinv(B)*C

次に、A の負の値が 2 で除算され、行の長さが 1 になるように A が正規化されます。この新しい A を使用して、新しい B を次のように計算します。

(1/N) * A * C' = B^-1

ここで、N は単なる倍率 (A の列数) です。この新しい B は最初のステップで再び使用され、これらの反復は A のネガがなくなるまで続きます。

私の問題は、2 番目の方程式から B を計算し、それを正規化する必要があることです。

を使用して B を計算してきましたがinv(B^-1)、数回繰り返した後、B^-1「特異点に近いか、スケーリングが悪い」というメッセージが表示されるようになりました。

このアルゴリズムは、実際には小さなマトリックス (約 70x70) で機能しますが、約 500x500 になると、これらのメッセージが表示され始めます。

を計算するより良い方法はありますinv(B^-1)か?

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

matlab - 行列を反転しようとすると、Matlabは「FAIL」を返します

いくつかのシンボリック変数を使用して行列を反転しようとしていますが、Matlabは「FAIL」を返します。私はinv(K)を使用しています。これは、Matlabが計算後に出力するKです。

スクリプト内のマトリックスは次のようになっていることに注意してください(たとえば)。

0 投票する
3 に答える
3406 参照

c++ - invert() または inv() を使用して opencv で行列を反転する際のランタイム エラー

opencv で行列を反転しようとしています。ビルド エラーはありませんが、「サポートされていない形式または形式の組み合わせ () が不明な関数にあり、ファイル ..\..\..\..\ocv\opencv\modules\core\src\lapack.cpp, 1469 行目」ですが、何が間違っているのかを理解するのにあまり役に立ちません。私は次のコードを使用しています:

inv() の代わりに invert() を使用すると、同じ結果が得られます。

私は何が欠けていますか?

ありがとう。

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

matlab - 逆行列

matlab では、matlab の逆を次のように書くことができます。

最小二乗法 (より効率的)

しかし、未知のパラメータ(x)の共分散行列(Qxx)の場合、私は通常、

(1)のように効率よく書くにはどうしたらよいでしょうか?

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

matlab - 行列式の計算に関する問題

逆行列の行列式を計算しようとしています。逆行列が存在します。ただし、逆数の行列式を計算しようとすると、matlab で Inf 値が得られます。この背後にある理由は何ですか?

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

performance - numpy行列の逆行列を高速化

Numpy / Scipyを使用して20kの行列を反転していますが、遅いです。私は試した:

しかし、スピードアップは見られませんでした。

これをスピードアップする他の方法はありますか?

0 投票する
5 に答える
15177 参照

c++ - 非常に大きな行列の逆数を計算する

C++ で非常に大きな行列 (11300x21500) の逆数を計算しようとしています。これまでに Eigen と Armadillo ライブラリを試しましたが、どちらも初期化段階で失敗し、十分なメモリがないと言って失敗しました。この状況を打破する方法はありますか?

前もって感謝します

PS
マトリックスのサイズを 21500x21500 に修正する必要があります。UmNyobe が示唆したように、これは正方行列ではありません。これは実際には観測行列Xであり、( X T X ) -1を計算しようとしています。

私は 8GB のメモリ (64 ビット システム) を持っていますが、このメモリ空間のすべてを利用しているとは思いません。タスクマネージャーを見ると、エラー時のメモリ使用量は1GBと表示されています。Windows7 には、メモリ使用量が 1GB を超えるとアプリケーションを終了する OS コマンドが存在する可能性があります。

ところで、私の本来の目的は、この観測行列に対して回帰を実行することです。

もう 1 つ: 観測行列 X の各行のほとんどの列はゼロです。これを利用して、反転操作でのメモリ使用量を制限する方法はありますか?