среднее собственное значение в numy - PullRequest
0 голосов
/ 20 января 2012

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

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

import numpy as np

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

a - это пустая матрица.

1 Ответ

1 голос
/ 24 января 2012

Этот код не будет вычислять среднее собственное значение для большинства определений слова "середина" (хотя он будет работать случайно на матрице 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 эти два значения одинаковы.

...