2012-01-20 4 views
0

Как вычислить среднее собственное значение в numpy?среднее собственное значение в numpy

Это правильный способ сделать это?

import numpy as np 

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

a a numpy matrix.

+0

Что вы подразумеваете под средним? Если вы хотите получить собственные значения 'a', посмотрите' numpy.linalg.eigvals' (или 'eig' или' eigh'). Обратите внимание, что они не обязательно возвращаются в отсортированном порядке. –

ответ

1

Этот код не будет вычислять среднее собственное значение для большинства определений слова «средний» (хотя он будет работать случайно на матрице 2x2).

Если вы хотите, среднее значение собственных (который является то, что код, который вы написали ближе к), то вы могли бы использовать:

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

в предположении, что представляет собой матрицу NxN. Это связано с тем, что след представляет собой сумму собственных значений, поэтому, если мы делим на размер матрицы (а не ее размерность, которая должна быть равна двум всегда), мы получаем среднее значение.

Если вы хотите медиану собственного (что в случае, когда матрица имеет нечетное размер является одним из собственных значений, в противном случае это на полпути между двумя значениями), вы можете использовать:

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

Обратите внимание, что для 2x2-матриц эти два значения одинаковы.

Смежные вопросы