10

Python の numpy または scipy で小さな (たとえば 3x3) 行列の null 空間を取得する簡単な方法が必要です。

MATLAB は、この点で優れている可能性があります。まあ言ってみれば:

A = [1 2 3; 
     2 3 4; 
     2 4 6]

rank(A) % rank is 2 
null(A, 'r') % ask matlab to be ('r') reasonable about 
             % its choice of a vector in A's nullspace

最後のコマンドの出力は次のとおりです。

 1 
-2 
 1

表示されます-これは本当ですか?- numpy では物事はそれほど単純ではありません:

import numpy as np
A = array(([1, 2, 3], [2, 3, 4], [2, 4, 6])) 
np.linalg.matrix_rank(A) # ok, getting the rank of a matrix is this esay, even if
                         # it takes more keystrokes, but how about its null space

これまで検索してきたことから svd、nullspace を取得するには、最初に分解関数を呼び出す必要があるようです。

Python でこれを行うには、もっと簡単な方法が必要です。

また、matlabでは次のように言うことができます:

format rat

出力行列の長い小数でのステアリングを避けるため。(例えば、フォーマットが 'rational' に設定されている場合、出力行列のエントリ1/2は見苦しいものではなく、次のようになります0.5000000)

Python にも同様の機能がありますか、それとも Python を使用している人はこれらの小数を永遠に見る運命にありますか?

前もって感謝します。

d.

4

1 に答える 1