問題タブ [determinants]

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

c++ - 固有値で逆数と行列式を効率的に使用するには?

Eigen には、行列式と逆行列の明示的な計算に対して警告する推奨事項があります。

正規逆ウィシャート事前分布を使用して、多変量正規の事後予測を実装しています。これは、多変量 t 分布として表すことができます。

多変量 t 分布では、項と が見つかり|Sigma|^{-1/2}ます(x-mu)^T Sigma^{-1} (x-mu)

私はアイゲンに関してはまったく無知です。正の半正定行列 (共分散行列) の場合、LLT ソルバーを使用できると想像できます。

ただし、ソルバー自体で定義されたメソッドは.determinant()ありません。.inverse()関数を使用.matrixL()し、対角要素を自分で反転して、行列式を取得するために積を計算する必要がありますか? 私は何かが欠けていると思います。

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

python - N*N 行列の行列式を見つけようとしているときに非型エラーが発生する

N*N 行列の行列式を見つけるプログラムを作成しようとしていますが、これが私のコードです。

No-Type エラーが発生していますが、それは再帰的なアプローチであるため、関数自体を呼び出しているためだと確信しています。

これを修正する方法はありますか?おそらく2番目の関数をダンプすることさえありますか?

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

python - 大きな行列のpython行列式

M X =Nのような線形連立方程式があります。M多くの要素がゼロの 21x21 行列です。この系を で解こうとするとX = np.linalg.solve(M, N)、次のエラーが表示されます。

ここでの問題は、によって返される値np.linalg.det(M)が 0.0 であることです。マトリックスを生成するために 2 つの異なる方法を試しMましたが、その時点で奇妙な動作に遭遇しました。

i)の非ゼロ要素はM、コードの別の場所で計算されます。これらの要素はすべて float であり、 として示されm_1, m_2, ... , m_21ます。最初に、生成するために次のコードを試しましたM

によって計算されるこの行列の行列式np.linalg.det(M)はゼロです。

ii)次に、非ゼロ要素 ( m_1, ... , m_21) を対応する数値に置き換えて、行列式が変化するかどうかを確認しました。コードは次のとおりです。

この場合、np.linalg.det(M)-9504863423.43 を返します。行列式が 0.0 でも -9504863423.43 でもないことは確かです。なぜなら、MATLAB といくつかのオンライン計算機で同じ行列式を -3.8108e+019 として計算したからです。

また、LU 分解を実行し、mpmath で行列式を計算しようとしましたが、どちらも機能しませんでした。これら 2 つのケースが異なる値を返す可能性があるのはなぜですか? 行列式を正しく計算する方法はありますか?

32 ビットの Win7 オペレーティング システムで Python(x,y) 2.7.6.1 を使用しています。

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

matlab - Matlabのベッセル関数を含む行列の行列式から形成された超越方程式の根

次の行列の行列式を取ることによって形成される超越方程式の根を見つける必要があります。ご覧のとおり、ベッセル関数がいっぱいです。「fzero」コマンドを使用して疲れましたが、機能していません。ガンマやイータなどのすべてのベッセル関数入力は、ベータ関数です。

主語の超越方程式の値の根を見つける方法を教えてください。ありがとう

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

sse - SIMD による行列式計算

SIMD (ネオン、SSE、SSE2) でうまく機能する、低次元 (約 4) の行列式を計算するためのアプローチはありますか? 私は手の拡張式を使用していますが、うまく機能しません。私は SSE3 とネオンまでずっと SSE を使っています。行列要素はすべて float です。

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

perl - Perl - 変数を含む行列の行列式

次のメソッドを含む Perl プログラムがあります。

  • detマトリックスの行列式を見つけること。
  • identityMatrix n 行 n 列の単位行列を返します (主対角線に 1、残りは 0)。
  • matrixAdd 2 つの行列を一緒に加算します。
  • matrixScalarMultiply整数に行列を掛けること。

たとえば、行列A - Iの行列式を簡単に見つけることができます。

ここに画像の説明を入力

(0です)

しかし、 A-RIの行列式を見つけたい場合はどうすればよいでしょうか。

ここに画像の説明を入力

この場合、整数値ではなく、次の行に沿って特性多項式解 (別名、変数を含む行列式) を解くプログラムを作成します。

ここに画像の説明を入力

これを処理する方法について何か提案はありますか? 以下のコード:

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

r - マトリックスで複雑なループ操作を実行する方法

次のようなサンプルマトリックスがあります

そして、次のような出力が必要です

等々...

計算後に得られるこの最大値は行列形式である必要があります。一般化する必要があるため、汎用コードが必要です。

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

c++ - const キーワードを使用した C++ での間接再帰

私のプログラムでは、間接再帰を使用して余因子展開を実行する行列 (2D 配列) の行列式を計算しようとしています (つまり、2 つの関数が互いに再帰的に呼び出します)。ただし、再帰で const パラメーターを別の const パラメーターに渡すことは合法であるにもかかわらず、コンパイラーは double** を const double** に変換できないと不平を言いますよね? 私は何を間違っていますか?

コンパイル

ソースファイル

ヘッダー ファイルには 2 つの関数の宣言のみが含まれており、特別なものではありません。