Когда я умножаю собственный вектор на матрицу, это должно привести к тому же результату, что и умножение этого собственного вектора на его соответствующее собственное значение. Я пытаюсь проверить, что мои собственные векторы и собственные значения работают так, как заявлено, но результаты кажутся неправильными.
cov_matrix = np.cov(scaled_data)
eig_vals, eig_vecs = np.linalg.eigh(cov_matrix)
a = cov_matrix.dot(eig_vecs[:, 0])
b = eig_vecs[:, 0] * eig_vals[0]
Когда я печатаю a и b, они имеют одинаковую форму, но их значения разные. Что здесь не так?
np.linalg.eigh
работает только с комплексной эрмитовой (сопряженной симметричной) или реальной симметричной матрицей (взятой из документации). Вы уверены, что ваша матрица симметрична? Если да, укажите конкретный пример дляscaled_data
- person Roim   schedule 18.07.2020