вопрос следующий:
я пытаюсь реализовать программно PCA (principal component analysis).
в литературе, на которую я опираюсь, этот метод заключается в том, что из исходных данных, сперва, строится correlational matrix (используется корреляционный коэфициент Пирсона), а затем находятся eigenvalues\eigenvectors (собственные значения\вектора)
составление корреляционной матрицы я запрограммировал, а вот с собственными веторами беда.
для нахождения собственных значений приводится способ, где нужно преобразовать матрицу следующим способом:
(I - identity matrix)
после чего вычисляется детерминант полученной матрицы
получается полином n-степени, у которого, затем, находятся корни (они и являются собственными значениями)
все бы хорошо. однако, по этой методике легко находить собственные значения\векторы лишь у матриц 2x2 - 3x3
а как быть, когда матрицы имеют размерность 20x20 или более? это же будут полиномы больших степеней
на данный момент мне нужно реализовать задачу хотя бы как-нибудь (как можно проще). а в математике я не настолько силен, как 99% участников этого форума. поэтому прошу совета: в какую сторону копать? какие есть универсальные методы для нахождения собственных значений и векторов симметричных (точнее даже корреляционных) матриц?
к примеру такой матрицы?