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.