У меня 1000 by 5000
матрица A
. Я пытаюсь найти его номер условия. Я знаю, что число условия - это соотношение между наибольшим и наименьшим собственными значениями A.T @ A
, но, возможно, я ошибаюсь, поэтому я проверил и другой способ.
Я написал следующий сценарий:
print(np.linalg.cond(A))
eig = np.linalg.eig(A.T @ A)[0]
print(eig[0] / eig[-1])
eig = np.linalg.eig(A @ A.T)[0]
print(eig[0] / eig[-1])
и печатает
1549.2730284204385
(5.3052933708830795e+20+0j)
1076234.004648219
Кто-нибудь может объяснить несоответствие?