Среднее собственное значение в numy
Как рассчитать среднее собственное значение в numpy?
Это правильный способ сделать это?
import numpy as np
(1/a.ndim)*np.trace(a)
а - это матовая матрица.
1 ответ
Этот код не будет вычислять среднее собственное значение для большинства определений слова "средний" (хотя он будет работать случайно на матрице 2x2).
Если вы хотите получить среднее из собственных значений (то есть то, к чему код, который вы написали, наиболее близко), вы можете использовать:
import numpy as np
def mean_eigenvalue(a):
return np.trace(a)/len(a)
предполагая, что a является матрицей NxN. Это потому, что след является суммой собственных значений, поэтому, если мы разделим на размер матрицы (а не на ее размерность, которая всегда должна быть равна двум), мы получим среднее.
Если вам нужно медианное собственное значение (которое в случае, когда матрица имеет нечетный размер, является одним из собственных значений; в противном случае оно находится на полпути между двумя значениями), вы можете использовать:
import numpy as np
def median_eigenvalue(a):
return np.median(np.linalg.eigvals(a))
Обратите внимание, что для матриц 2x2 эти два значения одинаковы.