vals, vecs = numpy.linalg.eig([[1 , 2], [2, 1]])
print vals #Output : [ 3. -1.]
print vecs #Output : [[ 0.70710678 -0.70710678]
# [ 0.70710678 0.70710678]]
Я не понимаю этих результатов. Пусть вектор A равен ([1,2], [2,1]), который я передал в аргумент eig. Основываясь на выводе, A * vecs должно быть равно vals * vec в зависимости от собственного значения и собственного вектора. A * vecs и vals * vecs дают мне значения ниже, которые не совпадают. Почему это так?
>>> a.dot(vecs)
array([[ 2.12132034, 0.70710678],
[ 2.12132034, -0.70710678]])
>>> vals.dot(vecs)
array([ 1.41421356, -2.82842712])
A @ vecs
иvecs @ np.diag(vals)
- person Paul Panzer   schedule 13.02.2018