0

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

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

import numpy as np

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

a numpy 行列です。

4

1 に答える 1

1

そのコードは、単語「中間」のほとんどの定義に対して中間固有値を計算しません (ただし、2x2 行列では偶然に機能します)。

固有値の平均 (記述したコードが最も近いもの) が必要な場合は、次を使用できます。

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

a が NxN 行列であると仮定します。これは、トレースが固有値の合計であるためです。そのため、行列のサイズ (次元ではなく、常に 2 である必要があります) で除算すると、平均が得られます。

固有値の中央値が必要な場合 (行列のサイズが奇数の場合は固有値の 1 つです。それ以外の場合は 2 つの値の中間です)、次を使用できます。

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

2x2 行列の場合、これら 2 つの値は同じであることに注意してください。

于 2012-01-24T10:44:05.137 に答える