2012-01-20 11 views
0

numpyで中間固有値を計算するにはどうすればよいですか?numpyの中間固有値

これは正しい方法ですか?

import numpy as np 

(1/a.ndim)*np.trace(a) 

は、numpyの行列です。

+0

途中でどういう意味ですか?あなたが 'a'の固有値を望むなら、' numpy.linalg.eigvals'(または 'eig'や' eigh')を見てください。必ずしもソートされた順序で返されるわけではありません。 –

答えて

1

このコードでは、「中間」という言葉のほとんどの定義では中間固有値が計算されません(2x2行列では偶然にも機能しますが)。

あなたは(あなたが書いたコードはに最も近いものです)固有値の平均を望むなら、あなたは使用することができます:

import numpy as np 
def mean_eigenvalue(a): 
    return np.trace(a)/len(a) 

をN×N個の行列であると仮定。これは、トレースが固有値の合計であるためです。したがって、行列のサイズ(次元がなく、常に2でなければなりません)で割ると、平均が得られます。

あなたは中央値固有値(マトリックスが奇数サイズは固有値の一つである場合には、それ以外の場合は、2つの値の間の半分の方法です)したい場合は、使用することができます。

import numpy as np 
def median_eigenvalue(a): 
    return np.median(np.linalg.eigvals(a)) 

注意しています2x2行列の場合、これらの2つの値は同じです。

関連する問題